【Linux基础及shell脚本】Linux操作命令

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

立即关闭系统。这个命令相当于 poweroffinit 0

sudo shutdown -h now

2.2 shutdown -h 10

延迟 10 分钟后关闭系统。

sudo shutdown -h +10

3. 系统重启命令

3.1 shutdown -r now

立即重启系统。这个命令相当于 rebootinit 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

用于创建目录。

  1. mkdir /data /backup
    创建名为 /data/backup 的目录。

    mkdir /data /backup
    
  2. mkdir -p /a/b/c/d
    创建多级目录。

    mkdir -p /a/b/c/d
    
  3. mkdir data{01…10}
    创建序列化的目录,例如 data01data10

    mkdir data{01..10}
    
  4. mkdir test{01…10…2}
    创建跳序序列化的目录,例如 test01test03test05 等。

    mkdir test{01..10..2}
    
  5. mkdir {conf,log,data}
    创建三个无序的目录:conflogdata

    mkdir {conf,log,data}
    

5.2 cd

用于切换目录。

  1. cd /data
    切换到 /data 目录。

    cd /data
    
  2. cd …
    返回上一级目录。

    cd ..
    
  3. cd ~
    切换到用户主目录。

    cd ~
    
  4. cd -
    回到上次 cd 的路径。

    cd -
    

5.3 tree

用于查看目录结构。

  1. tree /data
    查看 /data 目录的目录树。

    tree /data
    

5.4 rm

用于删除目录或文件。

  1. rmdir data01
    删除名为 data01 的空目录。

    rmdir data01
    
  2. rm -r /a
    删除非空目录 /a,请慎用,-f 选项可以强制删除。

    rm -r /a
    

5.5 pwd

用于显示当前工作目录的路径。

pwd

5.6 ls

用于列出目录内容。

  1. ls
    列出当前目录内容。

    ls
    
  2. ls -l
    以长格式列出目录内容。

    ls -l
    
  3. ls -d
    只查看目录信息,不列出目录内的内容。

    ls -d
    
  4. ls -lt
    按时间排序查看最新编辑的文件信息。

    ls -lt
    
  5. ls -lS
    按文件大小排序查看文件信息。

    ls -lS
    

5.7 du -sh

查看当前目录的大小。

du -sh .

6. 系统文件相关命令

6.1 touch

用于创建空文件或者修改文件的时间戳。

  1. touch /data/file01
    创建名为 /data/file01 的空文件。

    touch /data/file01
    
  2. touch /data/file{1…100}
    创建100个文件,命名为 file1file100

    touch /data/file{1..100}
    

6.2 echo

echo 命令用于在终端打印信息或将信息重定向到文件。

  1. echo “hello”
    打印 “hello” 到终端。

    echo "hello"
    
  2. echo “hehe” > /data/file01
    将 “hehe” 重定向覆盖到 /data/file01 文件,文件原内容会被清空。

    echo "hehe" > /data/file01
    
  3. echo “haha” >> /data/file01
    将 “haha” 追加到 /data/file01 文件末尾。

    echo "haha" >> /data/file01
    

6.3 cat

cat 命令用于查看文件内容或将多个文件内容拼接并打印。

  1. cat
    查看文件内容。例如查看 /data/file01 文件内容:

    cat /data/file01
    
  2. cat >> /data/file02 << EOF
    编辑多行内容并追加到 /data/file02 文件。

    cat >> /data/file02 << EOF
    123
    456
    789
    EOF
    
  3. > /data/file02
    清空 /data/file02 文件内容。

    > /data/file02
    

6.4 more、less、head、tail

用于查看文件内容。

  1. more
    分页显示文件内容,不能回翻。例如,查看 /data/file01 文件内容:

    more /data/file01
    
  2. less
    分页显示文件内容,可以回翻。例如,查看 /data/file01 文件内容:

    less /data/file01
    
  3. head
    查看文件前几行,默认为10行。例如,查看 /data/file01 文件前5行:

    head -n 5 /data/file01
    
  4. tail
    查看文件后几行,默认为10行。例如,查看 /data/file01 文件后5行:

    tail -n 5 /data/file01
    

    -f 参数可以用于动态追踪查看文件末尾的内容。

6.5 cp

cp 命令用于复制文件或目录。

  1. cp /data/file01 /backup
    /data/file01 文件复制到 /backup 目录下。

    cp /data/file01 /backup
    
  2. cp -r /data /backup
    复制整个 /data 目录到 /backup 目录。

    cp -r /data /backup
    
  3. cp -rp /data/file01 /backup
    保留文件属性复制 /data/file01 文件到 /backup 目录。

    cp -rp /data/file01 /backup
    

6.6 mv

mv 命令用于移动或重命名文件或目录。

  1. mv /data/file02 /backup
    /data/file02 文件移动到 /backup 目录。

    mv /data/file02 /backup
    
  2. mv /data/file01 /data/file
    /data 目录下的 file01 文件重命名为 file

    mv /data/file01 /data/file
    

6.7 vim

vim 是一款功能强大的文本编辑器。

  1. vim /data/file01
    编辑 /data/file01 文件。

    vim /data/file01
    

编辑器中有三种模式:命令模式、插入模式和命令行模式。

  • aio 命令可以切换到插入模式(a: 在光标后一位输入;i:在当前光标输入;o:在下一行输入)。
  • Esc 键可以退回到命令模式。
  • : 命令可以进入到命令行模式。

