文章目录
1. 系统帮助命令
1.1 man 命令
man
命令是一种在线参考手册。用户可以通过 man
命令查阅各类命令的详细信息和使用方法。例如,要查看 ls
命令的详细使用方法,我们可以执行:
man ls
1.2 help 命令
help
命令可以查看 Linux 内部命令(bash shell 内部命令)的使用方法。例如,我们可以使用 help cd
来查看 cd
命令的使用方法:
help cd
1.3 命令 --help
--help
是一个常见的选项,用于查看命令的使用方法和选项信息。这个选项通常用于外部命令,例如我们可以使用 ls --help
来查看 ls
命令的使用方法和选项信息:
ls --help
1.4 type 命令
type
命令用于判断给定的命令是内部命令还是外部命令。例如,我们可以使用 type ls
来查看 ls
是内部命令还是外部命令:
type ls
2. 系统关机命令
2.1 shutdown -h now
立即关闭系统。这个命令相当于 poweroff
或 init 0
。
sudo shutdown -h now
2.2 shutdown -h 10
延迟 10 分钟后关闭系统。
sudo shutdown -h +10
3. 系统重启命令
3.1 shutdown -r now
立即重启系统。这个命令相当于 reboot
或 init 6
。
sudo shutdown -r now
4. 系统服务管理命令
使用 systemctl
命令进行系统服务的管理。例如,管理 sshd
服务:
4.1 systemctl start sshd
启动 sshd
服务。
sudo systemctl start sshd
4.2 systemctl stop sshd
停止 sshd
服务。
sudo systemctl stop sshd
4.3 systemctl restart sshd
重启 sshd
服务。
sudo systemctl restart sshd
4.4 systemctl status sshd
查看 sshd
服务的状态。
systemctl status sshd
4.5 systemctl enable sshd
设置 sshd
服务开机自启。
sudo systemctl enable sshd
4.6 systemctl disable sshd
禁止 sshd
服务开机自启。
sudo systemctl disable sshd
5. 系统目录相关命令
5.1 mkdir
用于创建目录。
-
mkdir /data /backup
创建名为/data
和/backup
的目录。mkdir /data /backup
-
mkdir -p /a/b/c/d
创建多级目录。mkdir -p /a/b/c/d
-
mkdir data{01…10}
创建序列化的目录,例如data01
到data10
。mkdir data{01..10}
-
mkdir test{01…10…2}
创建跳序序列化的目录,例如test01
、test03
、test05
等。mkdir test{01..10..2}
-
mkdir {conf,log,data}
创建三个无序的目录:conf
、log
和data
。mkdir {conf,log,data}
5.2 cd
用于切换目录。
-
cd /data
切换到/data
目录。cd /data
-
cd …
返回上一级目录。cd ..
-
cd ~
切换到用户主目录。cd ~
-
cd -
回到上次cd
的路径。cd -
5.3 tree
用于查看目录结构。
-
tree /data
查看/data
目录的目录树。tree /data
5.4 rm
用于删除目录或文件。
-
rmdir data01
删除名为data01
的空目录。rmdir data01
-
rm -r /a
删除非空目录/a
,请慎用,-f
选项可以强制删除。rm -r /a
5.5 pwd
用于显示当前工作目录的路径。
pwd
5.6 ls
用于列出目录内容。
-
ls
列出当前目录内容。ls
-
ls -l
以长格式列出目录内容。ls -l
-
ls -d
只查看目录信息,不列出目录内的内容。ls -d
-
ls -lt
按时间排序查看最新编辑的文件信息。ls -lt
-
ls -lS
按文件大小排序查看文件信息。ls -lS
5.7 du -sh
查看当前目录的大小。
du -sh .
6. 系统文件相关命令
6.1 touch
用于创建空文件或者修改文件的时间戳。
-
touch /data/file01
创建名为/data/file01
的空文件。touch /data/file01
-
touch /data/file{1…100}
创建100个文件,命名为file1
到file100
。touch /data/file{1..100}
6.2 echo
echo
命令用于在终端打印信息或将信息重定向到文件。
-
echo “hello”
打印 “hello” 到终端。echo "hello"
-
echo “hehe” > /data/file01
将 “hehe” 重定向覆盖到/data/file01
文件,文件原内容会被清空。echo "hehe" > /data/file01
-
echo “haha” >> /data/file01
将 “haha” 追加到/data/file01
文件末尾。echo "haha" >> /data/file01
6.3 cat
cat
命令用于查看文件内容或将多个文件内容拼接并打印。
-
cat
查看文件内容。例如查看/data/file01
文件内容:cat /data/file01
-
cat >> /data/file02 << EOF
编辑多行内容并追加到/data/file02
文件。cat >> /data/file02 << EOF 123 456 789 EOF
-
> /data/file02
清空/data/file02
文件内容。> /data/file02
6.4 more、less、head、tail
用于查看文件内容。
-
more
分页显示文件内容,不能回翻。例如,查看/data/file01
文件内容:more /data/file01
-
less
分页显示文件内容,可以回翻。例如,查看/data/file01
文件内容:less /data/file01
-
head
查看文件前几行,默认为10行。例如,查看/data/file01
文件前5行:head -n 5 /data/file01
-
tail
查看文件后几行,默认为10行。例如,查看/data/file01
文件后5行:tail -n 5 /data/file01
-f
参数可以用于动态追踪查看文件末尾的内容。
6.5 cp
cp
命令用于复制文件或目录。
-
cp /data/file01 /backup
将/data/file01
文件复制到/backup
目录下。cp /data/file01 /backup
-
cp -r /data /backup
复制整个/data
目录到/backup
目录。cp -r /data /backup
-
cp -rp /data/file01 /backup
保留文件属性复制/data/file01
文件到/backup
目录。cp -rp /data/file01 /backup
6.6 mv
mv
命令用于移动或重命名文件或目录。
-
mv /data/file02 /backup
将/data/file02
文件移动到/backup
目录。mv /data/file02 /backup
-
mv /data/file01 /data/file
将/data
目录下的file01
文件重命名为file
。mv /data/file01 /data/file
6.7 vim
vim
是一款功能强大的文本编辑器。
-
vim /data/file01
编辑/data/file01
文件。vim /data/file01
编辑器中有三种模式:命令模式、插入模式和命令行模式。
a
、i
和o
命令可以切换到插入模式(a
: 在光标后一位输入;i
:在当前光标输入;o
:在下一行输入)。Esc
键可以退回到命令模式。:
命令可以进入到命令行模式。
在命令行模式下,可以执行各种命令,如保存文件(:wq
、:x
或 ZZ
)、不保存退出(:q!
)、另存为(:w /tmp/file01
)等。在编辑模式下,可以进行文本的增删改查操作。
7. 系统压缩相关命令
7.1 dd
dd
命令可以用于复制和转换文件。
dd if=/dev/zero of=/data/dwj.txt bs=100M count=10
创建一个大小为1000M的空文件 /data/dwj.txt
。
dd if=/dev/zero of=/data/dwj.txt bs=100M count=10
7.2 gzip / gunzip
gzip
和 gunzip
命令用于压缩和解压 .gz
文件。
-
gzip /data/dwj.txt
将/data/dwj.txt
文件压缩成/data/dwj.txt.gz
。gzip /data/dwj.txt
-
gunzip /data/dwj.gz
将/data/dwj.gz
解压成/data/dwj
。gunzip /data/dwj.gz
或者使用
gzip -d
命令:gzip -d /data/dwj.gz
7.3 bzip2 / bunzip2
bzip2
和 bunzip2
命令用于压缩和解压 .bz2
文件。
-
bzip2 /data/dwj.txt
将/data/dwj.txt
文件压缩成/data/dwj.txt.bz2
。bzip2 /data/dwj.txt
-
bunzip2 /data/dwj.bz2
将/data/dwj.bz2
解压成/data/dwj
。bunzip2 /data/dwj.bz2
或者使用
bzip2 -d
命令:bzip2 -d /data /dwj.bz2
7.4 tar
tar
命令用于创建、解包、查看、添加和删除 tar 压缩包。
-
tar zcf /backup/etc-boot.tar.gz /etc /boot
将/etc
和/boot
目录归档并压缩成gzip
格式的压缩包/backup/etc-boot.tar.gz
。tar zcf /backup/etc-boot.tar.gz /etc /boot
-
tar xf /backup/etc-boot.tar.gz
解压/backup/etc-boot.tar.gz
到当前目录。tar xf /backup/etc-boot.tar.gz
可以使用
-C
参数指定解压的目标目录:tar xf /backup/etc-boot.tar.gz -C /target/directory
-
tar jcf /backup/etc-boot.tar.bz2 /etc /boot
将/etc
和/boot
目录归档并压缩成bzip2
格式的压缩包/backup/etc-boot.tar.bz2
。tar jcf /backup/etc-boot.tar.bz2 /etc /boot
-
tar xf /backup/etc-boot.tar.bz2
解压/backup/etc-boot.tar.bz2
到当前目录。tar xf /backup/etc-boot.tar.bz2
可以使用
-C
参数指定解压的目标目录:tar xf /backup/etc-boot.tar.bz2 -C /target/directory
8. 系统别名相关命令
alias
命令可以为其他命令创建一个别名,简化命令的输入。
-
alias c=clear
设置别名c
表示清屏命令clear
。alias c=clear
-
alias
查看当前已设置的所有别名。alias
-
unalias c
取消别名c
。unalias c
如果想要让别名在重启后仍然有效,可以将
alias
命令添加到~/.bashrc
或~/.bash_profile
文件中。 -
vim /root/.bashrc
编辑root
用户的~/.bashrc
文件,添加别名设置。vim /root/.bashrc
在文件末尾添加如下行:
alias c=clear
然后保存退出。
-
. /root/.bashrc
让修改后的~/.bashrc
文件立即生效。. /root/.bashrc
9. 系统搜索相关命令
9.1 find
find
命令用于在文件系统中搜索文件。
-
find /etc/ -name sshd_config
通过文件名搜索/etc/
目录下的sshd_config
文件。find /etc/ -name sshd_config
-
find /etc -iname SSHD_CONFIG
忽略大小写搜索/etc/
目录下的SSHD_CONFIG
文件。find /etc -iname SSHD_CONFIG
-
find /etc/ -name *.cfg
使用*
通配符搜索/etc/
目录下所有以.cfg
结尾的文件。find /etc/ -name *.cfg
-
find /etc/ -name ???.log
使用?
通配符搜索/etc/
目录下长度为 5 的以.log
结尾的文件。find /etc/ -name ?????.log
-
find / -type f
搜索文件系统中的所有文件(d
代表目录,f
代表文件,s
代表套接字,b
代表块设备,l
代表链接)。find / -type f
-
find . -type f -atime -7
搜索最近七天内被访问过的所有文件。find . -type f -atime -7
-
find . -type f -mtime 7
搜索恰好在七天前被修改过的所有文件。find . -type f -mtime 7
-
find . -type f -ctime +7
搜索超过七天未修改属性的所有文件。find . -type f -ctime +7
注意:
stat
命令可以查看文件访问、更改等属性;touch -a
可用于修改访问属性,-m
可用于修改更改属性。 -
find / -user testuser -type f
搜索属于testuser
用户的所有文件。find / -user testuser -type f
-
find / -group devgroup -type f
搜索属于devgroup
组的所有文件。find / -group devgroup -type f
-
find / -type f -nouser
搜索系统中的孤儿文件(文件属主用户已被删除)。find / -type f -nouser
-
find / ! -user root -type f
搜索不属于root
用户的所有文件。find / ! -user root -type f
-
find / -perm -g=w -type f
查找/
目录下,小组权限为可写的所有文件。find / -perm -g=w -type f
-
find / -perm -222 -type f
查找/
目录下,用户、组和其他人都有写权限的所有文件。find / -perm -222 -type f
-
find / -perm /222 -type f
查找/
目录下,用户、组或其他人有写权限的所有文件。
find / -perm /222 -type f
注意:
u
用户,g
组,o
其他人;r
读,w
写,x
执行;r=4
,w=2
,x=1
。 -
find / -type f -size -4M
查找/
目录下,文件大小小于 4M 的所有文件。find / -type f -size -4M
-
find / -type f -size 2M
查找/
目录下,文件大小等于 2M 的所有文件。find / -type f -size 2M
-
find / -type f -size +5M
查找/
目录下,文件大小大于 5M 的所有文件。find / -type f -size +5M
-
find /etc -name *.cfg -type f -exec cp {} /backup ;
查找/etc
目录下的所有.cfg
文件并将它们复制到/backup
目录,执行时无提示。find /etc -name *.cfg -type f -exec cp {} /backup \;
-
find /etc -name *.cfg -type f -ok cp {} /backup ;
查找/etc
目录下的所有.cfg
文件并将它们复制到/backup
目录,执行时有提示。find /etc -name *.cfg -type f -ok cp {} /backup \;
-
find /data -type f -size 0 -exec rm -rf {} ;
查找/data
目录下的所有空文件,并删除。find /data -type f -size 0 -exec rm -rf {} \;
10. 系统排序相关命令
10.1 sort
sort
命令用于将文本文件内容进行排序。
首先创建 ranking.txt
文件:
cat > ranking.txt << EOF
y:7
x:1
z:9
v:4
w:11
u:2
EOF
-
cat ranking.txt | sort
对ranking.txt
文件的内容进行排序,默认按照每行的第一个字符进行排序。cat ranking.txt | sort
-
cat ranking.txt | sort -r
对ranking.txt
文件的内容进行反向排序。cat ranking.txt | sort -r
-
cat ranking.txt | sort -t “:” -k 2
使用:
作为分隔符,对第 2 个字段进行排序。cat ranking.txt | sort -t ":" -k 2
-
cat ranking.txt | sort -t “:” -k 2 -n
使用:
作为分隔符,对第 2 个字段进行排序,并且按照数字大小排序。cat ranking.txt | sort -t ":" -k 2 -n
11. 系统去重相关命令
11.1 uniq
uniq
命令用于报告或忽略文件中的重复行。
首先创建 numbers.txt
文件:
cat > numbers.txt
<<EOF
555
666
777
888
999
666
777
666
EOF
-
sort numbers.txt | uniq
对numbers.txt
文件的内容进行排序后,使用uniq
进行去重。sort numbers.txt | uniq
-
sort numbers.txt | uniq -c
对numbers.txt
文件的内容进行排序后,使用uniq -c
进行去重并显示每行重复的次数。sort numbers.txt | uniq -c
12. 综合示例
示例一:查看和备份日志文件
假设你是系统管理员,你要查看 /var/log
目录下过去7天内被修改过的所有日志文件,并将它们复制到 /backup/logs
目录中。
# 查找并复制文件
find /var/log -type f -mtime -7 -exec cp {} /backup/logs \;
# 验证文件
ls -l /backup/logs
示例二:清理无用文件
在 /data
目录下,删除所有大小为 0,或者属于已经不存在的用户的文件。
# 删除大小为0的文件
find /data -type f -size 0 -exec rm -rf {} \;
# 删除孤儿文件
find /data -type f -nouser -exec rm -rf {} \;
示例三:管理文本文件
在 /etc
目录下,找出所有以 .cfg
结尾的文件,将它们的内容排序并删除重复行,然后保存到 /sorted/sorted_cfg.txt
中。
# 找出文件,排序,去重,保存
find /etc -name "*.cfg" -exec cat {} \; | sort | uniq > /sorted/sorted_cfg.txt
示例四:按大小备份文件
在 /data
目录下,找出所有大小超过 5M 的文件,然后将它们复制到 /backup/big_files
目录中。
# 查找并复制文件
find /data -type f -size +5M -exec cp {} /backup/big_files \;
# 验证文件
ls -l /backup/big_files
示例五:提取并分析日志数据
在 /var/log
目录下,找出所有在过去30分钟内被访问过的日志文件,然后从这些文件中提取出所有的错误信息,排序这些错误信息,并统计每种错误发生的次数。
# 查找文件,提取错误信息,排序,统计次数
find /var/log -type f -amin -30 -exec cat {} \; | grep "ERROR" | sort | uniq -c