首页 > 代码库 > Linux命令温习(2)

Linux命令温习(2)

用重定向清空文件


>filename   =>filename中的内容被清空

 

命令帮助


$man command

查询命令command的说明文档

    $man -k keyword

    查询关键字

$info command

更加详细的说明文档

$whatis command

简要说明

$which command

command的binary文件所在路径

$whereis command

在搜索路径中的所有command

 

这里只是以command (binary file) 为例。比如man还可以用于查询系统函数、配置文件等。

 

用户


$finger username

显示用户username的信息

$who

显示当前登陆用户

    $who am I

    一个有趣的用法

$write username

向用户发送信息 (用EOF结束输入)

$su

成为root用户

$sudo command

以root用户身份执行

$passwd

更改密码

 

SHELL (BASH)


$history

显示在当前shell下命令历史

$alias

显示所有的命令别称

    $alias new_command=‘command

    将命令command别称为new_command

$env

显示所有的环境变量

    $export var=value

    设置环境变量varvalue   

 

$expr 1 + 1

计算1+1

 

文件系统


$du -sh dir

文件夹大小, -h 人类可读的单位, -s 只显示摘要

$find . -name filename

从当前路径开始,向下寻找文件filename

$locate string

寻找包含有string的路径

    $updatedb

    与find不同,locate并不是实时查找。你需要更新数据库,以获得最新信息。

$ln -s filename path

为文件filenamepath位置创建软链接

$pwd

显示当前路径

    $cd path

    更改当前工作路径为path

    $cd -

    更改当前路径为之前的路径

 

 

文件


$touch filename

如果文件不存在,创建一个空白文件;如果文件存在,更新文件读取和修改时间。

$rm filename

删除文件

$cp file1 file2

复制file1file2

$ls -l path

显示文件和文件相关信息

$mkdir dir

创建dir文件夹

    $mkdir -p path

    递归创建路径path上的所有文件夹

    $rmdir dir

    删除dir文件夹,dir必须为空文件夹。

    $rm -r dir

    删除dir文件夹,以及其包含的所有文件

    $rm -i dir

    在删除dir文件夹时,会prompt出一个对话

    $rm -I dir

     prompt once before removing more than three files, or when removing recursively. Less instrusive than -i, while still giving protection against most mistakes

    $rm -f dir

    ignore nonexistent files, never prompt

$file filename

文件filename的类型描述

$chown username:groupname filename

更改文件的拥有用会为owner,拥有组为group

$chmod 755 filename

更改文件的权限为755: owner r+w+x, group: r+x, others: r+x

 

$od -c filename

 以ASCII字符显示文件

 

文件显示


$cat filename

显示文件
    $cat file1 file2

    连接显示file1和file2

$head -1 filename

显示文件第一行

$tail -5 filename

显示文件倒数第五行

$diff file1 file2

显示file1file2的差别

$sort filename

对文件中的行排序,并显示

    $sort -f filename

    排序时,不考虑大小写

    $sort -u filename

    排序,并去掉重复的行

$uniq filename

显示文件filename中不重复的行 (内容相同,但不相邻的行,不算做重复)

$wc filename

统计文件中的字符、词和行数

    $wc -l filename

    统计文件中的行数

 

文本


$echo string

显示string

$echo string | cut -c5-7

截取文本的第5到第7列

$echo string | grep regex

显示包含正则表达式regex的行

$echo string | grep -o regex

显示符合正则regrex的子字符串

 

 

时间与日期


$date

当前日期时间

    $date +"%Y-%m-%d_%T"

    以YYYY-MM-DD_HH:MM:SS的格式显示日期时间 (格式可参考$man date)

    $date --date="1999-01-03 05:30:00" 100 days 

    显示从1900-01-03 05:30:00向后100天的日期时间

$sleep 300 

休眠300秒

 

进程


$top

显示进程信息,并实时更新

$ps

显示当前shell下的进程

    $ps -lu username

    显示用户username的进程

    $ps -ajx

    以比较完整的格式显示所有的进程

$kill PID

杀死PID进程 (PID为Process ID)

    $kill %job

    杀死job工作 (job为job number)

$lsof -u username

用户username的进程所打开的文件

$dmesg

显示系统日志

$time a.out

测试a.out的运行时间

 

硬件


$uname -a

显示系统信息

$df -lh

显示所有硬盘的使用状况

$mount

显示所有的硬盘分区挂载

    $mount partition path

    挂在partition到路径path

    $umount partition

    卸载partition

$sudo fdisk -l

显示所有的分区

    $sudo fdisk device

    为device(比如/dev/sdc)创建分区表。 进入后选择n, p, w

    $sudo mkfs -t ext3 partition

    格式化分区patition(比如/dev/sdc1)

    修改 /etc/fstab,以自动挂载分区。增加行:

    /dev/sdc1  path(mount point) ext3 defaults 0 0

$arch

显示架构

$cat /proc/cpuinfo

显示CPU信息

$cat /proc/meminfo

显示内存信息

$cat /etc/issue

显示Fedora 版本

$free

显示内存使用状况

$pagesize

显示内存page大小(以KByte为单位)

 

网络


$ifconfig

显示网络接口以及相应的IP地址。ifconfig可用于设置网络接口

    $ifup eth0

    运行eth0接口

    $ifdown eth0

    关闭eth0接口

$iwconfig

显示无线网络接口

$route

显示路由表。route还可以用于修改路由表

$netstat

显示当前的网络连接状态

$ping IP

发送ping包到地址IP

$traceroute IP

探测前往地址IP的路由路径

$dhclient

向DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息。

$host domain

DNS查询,寻找域名domain对应的IP

    $host IP

 

  反向DNS查询

$wget url

使用wget下载url指向的资源

    $wget -m url 

    镜像下载

 

SSH登陆与文件传输


$ssh ID@host

ssh登陆远程服务器hostID为用户名。

$sftp ID@host

登陆服务器hostID为用户名。sftp登陆后,可以使用下面的命令进一步操作:

    get filename    # 下载文件 

    put filename    # 上传文件

    ls              # 列出host上当前路径的所有文件

    cd              # 在host上更改当前路径

    lls             # 列出本地主机上当前路径的所有文件

    lcd             # 在本地主机更改当前路径

$scp localpath ID@host:path

将本地localpath指向的文件上传到远程主机的path路径

    $scp -r ID@site:path localpath

    以ssh协议,遍历下载path路径下的整个文件系统,到本地的localpath

 

压缩与归档


$zip file.zip file1 file2

file1file2压缩到file.zip

$unzip file.zip

解压缩file.zip

 

$gzip -c filename > file.gz

将文件filename压缩到file.gz

$gunzip file.gz

解压缩file.gz文件

 

$tar -cf file.tar file1 file2

创建tar归档

    $tar -zcvf file.tar file1 file2

    创建tar归档,并压缩

    $tar -xf file.tar

    释放tar归档

    $tar -zxvf file.tar.gz

    $tar -jxvf  file.tar.bz

    解压并释放tar归档