Post

linux(CentOS7) 目录管理、系统管理

目录管理命令

mkdri

  • 指定权限创建
  • -p递归创建
1
2
3
4
5
6
[root@Cc 20200326]# mkdir -m777 mkdira
[root@Cc 20200326]# ll
总用量 8
drwxrwxrwx 2 root root 4096 3月  25 22:52 mkdira
drwxr-xr-x 2 root root 4096 3月  25 22:39 pwd
[root@Cc 20200326]#

rmdir

  • 删除

ls

  • ls -lk k、h 为 k、M、G
  • 大小显示排序
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Cc lichaocheng]#  ls -lhS
总用量 31M
-rw-r--r-- 1 root  root   25M 11月  7 23:31 gogs_0.11.91_linux_amd64.tar.gz
-rw-r--r-- 1 root  root  5.8M 2月  26 09:29 hugo.filepart
drwxr-xr-x 2 root  root  4.0K 2月   7 12:51 C
drwxr-xr-x 3 root  root  4.0K 12月 17 11:31 file
drwxr-xr-x 3 root  root  4.0K 1月  17 17:34 frp
drwxr-xr-x 2 root  root  4.0K 11月 13 10:37 frp1
drwxr-xr-x 8 admin admin 4.0K 1月  16 16:54 gogs
drwxr-xr-x 3 root  root  4.0K 11月 28 20:26 harbor
drwxr-xr-x 2 root  root  4.0K 12月 19 15:54 hf
drwxr-xr-x 3 root  root  4.0K 2月  28 23:03 hugo

pwd

  • 当前目录

cd

  • cd -
  • cd /root

tree

  • 查看目录

tar

tar 基础用法

1
tar [选项] [归档文件名] [要打包/解压的文件或目录]
  • 常用选项

    • -c:创建新的归档文件
    • -x:解压归档文件
    • -v:显示操作过程(详细模式)
    • -f:指定归档文件名
    • -z:使用 gzip 压缩或解压归档文件
    • -j:使用 bzip2 压缩或解压归档文件
    • -J:使用 xz 压缩或解压归档文件
    • -C:指定解压到的目标目录

tar 常规操作

  • 1. 创建归档文件(不压缩)

    file1.txtfile2.txt 打包成 archive.tar

    1
    
    tar -cvf archive.tar file1.txt file2.txt
    
  • 2. 创建压缩归档文件

    • 使用 gzip 压缩(.tar.gz 或 .tgz 文件)

      将目录 myfolder/ 打包并用 gzip 压缩成 archive.tar.gz

      1
      
      tar -czvf archive.tar.gz myfolder/
      
    • 使用 bzip2 压缩(.tar.bz2 文件)

      将目录 myfolder/ 打包并用 bzip2 压缩成 archive.tar.bz2

      1
      2
      
      tar -cjvf archive.tar.bz2 myfolder/
          
      
    • 使用 xz 压缩(.tar.xz 文件)

      将目录 myfolder/ 打包并用 xz 压缩成 archive.tar.xz

      1
      
      tar -cJvf archive.tar.xz myfolder/
      
  • 3. 解压归档文件
    • 解压 .tar 文件(不压缩)

    解压 archive.tar 文件到当前目录

    1
    
    tar -xvf archive.tar
    
    • 解压 .tar.gz 文件(gzip 压缩)

    解压 archive.tar.gz 文件到当前目录

    1
    
    tar -xzvf archive.tar.gz
    
    • 解压 .tar.bz2 文件(bzip2 压缩)

    解压 archive.tar.bz2 文件到当前目录

    1
    
    tar -xjvf archive.tar.bz2
    
    • 解压 .tar.xz 文件(xz 压缩)

    解压 archive.tar.xz 文件到当前目录

    1
    
    tar -xJvf archive.tar.xz
    
  • 4. 解压到指定目录

archive.tar.gz 解压到指定目录 /path/to/destination/

1
tar -xzvf archive.tar.gz -C /path/to/destination/

5. 查看归档文件内容

列出 archive.tar.gz 中的文件内容,但不解压

1
tar -tvf archive.tar.gz
  • 6. 添加文件到现有归档文件

newfile.txt 添加到现有的 archive.tar 文件中

1
tar -rvf archive.tar newfile.txt
  • 7. 删除归档文件中的指定文件

archive.tar 中删除 file1.txt

1
tar --delete -f archive.tar file1.txt

tar实用组合示例

  • 备份整个目录并压缩

/home/user/data/ 目录打包并用 gzip 压缩为 backup.tar.gz

