Frequently-Used-Commands
最常用的 Linux 命令
一般使用命令的语法格式如下所示。
命令 [选项] [参数]
目录
- 一、线上查询及帮助命令
- 二、文件和目录操作命令
- 三、文件压缩及解压缩命令
- 四、查看文件及内容处理命令
- 五、进程操作命令
- 六、用户与权限管理命令
- 七、信息显示命令
- 八、内置命令及其它
- 九、系统管理与性能监视命令
- 十、网络操作命令
- 十一、查看系统用户登陆信息的命令
- 十二、关机/重启/注销和查看系统信息的命令
- 十三、磁盘与文件系统的命令
线上查询及帮助命令
命令 | 说明 | 备注 |
---|---|---|
man | ||
help |
man
man 命令,查看命令帮助,命令的词典,更复杂的还有info,但不常用。
help
help 命令,查看Linux内置命令的帮助,比如cd命令。
文件和目录操作命令
命令 | 说明 | 备注 |
---|---|---|
cd | ||
ls | ||
mkdir | ||
rm | ||
mv | ||
cp | ||
find | 从磁盘遍历查找文件或目录 | |
which | 查找二进制命令,按环境变量PATH路径查找 | |
whereis | 查找二进制命令,按环境变量PATH路径查找 | |
touch | 创建新的空文件,改变已有文件的时间戳属性 | |
pwd | 全拼print working directory,其功能是显示当前工作目录的绝对路径 | |
rename | 重命名 | |
rmdir | 全拼remove empty directories,功能是删除空目录 | |
basename | 显示文件名或目录名 | |
dirname | 显示文件或目录路径 | |
file | 显示文件的类型 | |
md5sum | 计算和校验文件的MD5值 | |
tree | 功能是以树形结构显示目录下的内容 | |
lsattr | 查看文件扩展属性 | |
chattr | 改变文件的扩展属性 |
cd
cd 命令,change directory,可以切换到绝对路径或者相对路径。
实例
cd /root/documents # 切换到目录/root/documents
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
ls
ls 命令,list,查看文件和目录列表的命令,常用选项如下。
-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
mkdir
mkdir 命令,make directory,创建目录。
使用语法
mkdir (选项) (参数)
常用选项
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
参数
目录:指定要创建的目录列表,多个目录之间用空格隔开。
实例
mkdir -m 700 /linux/command # 在目录 /linux 下建立 command 目录,并且只有文件所有者有读、写和执行权限,其他人无权访问
mkdir -p-m 750 /linux/command/mkdir # 创建/linux/command/mkdir目录,若父目录不存在则新建,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
rm
rm 命令,remove,删除文件或者目录。
常用选项
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
mv
mv 命令,move,可以移动文件、目录或重命名,该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”。
常用选项
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
实例
mv file1 file2 file3 dir # 把文件 file1、file2、file3 移动到目录 dir 中
mv file1 file2 # 把文件 file1 重命名为 file2
cp
cp 命令,copy,用于复制文件,它还可以把多个文件一次性地复制到一个目录下。
常用选项
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
实例
cp -a file1 file2 # 连同文件的所有特性把文件file1复制成文件file2 cp file1 file2 file3 dir # 把文件file1、file2、file3复制到目录dir中
find
find 命令,用于查找目录及目录下的文件。
文件压缩及解压缩命令
命令 | 说明 | 备注 |
---|---|---|
tar | 打包压缩 | |
gzip | gzip压缩 | |
zip | 压缩工具 | |
unzip | 解压文件 |
tar
tar -cvf log.tar log2012.log # 仅打包,不压缩!
tar -xvf req.tar.gz
tar -zcvf log.tar.gz log2012.log # 打包后,以 gzip 压缩
tar -zxvf /opt/soft/test/log.tar.gz
zip
zip -r filename.zip filesdir
查看文件及内容处理命令
命令 | 说明 | 备注 |
---|---|---|
cat | concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中 | |
tac | tac是cat的反向拼写,功能为反向显示文件内容 | |
more | 分页显示文件内容 | |
less | 分页显示文件内容,more命令的相反用法 | |
head | 显示文件内容的头部 | |
tail | 显示文件内容的尾部 | |
wc | 统计文件的行数、单词数或字节数 | |
grep | grep/egrep 过滤字符串,三剑客老三 | |
sort | 对文件的文本内容排序 | |
uniq | 去除重复行 | |
diff | difference,比较文件的差异,常用于文本文件 | |
vimdiff | 命令行可视化文件比较工具,常用于文本文件 | |
cut | 将文件的每一行按指定分隔符分割并输出 | |
split | 分割文件为不同的小片段 | |
paste | 按行合并文件内容 | |
rev | 反向输出文件内容 | |
join | 按两个文件的相同字段合并 | |
tr | 替换或删除字符 | |
vi/vim | 命令行文本编辑器 | |
iconv | 转换文件的编码格式 | |
dos2unix | 将DOS格式文件转换成UNIX格式 |
cat
head
tail
grep
grep命令,常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等。
使用语法
grep [-acinv] [--color=auto] '查找字符串' filename
常用选项
-a :将binary文件以text文件的方式查找数据
-c :计算找到‘查找字符串’的次数
-i :忽略大小写的区别,即把大小写视为相同
-v :反向选择,即显示出没有‘查找字符串’内容的那一行
实例
grep --color=auto 'MANPATH' /etc/man.config # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
ls -l | grep -i file # 列出文件名包含 file 字符串的文件
进程操作命令
命令 | 说明 | 备注 | |
---|---|---|---|
bg | 将一个在后台暂停的命令,变成继续执行(在后台执行) | ||
fg | 将后台中的命令调至前台继续运行 | ||
jobs | 查看当前有多少在后台运行的命令 | ||
kill | 终止进程 | ||
killall | 通过进程名终止进程 | ||
pkill | 通过进程名终止进程 | ||
crontab | 定时任务命令 | ||
ps | 显示进程的快照 | ||
pstree | 树形显示进程 | ||
nice/renice | 调整程序运行的优先级 | ||
nohup | 忽略挂起信号运行指定的命令 | ||
pgrep | 查找匹配条件的进程 | ||
runlevel | 查看系统当前运行级别 | ||
init | 切换运行级别 | ||
service | 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态 |
ps
ps 命令, process,用于将某个时间点的进程运行情况选取下来并输出。
常用选项
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
实例
ps aux # 查看系统所有的进程数据 ps ax # 查看不与terminal有关的所有进程 ps -lA # 查看系统所有的进程数据 ps axjf # 查看连同一部分进程树状态 ps -ef
kill
kill命令,用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用。
使用语法
kill -signal PID
常用的 signal:
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行 注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
实例
kill -SIGHUP PID # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
kill -SIGTERM %1 # 以正常的结束进程方式来终止第一个后台工作,可用jobs命令查看后台中的第一个工作进程
killall
killall 命令,用于向一个命令启动的进程发送一个信号。
使用语法
killall [-iIe] [command name]
常用选项
-i :交互式的意思,若需要删除时,会询问用户
-e :表示后面接的command name要一致,但command name不能超过15个字符
-I :命令名称忽略大小写
实例
killall -SIGHUP syslogd # 重新启动syslogd
用户与权限管理命令
命令 | 说明 | 备注 |
---|---|---|
useradd | 添加用户 | |
usermod | 修改系统已经存在的用户属性 | |
userdel | 删除用户 | |
groupadd | 添加用户组 | |
passwd | 修改用户密码 | |
chage | 修改用户密码有效期限 | |
id | 查看用户的uid,gid及归属的用户组 | |
su | 切换用户身份 | |
visudo | 编辑/etc/sudoers文件的专属命令 | |
sudo | 以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令 | |
chmod | 改变文件或目录权限 | |
chown | 改变文件或目录的属主和属组 | |
chgrp | 更改文件用户组 | |
umask | 显示或设置权限掩码 |
chmod
chown
chgrp
信息显示命令
命令 | 说明 | 备注 |
---|---|---|
uname | 显示操作系统相关信息的命令 | |
hostname | 显示或者设置当前系统的主机名 | |
dmesg | 显示开机信息,用于诊断系统故障 | |
uptime | 显示系统运行时间及负载 | |
stat | 显示文件或文件系统的状态 | |
du | 计算磁盘空间使用情况 | |
df | 报告文件系统磁盘空间的使用情况 | |
top | 实时显示系统资源使用情况 | |
free | 查看系统内存 | |
date | 显示与设置系统时间 | |
cal | 查看日历等时间信息 |
df
df -h
du
du -h --max-depth=1 du -h file/dir
内置命令及其它
命令 | 说明 | 备注 |
---|---|---|
echo | 打印变量,或直接输出指定的字符串 | |
printf | 将结果格式化输出到标准输出 | |
rpm | 管理rpm包的命令 | |
yum | 自动化简单化地管理rpm包的命令 | |
watch | 周期性的执行给定的命令,并将命令的输出以全屏方式显示 | |
alias | 设置系统别名 | |
unalias | 取消系统别名 | |
date | 查看或设置系统时间 | |
clear | 清除屏幕,简称清屏 | |
history | 查看命令执行的历史纪录 | |
eject | 弹出光驱 | |
time | 计算命令执行时间 | |
nc | 功能强大的网络工具 | |
xargs | 将标准输入转换成命令行参数 | |
exec | 调用并执行指令的命令 | |
export | 设置或者显示环境变量 | |
unset | 删除变量或函数 | |
type | 用于判断另外一个命令是否是内置命令 | |
bc | 命令行科学计算器 |
系统管理与性能监视命令
命令 | 说明 | 备注 |
---|---|---|
chkconfig | 管理Linux系统开机启动项 | |
vmstat | 虚拟内存统计 | |
mpstat | 显示各个可用CPU的状态统计 | |
iostat | 统计系统IO | |
sar | 全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据 | |
ipcs | 用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息 | |
ipcrm | 用来删除一个或更多的消息队列、信号量集或者共享内存标识 | |
strace | 用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等 | |
ltrace | 命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用 |
网络操作命令
命令 | 说明 | 备注 |
---|---|---|
telnet | 使用TELNET协议远程登录 | |
ssh | 使用SSH加密协议远程登录 | |
scp | 全拼secure copy,用于不同主机之间复制文件 | |
wget | 命令行下载文件 | |
ping | 测试主机之间网络的连通性 | |
route | 显示和设置linux系统的路由表 | |
ifconfig | 查看、配置、启用或禁用网络接口的命令 | |
ifup | 启动网卡 | |
ifdown | 关闭网卡 | |
netstat | 查看网络状态 | |
ss | 查看网络状态 | |
nmap | 网络扫描命令 | |
lsof | 全名list open files,也就是列举系统中已经被打开的文件 | |
发送和接收邮件 | ||
mutt | 邮件管理命令 | |
nslookup | 交互式查询互联网DNS服务器的命令 | |
dig | 查找DNS解析过程 | |
host | 查询DNS的命令 | |
traceroute | 追踪数据传输路由状况 | |
tcpdump | 命令行的抓包工具 |
查看系统用户登陆信息的命令
命令 | 说明 | 备注 |
---|---|---|
whoami | 显示当前有效的用户名称,相当于执行id -un命令 | |
who | 显示目前登录系统的用户信息 | |
w | 显示已经登陆系统的用户列表,并显示用户正在执行的指令 | |
last | 显示登入系统的用户 | |
lastlog | 显示系统中所有用户最近一次登录信息 | |
users | 显示当前登录系统的所有用户的用户列表 | |
finger | 查找并显示用户信息 |
关机重启注销和查看系统信息的命令
命令 | 说明 | 备注 |
---|---|---|
shutdown | 关机 | |
halt | 关机 | |
poweroff | 关闭电源 | |
logout | 退出当前登录的Shell | |
exit | 退出当前登录的Shell | |
ctrl+d | 退出当前登录的Shell的快捷键 |
磁盘与文件系统的命令
命令 | 说明 | 备注 |
---|---|---|
mount | 挂载文件系统 | |
umount | 卸载文件系统 | |
fsck | 检查并修复Linux文件系统 | |
dd | 转换或复制文件 | |
dumpe2fs | 导出ext2/ext3/ext4文件系统信息 | |
dump | ext2/3/4文件系统备份工具 | |
fdisk | 磁盘分区命令,适用于2TB以下磁盘分区 | |
parted | 磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区 | |
mkfs | 格式化创建Linux文件系统 | |
partprobe | 更新内核的硬盘分区表信息 | |
e2fsck | 检查ext2/ext3/ext4类型文件系统 | |
mkswap | 创建Linux交换分区 | |
swapon | 启用交换分区 | |
swapoff | 关闭交换分区 | |
sync | 将内存缓冲区内的数据写入磁盘 | |
resize2fs | 调整ext2/ext3/ext4文件系统大小 |
参考
- 《鸟哥的私房菜——基础篇 第三版》
- 最常用的 20 条命令
- 最常用的 150 条命令