在命令行模式下,可以执行各种命令,如保存文件(:wq:xZZ)、不保存退出(: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

gzipgunzip 命令用于压缩和解压 .gz 文件。

  1. gzip /data/dwj.txt
    /data/dwj.txt 文件压缩成 /data/dwj.txt.gz

    gzip /data/dwj.txt
    
  2. gunzip /data/dwj.gz
    /data/dwj.gz 解压成 /data/dwj

    gunzip /data/dwj.gz
    

    或者使用 gzip -d 命令:

    gzip -d /data/dwj.gz
    

7.3 bzip2 / bunzip2

bzip2bunzip2 命令用于压缩和解压 .bz2 文件。

  1. bzip2 /data/dwj.txt
    /data/dwj.txt 文件压缩成 /data/dwj.txt.bz2

    bzip2 /data/dwj.txt
    
  2. 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 压缩包。

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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 命令可以为其他命令创建一个别名,简化命令的输入。

  1. alias c=clear
    设置别名 c 表示清屏命令 clear

    alias c=clear
    
  2. alias
    查看当前已设置的所有别名。

    alias
    
  3. unalias c
    取消别名 c

    unalias c
    

    如果想要让别名在重启后仍然有效,可以将 alias 命令添加到 ~/.bashrc~/.bash_profile 文件中。

  4. vim /root/.bashrc
    编辑 root 用户的 ~/.bashrc 文件,添加别名设置。

    vim /root/.bashrc
    

    在文件末尾添加如下行:

    alias c=clear
    

    然后保存退出。

  5. . /root/.bashrc
    让修改后的 ~/.bashrc 文件立即生效。

    . /root/.bashrc
    

9. 系统搜索相关命令

9.1 find

find 命令用于在文件系统中搜索文件。

  1. find /etc/ -name sshd_config
    通过文件名搜索 /etc/ 目录下的 sshd_config 文件。

    find /etc/ -name sshd_config
    
  2. find /etc -iname SSHD_CONFIG
    忽略大小写搜索 /etc/ 目录下的 SSHD_CONFIG 文件。

    find /etc -iname SSHD_CONFIG
    
  3. find /etc/ -name *.cfg
    使用 * 通配符搜索 /etc/ 目录下所有以 .cfg 结尾的文件。

    find /etc/ -name *.cfg
    
  4. find /etc/ -name ???.log
    使用 ? 通配符搜索 /etc/ 目录下长度为 5 的以 .log 结尾的文件。

    find /etc/ -name ?????.log
    
  5. find / -type f
    搜索文件系统中的所有文件(d 代表目录,f 代表文件,s 代表套接字,b 代表块设备,l 代表链接)。

    find / -type f
    
  6. find . -type f -atime -7
    搜索最近七天内被访问过的所有文件。

    find . -type f -atime -7
    
  7. find . -type f -mtime 7
    搜索恰好在七天前被修改过的所有文件。

    find . -type f -mtime 7
    
  8. find . -type f -ctime +7
    搜索超过七天未修改属性的所有文件。

    find . -type f -ctime +7
    

    注意:stat 命令可以查看文件访问、更改等属性;touch -a 可用于修改访问属性,-m 可用于修改更改属性。

  9. find / -user testuser -type f
    搜索属于 testuser 用户的所有文件。

    find / -user testuser -type f
    
  10. find / -group devgroup -type f
    搜索属于 devgroup 组的所有文件。

    find / -group devgroup -type f
    
  11. find / -type f -nouser
    搜索系统中的孤儿文件(文件属主用户已被删除)。

    find / -type f -nouser
    
  12. find / ! -user root -type f
    搜索不属于 root 用户的所有文件。

    find / ! -user root -type f
    
  13. find / -perm -g=w -type f
    查找 / 目录下,小组权限为可写的所有文件。

    find / -perm -g=w -type f
    
  14. find / -perm -222 -type f
    查找 / 目录下,用户、组和其他人都有写权限的所有文件。

    find / -perm -222 -type f
    
  15. find / -perm /222 -type f
    查找 / 目录下,

    用户、组或其他人有写权限的所有文件。

    find / -perm /222 -type f
    

    注意:u 用户,g 组,o 其他人;r 读,w 写,x 执行;r=4w=2x=1

  16. find / -type f -size -4M
    查找 / 目录下,文件大小小于 4M 的所有文件。

    find / -type f -size -4M
    
  17. find / -type f -size 2M
    查找 / 目录下,文件大小等于 2M 的所有文件。

    find / -type f -size 2M
    
  18. find / -type f -size +5M
    查找 / 目录下,文件大小大于 5M 的所有文件。

    find / -type f -size +5M
    
  19. find /etc -name *.cfg -type f -exec cp {} /backup ;
    查找 /etc 目录下的所有 .cfg 文件并将它们复制到 /backup 目录,执行时无提示。

    find /etc -name *.cfg -type f -exec cp {} /backup \;
    
  20. find /etc -name *.cfg -type f -ok cp {} /backup ;
    查找 /etc 目录下的所有 .cfg 文件并将它们复制到 /backup 目录,执行时有提示。

    find /etc -name *.cfg -type f -ok cp {} /backup \;
    
  21. 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
  1. cat ranking.txt | sort
    ranking.txt 文件的内容进行排序,默认按照每行的第一个字符进行排序。

    cat ranking.txt | sort
    
  2. cat ranking.txt | sort -r
    ranking.txt 文件的内容进行反向排序。

    cat ranking.txt | sort -r
    
  3. cat ranking.txt | sort -t “:” -k 2
    使用 : 作为分隔符,对第 2 个字段进行排序。

    cat ranking.txt | sort -t ":" -k 2
    
  4. 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
  1. sort numbers.txt | uniq
    numbers.txt 文件的内容进行排序后,使用 uniq 进行去重。

    sort numbers.txt | uniq
    
  2. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricky_0528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值