1
tar -czvf backup.tar.gz /home/user/data/
  • 定时备份(结合 cron

/home/user/data/ 目录备份并根据当前日期命名文件,如 backup-20240617.tar.gz

1
tar -czvf /backup/backup-$(date +%Y%m%d).tar.gz /home/user/data/
  • 提取指定文件

archive.tar.gz 中提取 file1.txt

1
tar -xzvf archive.tar.gz file1.txt

tar 总结

操作 命令
创建 .tar 文件 tar -cvf archive.tar files/
创建 .tar.gz 文件 tar -czvf archive.tar.gz files/
创建 .tar.bz2 文件 tar -cjvf archive.tar.bz2 files/
解压 .tar 文件 tar -xvf archive.tar
解压 .tar.gz 文件 tar -xzvf archive.tar.gz
解压 .tar.bz2 文件 tar -xjvf archive.tar.bz2
列出归档文件内容 tar -tvf archive.tar.gz
解压到指定目录 tar -xzvf archive.tar.gz -C /destination

tar ps

  1. .tar 只是归档,不会压缩文件
  2. .tar.gz.tgz 是经过 gzip 压缩的归档文件
  3. .tar.bz2 提供更高压缩率,但速度较慢
  4. .tar.xz 提供更高压缩率,适合较大文件

zip/uzip

zip

  • 常用选项

    • -r:递归压缩目录及其子目录中的所有文件。
    • -q:安静模式,不显示压缩过程信息。
    • -v:详细模式,显示详细信息。
    • -m:压缩后删除源文件。
    • -9:最大程度压缩文件。
  • 例子
    1
    2
    3
    4
    5
    
    zip example.zip file1.txt
    zip example.zip file1.txt file2.txt file3.txt
    zip -r example.zip myfolder/
    zip -m example.zip file1.txt file2.txt
    
    

    uzip

  • 常用选项

    • -l:列出压缩文件中的内容,但不解压。
    • -d:指定解压到的目标目录。
    • -o:覆盖已有文件而不询问。
    • -q:安静模式,不显示解压过程信息。
  • 例子

    1
    2
    3
    4
    5
    6
    
    unzip example.zip
    unzip -l example.zip
    unzip example.zip -d /path/to/destination
    unzip -o example.zip
    unzip -q example.zip
    
    

系统管理

man

可以查看 yum 命令手册,按 q 退出

1
2
3
[root@Cc system]# man -c
您需要什么手册页?
[root@Cc system]# man yum

export(导出环境变量)

  • 修改 go 环境变量为例
1
2
3
4
5
6
[root@Cc system]# go env |grep GOPATH
GOPATH="/opt/gopath"
[root@Cc system]# export GOPATH="/root"
[root@Cc system]# go env |grep GOPATH
GOPATH="/root"
[root@Cc system]# export GOPATH="/opt/gopath"
  • export -n

    删除指定变量

history(查看历史)

  • 将当前写入到文件
1
[root@Cc history]# history -w history.txt
  • 清楚当前 history history -c
  • 删除所有历史命令
1
2
[root@Cc history]# rm -rf ~/.bash_history
[root@Cc history]# history -c
  • 可以配合 history |grep [docker]查找

date(时间操作)

不让费时间了

clear(清除屏幕)

ctrl + l

uptime(查看系统负载)

1
2
3
[root@Cc history]# uptime
 23:33:15 up 5 days, 14:18,  2 users,  load average: 0.21, 0.32, 0.31
[root@Cc history]#

free(显示系统内存状况)

[root@Cc history]# free -m

dd(转换或者复制)

百度 填补

任务管理

at(单词任务)

指定时间输入到文件内部 [root@Cc history]# at 17:20 tomorrow

crond(周期任务)

TODO 找时间填补

关机命令

shutdown (关机)

halt

reboot(重启)

poweroff(终止系统运行)

init(改变系统允许级别)

  • 0 停机
  • 1 单用户模式
  • 2 多用户模式
  • 3 完全多用户模式
  • 4 么有用到
  • 5 X11
  • 6 重新启动

    配置 /etc/inittab

文本操作

  • vi
  • vim

最后总结

异地备份

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
31
32
33
34
35
#!/bin/bash

# 源目录
SOURCE_DIR="/opt/prometheus"
# 目标主机 IP
REMOTE_HOST="172.12.10.36"
# 目标目录
REMOTE_DIR="/home/save/filebrowser/srv/QP/backup"
# 当前日期
DATE=$(date +%Y%m%d)

# 备份文件名
BACKUP_FILE="backup_$DATE.tar.gz"

# 压缩源目录
tar -czvf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIR")" "$(basename "$SOURCE_DIR")"

# 检查压缩是否成功
if [ $? -eq 0 ]; then
    echo "压缩成功,文件名: $BACKUP_FILE"

    # 将压缩文件传输到远程服务器
    rsync -avz "$BACKUP_FILE" "$REMOTE_HOST:$REMOTE_DIR/"

    # 检查传输是否成功
    if [ $? -eq 0 ]; then
        echo "备份成功到 $REMOTE_HOST:$REMOTE_DIR/"
        # 删除本地备份文件(可选)
        rm "$BACKUP_FILE"
    else
        echo "备份传输失败"
    fi
else
    echo "压缩失败"
fi
This post is licensed under CC BY 4.0 by the author.