前言
命令的语法大部分都是:命令 选项 参数,他们之间使用空格隔开
不知道某个命令如何使用?
man 该命令
查看该命令的使用手册,如 man ls,查看 ls 命令的使用手册,按q退出
命令清单
目录操作命令
pwd、cd、ls、ll、mkdir、du、tree
文件操作命令
touch、file、cp、mv、rm、alias、ln、stat、diff
查找命令
which、whereis、locate、find
文件内容操作和历史命令
cat、more、less、head、tail、tailf、vim、history、clear、sort、uniq
归档及压缩命令
tar、zip、gzip、bzip2、xz、unzip
时间相关命令
date、cal
用户操作命令
uname、hostname、useradd、userdel、usermod、password、su、id
权限相关命令
sudo、chmod、chgrp、chown、umask
重启和关机命令
reboot、init 6、poweroff、init 0、shutdown、halt
网络相关命令
ping、ip、ifconfig、netstat、dstat、glances
进程和安装相关命令
ps、pstree、top、lsof、netstat、ss、pidof、kill
安装软件命令
yum、rpm
磁盘相关命令
df、mount、fdisk
变量脚本相关命令
echo、env、set、unset、source、bash、$
命令提示符
主提示符: [ 登录用户@主机名 工作目录 ]
辅助提示符: root用户登录后,该提示符为 #,其他普通用户登陆后,该提示符为 $
目录操作命令
特殊目录
.
当前目录
..
上一级目录
~
用户家目录
-
上一次所在的工作目录
pwd
查看当前工作目录(print working directory)
cd
切换目录(change directory)
常用选项
cd
或 cd ~
切换到当前用户的家目录
cd -
切换到上一次的工作目录
cd ..
切换到上一级目录
cd 路径
切换到具体的某个目录
cd ~用户名
切换到某用户的家目录
示例:切换到 qian 的家目录
ls
查看目录的内容(list)
语法:ls [选项] [目录] (使用[]括起来的可接可不接)
常用选项
ls -l
查看文件的详细信息
ls -a
查看所有文件包括隐藏文件(隐藏文件以 . 开头)
示例:查看/lianxi 目录下以 .sh结尾的文件 (* 是通配符,表示任意)
ll
ll 是 ls -l 的别名
语法:ll [选项] [目录]
常用选项
ll -h
以人类可读的形式查看文件的大小 (human-readable 人类可读的)
ll -d
查看目录权限
ll -t
查看文件 文件按时间排序(time)
ll -S
查看文件 文件按大小排序(Size)
示例:查看当前文件的大小 文件按时间排序
注:可以同时使用多个选项
mkdir
新建目录(make directory)
语法:mkdir [选项] 目录
常用选项
mkdir -p
新建目录,如果目录已经存在也不会报错
示例
rmdir
删除目录(remove directory)
语法:rmdir [选项] 目录
du
显示文件或目录所占用的磁盘空间(estimate file space usage)
语法:du [选项] [目录]
常用选项
du -s
显示占用的总磁盘空间(summarize)
du -h
以人类可读的形式显示文件所占用的磁盘空间(human-readable)
示例:以人类可读的形式显示所有的文件所占用的磁盘空间
*通配符,表示任意、所有
tree
以树状图列出目录的内容(tree 树)
语法:tree [选项] [目录]
常用选项
tree -d
只显示目录(directory)
示例:查看/tmp 目录下的内容
文件操作命令
touch
新建文件
语法:touch [选项] [文件]
示例:新建f1、f2、f3
file
查看文件类型
语法:file [选项] [文件]
示例:查看aaa和scip.sh的文件类型
cp
复制文件或目录(copy)
语法:cp [选项] 源文件 目标文件
常用语法
cp -i
覆盖已有文件之前先询问用户(interactive 互动)
cp -f
强制复制文件,不论目标文件是否已存在(force)
cp -r
递归复制,如果复制的是一个目录一定要使用 -r 选项
示例
注:可以同时复制多个文件到某目录下
复制、粘贴、重命名一步到位
复制ccc到test/目录下并且重命名为abc
mv
移动文件(move)
语法:mv [选项] 源文件 目标文件
mv命令相当于Windows中的剪切
常用选项
mv -i
覆盖已有文件之前先询问用户(interactive)
mv VS cp
1.mv之后源文件不见了,cp之后源文件还在
2.mv 目录不需要使用 -r 选项,cp 目录一定要使用 -r
示例:移动ccc到test/目录下
rm
删除文件(remove)
语法:rm [选项] 文件
常用选项
rm -i
删除之前询问用户(interactive)
rm -f
强制删除文件(force)
rm -r
递归删除,如果删除的是一个目录一定要使用 -r 选项
示例
如果使用了 -f 强制删除,是不会询问用户是否删除的
alias
定义别名,直接alias就是查看别名
语法:alias 命令=‘命令 xxx’
示例:为cp、mv、rm定义别名
定义了cp=‘cp -i’ 之后,执行cp命令就相当于执行cp -i命令,这样不接 -i 选项,在覆盖已有文件之前也会先询问用户
unalias
取消别名
语法:unalias 命令
示例:取消cp命令的别名
ln
链接(link)
语法:ln [选项] 源文件 链接文件
分类:硬链接、软链接(符号链接)
硬链接:只能对文件进行链接
删除源文件,链接文件还可以继续使用
软链接:可以对文件或文件夹进行链接
删除源文件会导致链接文件失效
硬链接示例
软链接示例(使用 -s 选项)
stat
显示文件的状态信息(status)
语法:stat [选项] 文件
常用选项
stat -f
查看文件所在文件系统状态信息(file-system)
test -t
以简洁形式输出文件信息(terse)
示例
diff
比较两个文件的差异(different)
语法:diff [选项] 文件1 文件2
查找命令
which
查看命令位置/路径,显示别名(如果有别名的话)
语法:which 命令
注:which命令的搜索路径是根据环境变量的PATH变量去读取的,因此,如果PATH中没有,则会报无法找到的错误
示例
whereis
查看命令位置/路径
语法:whereis 命令
注:与which相比用途更广,whereis通过文件索引数据库
示例
locate
查找文件或目录
语法:locate [选项] 模式
locate命令是从 /var/lib/mlocate/mlocate.db
数据库进行搜索的,这个数据库中含有本地几乎所有文件信息。Linux系统会自动创建这个数据库,并且通过定时任务每天自动更新一次。
需要注意的是:我们手动新建的文件需要更新到数据库中才能被locate查找到,使用updatedb
命令可以更新数据库。
示例:新建lihua,更新数据库之后才能locate到lihua
find
查找文件或目录
语法:find [路径] [选项]
find VS locate
1.find命令的功能比locate多,find可以根据文件名、时间、大小等进行查找
2.locate命令的查找速度比find快很多
常用选项
find -type
指定查找文件的类型
find -name
指定查找文件的名字
find -iname
不区分文件名的大小写
find -size
指定查找文件的大小
find -mtime
指定查找文件的时间(单位: 天)
find -mmin
指定查找文件的时间(单位: 分钟)
示例
1.查找/var/log目录下大于1M小于10M的文件
2.查找/var/log目录下3天以内名字以messages开头的文件
文件内容操作和历史命令
cat
查看文件内容
语法:cat [选项] 文件
常用选项
cat -n
显示行号(line)
示例
tac
查看文件内容(从最后一行倒着显示文件内容)
语法:tac [选项] 文件
示例
more
全屏方式分页显示文件内容
语法:more [选项] 文件
操作
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按q键退出
示例
more /var/log/messages-20220606
左下角会有一个进度条
less
全屏方式分页显示文件内容
语法:less [选项] 文件
操作
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按shift+g跳到底部
按q键退出
示例
less /var/log/messages-20220606
shift+g跳到底部会有一个END标志
head
查看文件开头的一部分内容(默认为10行)
语法:head [选项] 文件
常用选项
head -数字
指定查看文件的前多少行内容
head -n 数字
指定查看文件的前多少行内容
示例
查看a.txt的前5行内容
tail
查看文件结尾的一部分内容(默认为10行)
语法:tail [选项] 文件
常用选项
tail -数字
指定查看文件的后多少行内容
tail -n 数字
指定查看文件的后多少行内容
tail -f
= tailf
动态查看文件的内容
示例
查看a.txt的后5行内容
tailf
动态查看文件结尾的部分内容
适合于日志文件的追踪
示例
可以看到左下角有个绿色的东东,表示这条命令并未执行结束,如果产生了messages会在页面上动态显示出来
vim
编辑文件的命令,vi 的进阶版
语法:vim 文件
具体看这篇:vim编辑器的使用技巧
history
查看历史命令(默认可以查看最近1000条命令)
选项
history -c
清除历史命令(clear)
!1000
执行第1000条命令
!ls
执行最近的以ls开头的命令
示例
clear
清屏操作
也可以使用快捷键 ctrl+l
进行清屏
注:在xshell中清屏之后,往上滑还可以看到之前的内容
sort
对文件的内容进行按行排序
语法:sort [选项] 文件
选项
sort -m
若⽂件已排好序,合并⽂件
sort -c
检查⽂件是否已排好序
sort -u
排序并去重:对排序后认为相同的⾏只留其中⼀⾏
sort -d
按字典顺序排序,仅⽐较字⺟、数字、空格和制表符
sort -n
按数值顺序排序
sort -r
倒序排序,默认是升序
sort -t
指定某字符作为字段分隔符
sort -k
指定按第几列进行排序
uniq
对文件的内容进行按行去重
语法:uniq [选项] 文件
选项
uniq -u
显示不重复的行
uniq -d
显示连续重复的行
uniq -c
统计重复的行的个数
归档及压缩命令
tar、zip、gzip、bzip2、xz、unzip
看这篇:归档压缩解压缩命令详解
时间相关命令
date
查看时间
语法:date [选项] [时间]
常用选项
date -s
设置时间(set)
date +"格式"
指定时间格式
常用格式
%Y%m%d %H%M%S
年月日 时分秒
%F
年-月-日
%T
时:分:秒
%x
月/日/年
示例
补充:获取命令的输出结果:`命令` 或者 $(命令)
cal
查看日历
语法:cal [选项] [日期]
常用选项
cal -3
查看上个月、当月和下个月(3个月)
cal -m
周一作为一周第一天 (monday)
cal -y
查看一年的日历(year)
示例
查看2022年2月22的日历(日期的格式:日 月 年)
用户操作命令
uname
显示系统相关信息
语法:uname [选项]
常用选项
uname 或 uname -s
显示内核名称
uname -a
显示所有信息
uname -o
显示操作系统名称
hostname
显示主机名
使用 hostname 名字
可以临时修改主机名,不过重启之后就会失效
hostnamectl
修改主机名(永久有效,重启不会失效)
示例
把主机名改为linux:hostnamectl set-hostname linux
注:重新登录才会生效
useradd
新建用户
语法:useradd [选项] 用户名
常用选项
useradd -r
新建系统用户
新建普通用户wang:useradd wang
新建系统用户zhang:useradd -r zhang
系统用户的UID一般不超过1000
userdel
删除用户
语法:userdel [选项] 用户名
常用选项
userdel -r
连用户的宿主目录一并删除
usermod
更改用户
语法:usermod [选项] 用户名
password
设置密码
语法:password 用户名
另一种设置密码的方式:echo “密码” |passwd 用户名 --stdin
su
切换用户
语法:su [选项] 用户名
id
查看用户的详细信息
语法:id [选项] 用户名