Skip to content

基本配置

CMD 登录 ssh

  • 默认 22 端口: ssh root@45.77.123.77
  • 指定 2222 端口: ssh -p 2222 root@45.77.123.77

~/.bashrc 配置文件

~/.bashrc 配置只影响用户自己,修改 /etc/profile 可以作用全局用户

bash
# 提示符信息和颜色
PS1='[\[\033[01;35m\]\t\[\033[00m\] \[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\]] \$ '

# 修改历史记录的条数和大小,以及添加历史的详细信息
export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE="ls:cd:pwd:exit"
export HISTTIMEFORMAT="%F %T `whoami` "

# 给ls命令下的文件名着色
export LS_OPTIONS='--color=auto'
eval "$(dircolors)"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -alhA'
alias l='ls $LS_OPTIONS -aA'

# 快捷安装包别名
alias i='sudo apt install'
# 快捷使用docker命令
alias sd='sudo docker'
# 快捷查看docker镜像,容器,卷,网络
alias sdls='sudo docker images;echo;sudo docker ps -a;echo;sudo docker volume ls;echo;sudo docker network ls'
# 快捷删除所有容器
alias sdrm='sudo docker rm -f `sudo docker ps -aq`'

# cl函数直接切换目录并列出目录
cl() {
    if [ -n "$1" ]; then
        cd "$1" && ls -aA
    else
        cd && ls -aA
    fi
}

命令格式

COMMAND [OPTIONS...选项] [ARGUMENTS...参数]

  • unix 风格: 横线带字母 ls -a /root free -h
  • GUN 风格: 横线带全拼 ls --all /root free --human
  • 伯克利风格: 带字母 ps a ps aux

常用命令

硬件信息

参数说明
top htop查看 CPU 占用
lscpu查看 CPU 架构信息
free -h查看内存占用
lsblk查看硬盘信息
df -h查看磁盘占用

-h : (human) 参数会以人类易读的格式显示(比如 GB 或 MB)

系统信息

参数说明
uname -a打印所有系统的信息
uname -rLinux 内核版本
cat /etc/os-release发行系统版本
uptime显示系统运行时间和负载
pstree将所有进程以树状图显示
jobs查看和管理后台任务, fg %<id>恢复前台
hostname查看本机名
hostname -I查看本机 ip
hostname NAME临时设置主机名(改的内存)
nano /etc/hostname永久设置主机名,需要重启才能生效
hostnamectl set-hostname NAME永久设置主机名,推荐使用
env显示和临时修改环境变量
  • 查看公网 ip:
    bash
     echo `curl -s https://ifconfig.me`

其他

常用命令说明
whow显示所有登录用户
whoami显示当前用户名
whatis显示命令的简要描述
which查找命令路径
whereis查找命令、帮助文件或源代码的路径
sudo -i以超级用户身份切换到交互式 shell(sudo 用于提权)
pwd显示当前工作目录路径
nano /etc/issue编辑登录前的提示信息
nano /etc/motd编辑登录后的提示信息
runlevel查看当前的运行级别
reboot重启系统
logoutexitCtrl+D注销当前会话
shutdown计划性关机,允许延迟并通知用户 参考
poweroff立即关闭电源
type判断是否为 bash 内部命令(内部命令不显示路径,优先级:别名 > 内部命令 > 外部命令)
source.执行当前 shell 脚本,使修改的配置文件立即生效
alias设置别名,取消别名:unalias
hash显示命令路径缓存及其使用次数
sleep延迟执行(单位:秒)
clearCtrl+L清屏
maninfo查看程序手册(infoman 更详细)
stat显示文件或文件系统的状态
hexdump以十六进制、十进制、八进制或 ASCII 显示文件内容
包相关命令说明
apt update列出所有可更新的软件清单命令
apt upgrade升级软件包
dpkg -s <软件包名称>返回关于软件包的详细状态信息。如果未安装,会提示找不到软件包。
apt list --installed <软件包名称>如果软件包已安装,输出结果会显示 [installed] 标记
scp <本地文件路径> <用户名>@<服务器 IP 或域名>:<远程目录路径>上传文件夹需要加 -r 参数
sftp username@remote_ip get putsftp 文件传输协议
  • 自定义提示符: nano ~/.bashrc PS1='\[\033[01;35m\]\t\[\033[00m\] \[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\] \$ '
