Linux Manual
Linux 常用命令参考手册, 非常适合入门, 基本能满足工作日常使用。
截止目前,含有65+
命令。
注:这里只列出常用命令, 如果想要更系统的可能需要翻阅官方手册。
目录
文件管理 head | tail | ls | pwd | wc | find | mkdir | chattr | more | paste | stattouch | cd | rm | rmdir | cp | cat | mv | locate | open | source | tree | md5sum 系统管理 top | whoami | nohup | watch | ping | which | last | shutdown | reboot | ps | uptime | crontab | suuname | ifconfig | who | whereis | kill | chmod | lsof | netstat | w | chown 系统设置 alias | time | clear 压缩、解压 zip | unzip | gzip | bzip2 网络 wget | curl 磁盘 df | du 鸡助命令 cal 其他 echo | date | man | sleep | yum | history | xargshead
显示某个文件的前十行
# 查看 README.md 前10行head README.md# 或者指定多个文件head README.md package.json# 指定行数, 覆盖默认的10行head -n 100 README.md
tail
显示指定文件的末尾部分
# 默认为显示末尾10行tail README.md# 显示末尾20行tail -n 20 README.md# 实时监听README.md文件变化tail -f README.md# 根据文件名进行追踪, 如果删除后创建相同的文件名会继续追踪tail -F README.md# 显示文件的最后10个字符tail -c README.md
top
实时查看系统执行中的程序
# 实时监听进程变化top# 显示2条top -n 2# 显示指定的进程信息top -pid 620
ls
显示目录列表
# 只显示目录列表ls# 显示目录列表的详细信息ls -l# 显示指定目录ls ./src# 显示目录列表详细信息和大小ls -lh# 列出所有文件包括隐藏ls -a
pwd
显示当前工作目录
# 没有太多有用的参数,用法很简单pwd
wc
统计文件的行数、字数、字节数, 常见用于统计代码行数
# 统计字节数wc -c README.md# 统计行数wc -l README.md# 统计字数wc -w README.md# 统计字符数wc -m README.md# 借助 find 和 xargs 实现代码统计find . ! -path "*node_modules*" -path "*.js*" | xargs wc -l
whoami
显示自身的用户名称, 此命令等价于id -un
xiejiahe@192 golang % whoamixiejiahe # 输出
alias
用于简化较长的命令
# 列出所有已设置的别名alias# 删除所有别名unalias -a# 设置别名alias ll='ls -l'
wget
用于从网络下载文件到本地
# 下载某个文件wget /robots.txt# 指定下载后文件名wget -O ro.txt /robots.txt# 断开续传,一般用于大文件,防止重新下载wget -c /robots.txt# 使用后台下载, 对于大文件非常有用wget -c /robots.txttail -f wget-log # 查看后台下载进度
df
显示系统磁盘信息
# 显示系统磁盘信息df# 格式化大小,以kb以上进行显示df -h# 查看全部文件系统信息df -a
du
显示文件或目录所占用的磁盘空间
# 查看指定文件所占用磁盘空间du README.md# 查看指定目录所占用磁盘空间, 输出的最后一行是累计总大小du src# -h 以K,M,G为单位,提高信息的可读性。du -h src # 20K src# -s 只显示总大小,列出最后累计的值du -s src
find
指定某个目录下查找文件
# 在当前目录递归搜索文件名为 README.md 文件find . -name README.md# 通过通配符进行查找, 必须用引号括着, 这里查找所有后缀为 .md 文件find . -name "*.md"find . -iname "*.md" # 忽略文件大小写# 排除文件,只要加 ! , 排除掉所有 .md 后缀的文件find . ! -name "*.md"# 根据类型进行过滤搜索# f 普通文件, l 符号连接# d 目录, c 字符设备# b 块设备, s 套接字, p Fifofind . -type f# 限定目录递归深度find . -maxdepth 3 # 最大为3个目录find . -mindepth 3 # 最小为3个目录# 查找文件大小大于 25k 文件 find /root -size +25k# 查找10天前文件 -mtime 修改时间、 -ctime 创建时间、 -atime 访问时间find /root -mtime +10
mkdir
创建目录
# 在当前目录下创建 temp 目录mkdir temp# 创建多层目录mkdir -p temp/temp2/temp3# 基于权限创建mkdir -m 777 temp
touch
创建新的文件
# 创建一个空文件, 如果文件存在只会修改文件的创建时间touch README.md
ssh
远程连接服务器工具
# 简单的连接, 省略了端口号,默认为22ssh root@192.168.0.0# 指定端口号连接ssh -p 23 root@192.168.0.0
nohup
程序以挂起方式运行, 不会影响终端交互
因为程序会以后台的方式运行,所以终端不会输出, 默认情况下会在当前目录生成一个叫nohup.out
文件,里面包含了终端内容。
# 例如运行一个 node.js 程序nohup node main.js# 在当前目录会出现 nohup.out 文件,里面包含了 Hello Worldnohuo echo "Hello World"
cd
进入指定目录
# 进入当前 src 目录cd src# 回到上一次目录cd -# 返回上一级目录cd ..cd ../../.. # 返回多级# 进入家目录cd ~cd # 或者不带任何参数# 将上一个命令的参数作为cd参数使用cd !$
echo
输出字符串或者变量
注: 一般情况下字符串不必加双引号, 如果包含转义字符就必须要加
# 在终端输出 Hello Worldecho "Hello World"echo Hello World # 也可以不加双引号echo "Hello\nWorld" # 必须加双引号, 否则无法转义# 打印系统环境变量,如果变量不存在输出为空echo $PATH# 也可以将内容输出到指定文件echo Hello World > 1.txt
time
测试某条命令执行所需花费时间
# time 后面跟着要测试的命令# 输出: 0.02s user 0.01s system 0% cpu 6.233 totaltime curl /xjh22222228/linux-manual
clear
用于清除当前终端所有信息,本质上只是向后翻了一页,往上滚动还能看到之前的操作信息
注:笔者用得比较多的是command + K
可以完全清除终端所有操作信息。
clear
rm
删除指定目录或文件
注: 使用此命令需要非常小心, 一但删除无法恢复
# 删除当前 1.txt 文件rm 1.txt# 这条命令比较常用, 强制删除目录或文件# -r 如果是目录递归删除, -f 强制删除 不发出任何警告rm -rf ./src
rmdir
删除指定空目录
注:rmdir
实际上用得并不多,因为不是很灵活,基本上使用rm
代替
# 删除当前 temp 空目录, 如果不是空目录会发出警告rmdir temp# -p 参数可以删除多层空目录, 发现temp3是空目录删除掉,然后接着往父级找如果还是空目录继续删除...rmdir -p temp1/temp2/temp3
watch
通常用于监听1个命令的运行结果、定时执行命令
# 每5秒执行一次 tail 命令, 如果不指定-n 默认为2秒watch -n 5 "tail README.md"# -d 高亮显示变化内容watch -n 5 -d "tail README.md"
ping
测试目标地址是否可连接、延迟度
# 测试 连通性, 按 ctrl + C 停止 ping # ping 5次后断开ping -c 5 # 每5秒ping 一次ping -i 5
cp
拷贝文件或目录
# 将当前 README.md 文件拷贝到上一层cp ./README.md ../README.md# -a 将原文件属性一同拷贝cp -a ./README.md ../README.md# -r 拷贝目录cp -r home ../home# -i 如果目标文件存在会询问用户是否需要覆盖cp -i README.md README.md
which
查找某个命令存储在哪个位置, 输出绝对路径,which
会在环境变量$PATH
设置的目录里去查找。
注: 可以通过echo $PATH
查看设置的目录.
which top # /usr/bin/top# 查找pwd发现会找不到,因为 pwd 是bash的内置命令which pwd
cat
查看指定文件内容
# 查看 README.md 文件所有内容cat README.mdcat README.md README2.md # 或者一次性显示多个文件# -n 指定显示行号cat -n README.md
mv
mv
有2个用途:
将文件或目录移动到另一个位置将文件或目录重命名
注:实际上mv
是用来移动文件或目录,只不过有类似重命名的功能而已。
# 将 README.md 重命名为 README-2.md, 如果 README-2.md 存在会直接覆盖。mv README.md README-2.md# 将 README.md 移动到上一层目录mv README.md ../README.md# -i 交互式操作,如果目标文件存在则进行询问是否覆盖mv -i README.md ../README.md
cal
显示当前日历
cal# 输出June Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30# 显示临近3个月, 只能是3个月cal -3
last
显示用户最近登录信息
last # rootpts/0 183.58.247.64 Sun Jan 5 13:57 - 14:28 (00:30)# 指定显示条目数last -n 1
shutdown
将系统关机或重启操作。
# 立即重启系统shutdown -r now# 关闭系统并切断电源shutdown -h 关机 # 实际上是调用 init 0# 把前一个关机或重启取消掉shutdown -c # 设定一个时间关机, 加 & 可以继续用终端命令shutdown -h 05:33 &shutdown +5 "5分钟后关机" # 5分钟后关机,同时送出警告信息给登入用户:
reboot
有点类似shutdown
命令, 用于重新启动系统。
# 重启系统reboot# -f 强制重启reboot -f# 用于模拟重新启动系统,不会真实重启,数据会写入 /var/log/wtmp reboot -w# 在重新启动之前关闭所有网络界面reboot -i
uname
打印系统信息
# 不带任何参数打印当前操作系统内核名称uname # Linux 等价于 uname -s# 打印系统所有信息uname -a# -r 打印系统版本 , 如果次版本号都是偶数,说明是一个稳定版uname -r # 3.10.0-514.26.2.el7.x86_64# 打印网络节点主机名称uname -n # Yin.local# 打印处理器名称uname -p # i386
ifconfig
配置或显示系统网卡的网络参数
# 显示所有网络参数信息ifconfig# 配置网卡IP地址ifconfig eth0 192.168.1.111
who
显示当前所有用户登录信息
# 显示当前登录系统的用户whoxiejiahe console Jun 15 21:38xiejiahe ttys001 Jun 15 21:44xiejiahe ttys002 Jun 15 21:44xiejiahe ttys003 Jun 15 21:44xiejiahe ttys004 Jun 15 21:44xiejiahe ttys005 Jun 15 21:44# 显示登录账号名和总人数who -q# 显示上次系统启动时间who -b # reboot ~ Jun 15 21:38
whereis
用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
注意:whereis
是从数据库里查找的,因此特别快,默认情况下一星期更新一次数据,所以有时会查找删除的数据或者刚建立的数据无法找到问题。
# 查找 nginxwhereis nginx # nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz# -b 指定只查找二进制where -b nginx # nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx# -m 指定查找说明文件 manwhereis -m nginx # nginx: /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
zip
将目录或文件压缩为.zip
格式
# 压缩文件zip README.zip README.md# 压缩目录需要 -r 递归处理zip -r temp.zip temp# 包含系统隐藏文件zip -r -S temp.zip temp# 指定压缩效率 1-9zip -r -9 temp.zip temp
unzip
解压由zip
压缩的文件,通常是.zip
# 将 demo.zip 解压到当前目录unzip demo.zip# 查看 demo.zip 文件,但不解压unzip -v demo.zip# -d 指定将文件压缩到 src 目录下unzip demo.zip -d src
locate
搜索文件,与find
命令很像,但更快,因为是从数据库里查找, 通常每天会进行数据更新。
# 搜索 README.md 相关文件locate README.md# 忽略大小写locate -i README.md
kill
杀死一个正在运行中的程序
注:程序进程id可通过top
等命令查看。
# 杀死 pid 为88 进程kill 88# 强制杀死kill -KILL 88# 彻底杀死进程kill -9 88# 显示信号kill -l# 杀死指定用户的所有进程kill -u nginx
chmod
修改文件或目录权限
chmod [参数选项] [mode, 八进制或符号表示] files…
u
符号代表当前用户。g
符号代表和当前用户在同一个组的用户,以下简称组用户。o
符号代表其他用户。a
符号代表所有用户。r
符号代表读权限以及八进制数4。w
符号代表写权限以及八进制数2。x
符号代表执行权限以及八进制数1。X
符号代表如果目标文件是可执行文件或目录,可给其设置可执行权限。s
符号代表设置权限suid和sgid,使用权限组合u+s设定文件的用户的ID位,g+s设置组用户ID位。t
符号代表只有目录或文件的所有者才可以删除目录下的文件。+
符号代表添加目标用户相应的权限。-
符号代表删除目标用户相应的权限。=
符号代表添加目标用户相应的权限,删除未提到的权限。
# README.md 文件设为所有用户可读取chmod a+r README.md# -R 递归目录下所有文件chmod a+r src/# 也可以用八进制符号表示# 3个数字分别为 x,y,z 表示User、Group、及Other的权限。# r=4, w=2, x=1chmod 777 README.md # 等价于 chmod a=rwx README.md
lsof
列出当前系统打开文件的工具
## 打印所有打开文件的的列表lsof# 查看指定端口被占用情况lsof -i:8080# -p 列出指定进程号所打开的文件lsof -p 6112
ps
查看当前系统进程状态
# 显示所有进程信息ps -A# 显示指定用户进程信息ps -u root# 显示所有进程信息包括命令行ps -ef # -e 等价于 -A , 即等价于 ps -Af# 列出所有正在内存中的进程ps aux# 配合 grep 查询指定进程ps -ef | grep nginx
open
open
命令可在linux
/mac
具有可视化界面下进行文本编辑、打开应用程序等功能。
# 在mac下用Finder打开当前目录open .# 用默认应用程序打开文件open README.md# 用默认编辑器打开文件open -e README.md# 如果是一个URL用默认浏览器打开页面open /xjh22222228/linux-manual.git# 指定某个应用程序打开某个文件, 如果不指定文件默认直接打开程序open -a /Applications/Google\ Chrome.app README.md
curl
curl
是一个非常强大的网络传输工具, 利用URL规则在命令行下工作的文件传输工具。
# 查看网页内容curl /xjh22222228/linux-manual# 下载文件到本地curl /xjh22222228/linux-manual -Ocurl /xjh22222228/linux-manual -O --progress # 显示下载进度条# -I 或 -head 显示HTTP响应报文curl /xjh22222228/linux-manual -I# -H 设置请求头curl -H 'Content-Type: application/json' -H 'Content-Type: application/json' /xjh22222228/linux-manual# 通过POST请求发送JSON数据, -X 指明是否哪种HTTP请求, -d 实体内容curl -H "Content-type: application/json" -X POST -d '{"age":"18"}' /xjh22222228/linux-manual# 发送时携带 cookiecurl /xjh22222228/linux-manual --cookie "age=18;name=xjh"# -v 查看整个传输过程curl /xjh22222228/linux-manual -v# -F(--form) 利用POST上传文件, file 是字段名, =@ 必须存在curl /upload -F "file=@/home/demo.png"
date
显示或设置系统时间日期
格式化符号
%%
百分号%a
当地缩写的工作日名称(例如,Sun)%A
当地完整的工作日名称(例如,Sunday)%b
当地缩写的月份名称(例如,Jan)%B
当地完整的月份名称(例如,January)%c
当地的日期和时间(例如,Thu Mar 3 23:05:25 )%C
世纪,和%Y类似,但是省略后两位(例如,20)%d
一月中的一天(例如,01)%D
日期,等价于%m/%d/%y%e
一月中的一天,格式使用空格填充,等价于%_d%F
完整的日期;等价于%+4Y-%m-%d%g
ISO标准计数周的年份的最后两位数字%G
ISO标准计数周的年份,通常只对%V有用%h
等价于%b%H
小时,范围(00…23)%I
小时,范围(00…23)%j
一年中的一天,范围(001…366)%k
小时,使用空格填充,范围(0…23),等价于%_H%l
小时,使用空格填充,范围(1…12),等价于%_I%m
月,范围(01…12)%M
分钟,范围(00…59)%n
换行符%N
纳秒,范围(000000000…000000000)%p
用于表示当地的AM或PM,如果未知则为空白%P
类似于%p,但用小写表示%q
季度,范围(1…4)%r
当地以12小时表示的时钟时间(例如,11:11:04 PM)%R
24小时每分钟;等价于%H:%M%s
自协调世界时1970年01月01日00时00分以来的秒数%S
秒数,范围(00…60)%t
水平制表符%T
时间;等价于%H:%M:%S%u
一周中的一天(1…7),1代表星期一%U
一年中的第几周,周日作为一周的起始(00…53)%V
ISO标准计数周,该方法将周一作为一周的起始(01…53)%w
一周中的一天(0…6),0代表星期天%W
一年中的第几周,周一作为一周的起始(00…53)%x
当地的日期表示(例如,12/31/99)%X
当地的时间表示(例如,23:13:48)%y
年份后两位数字,范围(00…99)%Y
年份%z
+hhmm格式的数值化时区格式(例如,-0400)%:z
+hh:mm格式的数值化时区格式(例如,-04:00)%::z
+hh:mm:ss格式的数值化时区格式(例如,-04:00:00)%:::z
数值化时区格式,相比上一个格式增加’:'以显示必要的精度(例如,-04,+05:30)%Z
时区缩写(如EDT)-
(连字符) 不要填充相应的字段。_
(下划线) 使用空格填充相应的字段。0
(数字0) 使用数字0填充相应的字段。+
用数字0填充,未来年份大于4位数字则在前面加上’+'号。^
允许的情况下使用大写。#
允许的情况下将默认的大写转换为小写,默认的小写转换为大写。
# 显示当前时间date# 格式化当前时间date +"%Y-%m-%d %H:%M.%S" # -07-01 00:00.00# 设置系统时间date -s # 设置当前时间, 须rootdate -s "-07-01 00:00:00" # 设置全部时间
netstat
查看网络系统状态信息
参数说明:
a或–all 显示所有连线中的Socket。A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。c或–continuous 持续列出网络状态。C或–cache 显示路由器配置的快取信息。e或–extend 显示网络其他相关信息。F或–fib 显示FIB。g或–groups 显示多重广播功能群组组员名单。h或–help 在线帮助。i或–interfaces 显示网络界面信息表单。l或–listening 显示监控中的服务器的Socket。M或–masquerade 显示伪装的网络连线。n或–numeric 直接使用IP地址,而不通过域名服务器。N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。o或–timers 显示计时器。p或–programs 显示正在使用Socket的程序识别码和程序名称。r或–route 显示Routing Table。s或–statistics 显示网络工作信息统计表。t或–tcp 显示TCP传输协议的连线状况。u或–udp 显示UDP传输协议的连线状况。v或–verbose 显示指令执行过程。V或–version 显示版本信息。w或–raw 显示RAW传输协议的连线状况。x或–unix 此参数的效果和指定"-A unix"参数相同。-ip或–inet 此参数的效果和指定"-A inet"参数相同。
# 列出所有占用端口netstat -ntlp# 显示所有网络状况netstat -a# 显示所有tcp网络状况netstat -at# 显示所有udp网络状况netstat -au# 配合grep命令查看某个端口被占用情况netstat -ap | grep 8080
w
查看当前登入系统的用户信息, 有哪些用户正在登陆, 以及他们正在执行的程序。
此命令与who
相似,默认情况下比who
命令输出内容更详细。
w# 输出22:44:33 up 748 days, 14:16, 1 user, load average: 0.04, 0.03, 0.05USERTTYFROM LOGIN@ IDLE JCPU PCPU WHATrootpts/0 183.11.111.11 22:40 1.00s 0.03s 0.00s w
chown
用来变更文件或目录的拥有者或所属群组
# 将 README.md 文件拥有者设为 byrootchown byroot README.md# 使用-R递归处理文件chown -R byroot src/# 改变所属群组, 拥有者设为 byroot 群组设为 byrootgroupchown byroot:byrootgroup README.md
uptime
查看系统负载信息, 此命令非常简单,没有太多的参数。
# 21:51:53 当前时间# up 750 days, 13:24 当前系统运行的天数,小时,分钟 (从上次开机起计算)# 1 user 当前系统登录用户数# load average: 0.08, 0.07, 0.06 一分钟、5分钟、15分钟平均负载, 这3个值不能大于CPU个数,如果大于了说明系统负载高,性能低。uptime # 21:51:53 up 750 days, 13:24, 1 user, load average: 0.08, 0.07, 0.06
chattr
用于修改文件属性
参数:
a:让文件或目录仅供附加用途
b:不更新文件或目录的最后存取时间
c:将文件或目录压缩后存放
d:将文件或目录排除在倾倒操作之外
i:不得任意更动文件或目录
s:保密性删除文件或目录
S:即时更新文件或目录
u:预防意外删除
-R:递归处理,将指令目录下的所有文件及子目录一并处理
-v<版本编号>:设置文件或目录版本
-V:显示指令执行过程
+<属性>:开启文件或目录的该项属性
-<属性>:关闭文件或目录的该项属性
=<属性>:指定文件或目录的该项属性
# 锁定该文件, 防止文件被修改或删除chattr +i README.md # chattr -i README.md 解锁# 可以使用 lsattr 查看赋予的属性lsattr README.md
gzip
用来压缩文件, 也可以用来解压文件, 格式为.gz
, 压缩后原文件将被删除
注意:gzip 不能用于压缩整个目录, 只能用于压缩文件, 如果需要压缩整个目录可以考虑使用 zip 命令。
# 压缩 README.md 文件, 压缩完成后 README.md 文件会被删除gzip README.md # README.md.gz# 递归压缩目录下的所有文件gzip -r ./logs# 加 -v 显示压缩执行过程gzip -rv ./logs# 压缩 .tar 后缀文件gzip -r src.tar # 压缩后为 src.tar.gz# -d 解压之前gzip压缩后的文件gzip -d README.mdgzip -dr ./logs # 或者递归解压目录下的所有文件
bzip2
将文件压缩成bz2
格式,也可用于解压.bz2
# 压缩 README.md 文件bzip2 README.md# 不保留源文件 README.md.bz2bzip2 -k README.md # -k 保留源文件# 解压bzip2 -d README.md.bz2 # 源文件将被删除bzip2 -dk README.md.bz2 # -k 保留源文件bzip -dt README.md.bz2 # -t --test 测试解压, 实际不解压,模拟整个解压过程
more
分页查看文件内容, 每次查看一屏, 每屏能显示多少内容取决于终端大小。
快捷键:
空格
或PageUp
- 查看下一屏内容B
或PageDown
- 查看上一屏内容回车
- 查看下一行内容Q
- 退出
more README.md# 从第10行开始显示more +10 README.md# 显示查看进度more -d README.md # --More--(17%)[Press space to continue, 'q' to quit.]
crontab
周期性执行任务, 通常用于定时备份。
* * * * *
分别含义:
* * * * *┬ ┬ ┬ ┬ ┬│ │ │ │ ││ │ │ │ ││ │ │ │ └───── 一周中的某一天 (0 - 7) 0或7代表是星期日│ │ │ └────────── 月份 (1 - 12)│ │ └─────────────── 一个月的某一天 (1 - 31)│ └──────────────────── 小时 (0 - 23)└───────────────────────── 分钟 (0 - 59)
# 列出该用户设置crontab -l# 编辑该用户设置crontab -e# 删除该用户设置crontab -r
* * * * * 命令
# 每天18点18分执行 echo `date` > README.md18 18 * * * echo `date` > README.md# 每一分钟执行* * * * */1 echo `date` > README.md
man
查看指令帮助手册
# 查看 ls 指令帮助手册man ls# -a 在所有手册中查找man -a ls
sleep
将目前动作延迟一段时间, 通常用于脚本当中
时间参数:
s 秒m 分钟h 小时d 天
# 5秒后输出 Hellosleep 5s; echo Hello
下面是一段 Shell 脚本, 延迟10秒后再去请求
#!/bin/bashsleep 10scurl /
source
在当前Shell环境中从指定文件读取和执行命令, 通常用于重新执行环境。
别名.
点符号
source ~/.bash_profile # 等价 . ~/.bash_profile
paste
合并N个文件的列,相当于追加文件内容。
# 1.txt 和 2.txt 合并输出paste 1.txt 2.txt# 1.txt 2.txt 合并后保存为 3.txtpaste 1.txt 2.txt > 3.txt
stat
用于显示文件或目录的状态信息
stat logs# File: ‘logs/’# Size: 16384 Blocks: 32 IO Block: 4096 directory# Device: fd01h/64769d Inode: 669067Links: 5# Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)# Access: -07-07 17:24:23.941816812 +0800# Modify: -07-12 11:46:55.567707577 +0800# Change: -07-12 11:46:55.567707577 +0800# Birth: -
tree
生成目录树结构, 通常用于描述项目结构。
# 递归当前目录下所有文件并生成目录树tree# .# ├── LICENSE# ├── README.md# ├── b.md# └── media#└── poster.jpg# -I 忽略某些目录tree -I "node_modules|.git|.svn"# 只显示目录tree -d# 指定要递归的目录层级tree -L 3
yum
基于RPM的软件包管理器, 特点安装快捷,命令简洁好记。
# 安装nginxyum install nginx# 指定 -y 安装时自动全部 yesyum -y install nginx# 查找包yum search nginx# 显示所有已安装的包yum list# 升级包yum -y update nginx# 移除包yum -y remove nginx# 清除缓存yum clean all# 显示安装包信息yum info nginx# 检查可更新的包程序yum check-update
history
列出当前系统使用过的命令,默认保存1000条
# 列出当前使用过的命令,history# 指定要显示的条数history 50# 清空历史命令history -c
md5sum
计算和校验文件报文摘要
# 计算文件md5mmd5sum README.md # d41d8cd98f00b204e9800998ecf8427e README.md# 校验文件, 查看文件是否被篡改过md5sum README.md > README.md5 # 计算文件md5并保存在 README.md5 , 保存的文件名和后缀可以随意命名md5sum -c README.md5 # -c 从指定的文件读取md5并校验, 会从当前目录寻找 README.md
su
切换当前用户到其他用户身
# 切换到 admin 身份su admin# -c 执行完指令后切换回原身份su -c ls admin# 可以通过以下查找当前系统用户列表cat /etc/passwd
xargs
给命令传递参数的一个过滤器,也是组合多个命令的一个工具,将左侧的标准输出放进右侧标准输入
。
此命令可以将多次操作简便为一次操作。
# 统计代码find -name "*.js" | xargs wc -l # 等价于 wc -l a.js b.js c.js ...# 批量下载文件cat download.txt | xargs wget
⬆ 回顶部