附录 Linux 常用命令
下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。$ 命令行提示符
粗体表示命令
斜体表示参数
filename, file1, file2 都是文件名。有时文件名有后缀,比如 file.zipcommand 命令名
dir 文件夹名
string 字符串
username 用户名groupname 组名regex 正则表达式path 路径
device 设备名partition 分区名IP IP地址domain 域名
ID 远程用户 ID
host 主机名,可以为 IP 地址或者域名var 变量名
value 变量值
命令帮助
$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设置环境变量 var 为 value
$expr 1 + 1计算 1+1
文件系统
$du -sh dir
文件夹大小, -h 人类可读的单位, -s 只显示摘要$find . -name filename从当前路径开始,向下寻找文件 filename$locate string
寻找包含有 string 的路径
$updatedb
与 find 不同,locate 并不是实时查找。你需要更新数据库,以获得最新信息。$ln -s filename path
为文件 filename 在 path 位置创建软链接
$pwd
显示当前路径
$cd path更改当前工作路径为 path$cd -
更改当前路径为之前的路径
文件
$touch filename如果文件不存在,创建一个空白文件;如果文件存在,更新文件读取和修改时间。$rm filename
删除文件
$cp file1 file2
复制 file1 为 file2
$ls -l path
显示文件和文件相关信息
$mkdir dir
创建 dir 文件夹
$mkdir -p path
递归创建路径 path 上的所有文件夹$rmdir dir
删除 dir 文件夹,dir 必须为空文件夹。$rm -r dir
删除 dir 文件夹,以及其包含的所有文件
$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
显示 file1 和 file2 的差别$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显示内存信息
$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 登陆远程服务器 host,ID 为用户名。
$sftp ID@host
登陆服务器 host,ID 为用户名。sftp 登陆后,可以使用下面的命令进一步操作:
get filenameput filenamels
cd
lls
# 下载文件
# 上传文件
# 列出 host 上当前路径的所有文件
# 在 host 上更改当前路径
# 列出本地主机上当前路径的所有文件# 在本地主机更改当前路径
lcd
$scp localpath ID@host:path
将本地 localpath 指向的文件上传到远程主机的 path 路径
$scp -r ID@site:path localpath
以 ssh 协议,遍历下载 path 路径下的整个文件系统,到本地的 localpath
压缩与归档
$zip file.zip file1 file2
将 file1 和 file2 压缩到 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 -zxf file.tar.gz解压并释放 tar 归档
打印
$lpr filename打印文件$lpstat
显示所有打印机的状态