bash
**\[\033[01;31m\]**:
  `\033` 是转义字符,表示开始颜色设置。
  `[01;35m` 设置了颜色样式:
    `01`:加粗
    `35`:紫色(35 是 ANSI 颜色代码中的紫色)
  所以,这段代码会将后面显示的内容变为红色并加粗。

**\t**: 这是一个格式化指令,表示“当前时间”(24 小时制),显示时间格式为 `hh:mm:ss`

**\[\033[00m\]**: 这个部分用于重置颜色或样式,恢复到默认样式。

**\[\033[01;32m\]**: [01;32m` 设置绿色(32 是绿色的 ANSI 代码),并加粗。

**\u**: 这是一个格式化指令,表示当前的用户名。

**@**: 这是简单的字符,表示用户名和主机名之间的分隔符。

**\h**: 这是一个格式化指令,表示主机名的短版本(例如,如果主机名是 `myserver.local`,它将显示为 `myserver`)。

**\[\033[00m\]**: 再次重置颜色。

**\[\033[01;34m\]**: [01;34m` 设置蓝色并加粗。

**\w**: 这是一个格式化指令,表示当前工作目录的路径。

**\[\033[00m\]**: 这一部分再次重置颜色,确保后面的字符不受前面样式的影响。

**\$**:这是一个格式化指令,表示:如果是普通用户,则显示 `$`。如果是超级用户(root),则显示 `#`。

常识

  • 提示符中的$指的是普通用户,#指的是超级用户
  • 多个命令之间使用;隔开,每个命令都会执行,增加echo可以让输出换行
  • && (逻辑与): 只有当前一个命令成功执行后,才会执行下一个命令。
  • || (逻辑或): 只有当前一个命令失败后,才会执行下一个命令。
  • 命令+ & 可以后台执行
  • \可以给命令换行,同时也是转义符
  • 命令前面加\表示强制使用原始命令,不使用别名
  • ~: 指当前用户文件夹
  • .开头文件是隐藏文件
  • . + 文件 可以使配置立即生效,相当于source
  • > 用于覆盖文件 >>用于追加文件
  • | 管道符,将一个命令的标准输出作为另一个命令的标准输入 ps aux | grep ssh

bash 快捷键

快捷键说明
^+l(^指 ctrl)清屏,等于 clear
^+o执行当前命令,并重新显示当前命令
^+s阻止屏幕输出,锁定,使用 ^+q 解锁
^+c终止命令
^+z挂起命令,后台运行
alt+.将前一条命令的最后一个参数作为这个命令的参数
alt+r删除整行
^+u删除光标之前的所有字符串
^+k删除光标之后的所有字符串
^+d退出命令行

获得帮助

命令说明
help获取内部命令的帮助信息, help echo , help history,man bash查看全部内部命令
whatis显示命令的简短说明, 等于man -f
--help-h获取外部命令的帮助信息,date --help,有些不支持 -h
man用于查看各种命令、函数和配置文件的手册页面,手册存放在 /usr/share/man
infoman更详细,包含教程和示例
/usr/share/doc/

man命令有不同的章节,常见的节号包括:(参考)

  • 1:用户命令
  • 2:系统调用
  • 3:C 库函数
  • 4:设备和特殊文件
  • 5:文件格式和约定
  • 6:游戏和演示
  • 7:杂项
  • 8:系统管理命令
bash
16:13:47 root@aliyun001 ~ # whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz // 这里显示ls命令的程序和说明所在路径
16:48:10 root@aliyun001 ~ # whatis ls
ls (1)               - list directory contents // 这里显示ls的手册章节是在1章节,就是指ls.1.gz文件
16:48:19 root@aliyun001 ~ # man 1 ls
// 这里查看ls手册的1章节,实际就是打开了ls.1.gz文件,命令不加数字默认最后一个章节

一些常见的选项包括:

  • -f:显示与指定关键字相关的手册页面。
  • -k:搜索手册页中与关键字匹配的条目。
  • -a:显示所有匹配的手册页面。
  • -w:仅显示手册页的位置,而不显示其内容。

init 命令

临时修改,使用runlevel查看

  • 0 | 关机 | 系统关机状态
  • 1 | 单用户模式 | 系统维护/root 权限
  • 2 | 多用户模式(无 NFS) | 基本多用户模式
  • 3 | 完整多用户模式 | 标准命令行界面
  • 4 | 保留 | 用户自定义
  • 5 | 图形界面模式 | 带 GUI 的多用户模式
  • 6 | 重启 | 系统重启

bash shell

显示当前使用的 shell: echo ${SHELL} 显示当前系统使用的所有 shell: cat /etc/shells

时间

  • 显示时间: date
  • 显示日历: cal, 有些系统不支持
  • 显示时区列表: timedatectl list-timezones
  • 设置时区(上海): timedatectl set-timezone Asia/Shanghai

会话管理

会话(Session)管理

操作命令/快捷键
新建会话tmux new -s <会话名>
断开当前会话,依旧后台运行Ctrl+B → d
重新连接会话tmux attach -t <会话名>
列出所有会话tmux ls
重命名当前会话Ctrl+B → $
切换会话Ctrl+B → ( 或 )
关闭会话tmux kill-session -t <会话名>

窗口(Window)管理

操作快捷键
新建窗口Ctrl+B → c
关闭当前窗口Ctrl+B → & Ctrl+D
重命名当前窗口Ctrl+B → ,
切换窗口Ctrl+B → 0-9(数字键)
下一个窗口Ctrl+B → n
上一个窗口Ctrl+B → p
窗口列表Ctrl+B → w(可视化选择)

窗格(Pane)操作

操作快捷键
水平分割窗格Ctrl+B → "
垂直分割窗格Ctrl+B → %
切换窗格Ctrl+B → 方向键
关闭当前窗格Ctrl+B → x
全屏切换当前窗格Ctrl+B → z
调整窗格大小Ctrl+B → Alt+方向键
同步输入所有窗格Ctrl+B → :setw synchronize-panes

复制模式与滚动

操作快捷键
进入复制模式Ctrl+B → [
退出复制模式Esc 或 Enter
搜索文本Ctrl+B → [ → ?(反向搜索)或 /(正向搜索)
快速翻页Ctrl+B → [ → PgUp/PgDn

其他实用操作

操作命令/快捷键
重新加载配置Ctrl+B → :source-file ~/.tmux.conf
显示时间Ctrl+B → t
列出所有快捷键Ctrl+B → ?
启用鼠标支持在 ~/.tmux.conf 中添加 set -g mouse on

输出信息 echo

参考链接

echo 命令是 Linux 中最基本和常用的命令之一,用于在终端中显示文本或变量的值。 echo 是 Linux/Unix 系统中的内置命令,主要用于:

  • 在终端显示文本信息
  • 输出变量的值
  • 生成格式化的字符串
  • 向文件追加内容

基本语法: echo [选项][字符串]

常用选项:

  • -n 不输出换行符
  • -e 启用转义字符解释
  • -E 禁用转义字符解释(默认)

转义字符(需要 -e 选项):

  • \n - 换行
  • \t - 制表符
  • \r - 回车
  • \b - 退格
  • \ - 反斜杠
  • " - 双引号
  • \a - 响铃

引号问题

  • 双引号:弱引用,会解释变量和特殊字符
  • 单引号:强引用,原样输出所有内容,屏蔽特殊含义
  • 无引号:多个空格会被压缩为一个

编码和字符集

  • 查看语言和编码: echo $LANG
  • 切换中文语言: LANG=zh_CN.UTF-8(有些改了也不显示中文提示)
  • 切换英文语言: LANG=en_US.UTF-8

反引号``和$(), 大括号

反引号: 命令转换,等于$(),变量和命令都执行,并且将反引号的内容当成命令执行后,交给调用反引号的命令继续执行

bash
11:43:29 root@aliyun001 ~ # echo "My hostname is `hostname`"
My hostname is aliyun001

touch `hostname`-`date +%F`.txt  // 生成主机名+年月日的txt空文件
ls -l $(echo `hostname`-`date +%F`.txt) // 使用$()嵌套使用命令,反引号可直接替换为$(),如下:
ls -l $(echo $(hostname)-$(date +%F).txt)

大括号:可快速批量生成特定字符串

bash
12:18:56 root@aliyun001 ~ # echo file{1,2,3}.txt
file1.txt file2.txt file3.txt // 批量输出
12:20:51 root@aliyun001 ~ # echo {1..5}
1 2 3 4 5 // 使用..省略中间连续的数字,字母也可以
12:23:31 root@aliyun001 ~ # echo {20..10..2}
20 18 16 14 12 10 // 20开始到10,步长2

Table 键

  • 按单击: 如果唯一,直接补全命令/路径
  • 双击: 给出所有符合条件的命令/路径列表

命令行历史

history 是 Linux 系统中一个极其有用的内置命令,它记录了用户在终端中执行过的所有命令历史

当你在终端输入命令时,Bash 会将这些命令保存在内存中,并在正常退出时写入到 ~/.bash_history 文件中(默认配置下)。

常用选项参数详解

选项说明示例
-cclear 清除所有历史记录history -c
-ddelete 删除指定位置的历史记录history -d 1005
-aappend 立即将内存中的历史写入历史文件history -a
-n从历史文件中读取未读的历史记录history -n
-rread 读取历史文件内容到当前会话history -r
-wwrite 将当前历史记录写入历史文件history -w
-s将命令添加到历史记录中,不执行命令history -s

快速执行历史命令

选项说明
!n执行历史记录中第 n 条命令 !2:执行第 2 条命令,!-2:执行倒数第二条
!!执行上一条命令
!string执行最近一条以 string 开头的命令
!?at最近包含 at 的命令
!*将前一条命令的所有参数作为这个命令的参数 cat !*
!:n将前一条命令的第 n 个参数作为这个命令的参数 cat !:2
alt+.快捷键,将前一条命令的最后一个参数作为这个命令的参数

环境变量配置

通过环境变量可以自定义 history 命令的行为:

变量说明推荐值
HISTSIZE内存中保存的历史命令数量5000
HISTFILESIZE历史文件中保存的命令数量10000
HISTCONTROL控制历史记录方式ignoredups:erasedups
HISTIGNORE指定不记录的命令"ls:cd:pwd:exit"

配置示例(添加到 ~/.bashrc文件(用户级配置)或/etc/profile文件(系统级配置)才能永久保存):

bash
export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE="ls:cd:pwd:exit"
export HISTTIMEFORMAT="%F %T `whoami` "

加 export:设置一个环境变量,影响当前 shell 及其子进程。 不加 export:仅在当前 shell 会话有效,不影响子进程。

文件管理

基础知识

  • 绝对路径:以/开头,从根目录开始,完整的文件路径

  • 相对路径: 任何不以/和~开头的路径,相对于当前工作目录的位置或特殊场景下某个目录的位置

  • 目录名: dirname, 文件的路径,不包含自己的文件名, /etc/a/b 中/etc/a 为 dirname

  • 基名: basename, 文件自己的名字,/etc/a/b 中 b 为 basename,目录也是文件

  • 文件列表中的.指当前目录, ..指父目录(上级目录)

  • 文件的三个时间,使用ls --time=mtime filenamestat filename命令读取:

    • mtime: modify time 内容的修改时间
    • ctime: change time 文件属性的修改时间(大小,时间,权限)
    • atime: access time 被读取的时间
  • Linux 中文件后缀没有 windows 严格

  • Linux 中只有换行\n 没有回车\r

  • 常用通配符(常用于匹配文件,只知道一部分信息剩下用通配符表示: abc*, a??, a[a-c])

    • *: 匹配零个或多个字符, rm -rf * ls -a bash*, 无法删除或匹配隐藏的文件
    • ?: 匹配任何单个字符
    • ~: 当前用户家目录
    • ~mage: 用户 mage 的家目录
    • ~+.: 当前工作目录
    • ~-: 前一个工作目录
    • [0-9]: 匹配数字范围
    • [a-z]: 匹配字母范围
    • [wang]: 匹配列表中的任何的一个字符
    • [^wang]: 匹配列表中的所有字符以外的字符
  • /根目录,也是文件名分隔符, ~当前用户目录简写

  • .开头的是隐藏文件

  • 文件名称大小写敏感

  • bin -> usr/bin: 箭头这种形式指的链接文件,相当于快捷方式,可用lh命令创建

  • 蓝色-->目录; 绿色-->可执行文件; 红色-->压缩文件; 浅蓝色-->链接文件; 灰色-->其他文件

  • 启用颜色库和自动显示颜色的~/.bashrc配置

    bash
    export LS_OPTIONS='--color=auto'
    eval "$(dircolors)"
    alias ls='ls $LS_OPTIONS'
    alias ll='ls $LS_OPTIONS -alh'

文件目录结构

参考

目录说明
/文件系统的起始位置,称为根
/binbin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devdev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etcetc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/liblib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/medialinux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了
/optopt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的
/procproc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbins 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的。
/srv该目录存放一些服务启动之后需要提取的数据。
/sys这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。 sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmptmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usrusr 是 unix system resources(unix 系统资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin系统用户使用的应用程序。
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序。
usr/scr内核源代码默认的放置目录。
/varvar 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是 /bin/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

文件类型

参考

bash
drwxr-xr-x  2 root root 4.0K Apr 15 11:26 .pip
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
crw-rw----  1 root tty       7,  70 Oct  7 23:28 vcsu6
brw-rw----  1 root disk    254,   0 Oct  7 23:28 vda
lrwxrwxrwx   1 root root    7 Apr 15 11:19 bin -> usr/bin
参数说明
-普通文件;
ddirectory, 目录;
llink, 链接文档(link file);
bblock, 装置文件里面的可供储存的接口设备(可随机存取装置);
ccharacter, 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置);
ppipe, 管道文件;
ssocket, 套接字文件;

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

文件操作大杂烩

  • pwd:显示当前工作文件夹
  • $OLDPWD: 用于记录上次工作目录的变量, cd -命令就是访问了这个变量
  • stat: 查看文件的状态, stat a.txt
  • file: 查看文件的类型, file a.txt
  • touch: 不存在就创建文件,存在就刷新 mtime ctime atime 的时间, touch filename

切换cd

cd: 切换到当前用户主目录,等同于cd ~, cd 的作用是改变 shell 的工作目录

  • cd ..: 切换到父目录
  • cd -: 切换到上次的工作目录

复制 cp

cp: 实现文件或目录的复制 参考, 如果目标文件夹不存在就创建,存在就会复制为目标文件夹的子目录

语法:

  • cp [options] source dest
  • cp [options] source... directory
  • cp [options] -t directory source

选项(常用-av选项)

  • -r-R: 递归复制目录及其内容(用于复制目录)
  • -p: 保留文件的原始属性(如权限、所有者、时间戳等)
  • -d: --no-dereference --preserve=links 不复制原文件,只复制链接名
  • -a:归档模式,等同于 -dpR,保留所有文件属性和递归复制目录,常用于备份
  • -v:显示详细的复制过程(verbose)
  • -b: 目标存在,覆盖前先备份,形式为filename~,只保留最近的一个备份

移动+重命名mv

mv: 移动或重命名文件

语法:

  • mv [options] source dest
  • mv [options] source... directory

选项:

  • -i: 交互, 如果目标存在会询问
  • -f: 强制, 如果目标存在直接覆盖
  • -b: 备份, 如果目标存在,先备份后覆盖

reaname: 批量重命名文件 参考

语法:

  • rename [选项] '表达式' 文件...
    • 表达式:指定文件名转换规则的正则表达式或替换字符串
    • 文件:要重命名的目标文件,支持通配符(如 *.txt

示例:

  • rename 'conf' 'conf.bak' f*: 将所有 f 开头文件中的 conf 改为 conf.bak
  • rename '.bak' '' *.bak: 将所有有.bak 后缀的文件删除.bak 后缀

删除rm

rm: 删除一个文件或者目录

语法: rm [options] name...

参数说明
-i交互, 删除前逐一询问
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r递归, 将目录及以下之档案亦逐一删除
命令说明
rm -rf /删根操作, 目前有保护, 需要加--no-preserve-root参数, rm -rf --no-preserve-root /
rm -rf /*可以直接执行,效果和删根一样
rm -rf * .[^.]*保留当前文件夹, 删除当前文件夹内所有文件,包括隐藏文件, .[^.]*代表点开头的第二个不是点的(排除.和..)所有文件,即隐藏文件
rm -- -f使用--可以删除-开头的文件,或者使用绝对或相对路径删

shred : 安全删除文件(覆盖后删除)

语法: shred [选项]... 文件...

参数说明
-n N覆写次数(默认为 3 次)
-z最后用零覆写以隐藏 shred 操作
-u覆写后截断并删除文件
-v显示详细操作过程
-f必要时强制更改权限以允许写入
-x不要处理超过文件大小的块
  • shred -zvnu 5 filename: 对文件进行反复 5 次复写后删除

目录tree mkdir rmdir

tree以树状图显示目录

刚开始没有需要自己安装apt install tree 参考

语法: tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

参数说明
-d只显示目录
-Llevel, 指定显示 ide 层级
ppattern, <范本样式> 只显示符合范本样式的文件或目录名称

mkdir创建目录

语法: mkdir [-p] dirName

参数说明
-p确保目录名称存在,不存在的就建一个
-v显示详细信息
-mMODE, 创建目录时直接指定权限

rmdir删除空的目录

语法: rmdir [-p] dirName

参数说明
-p当子目录被删除后使它也成为空目录的话,则顺便一并删除
-v显示 i 详细信息

文件元数据和节点表结构