以CentOS为例 ## 1、显示时间 `date` 查看当前系统时间、日历 ## 2、查看历史命令 `history [参数] [num]` 查看历史用过的命令 `[num]` 执行历史第`num`行命令 `-c`:清空历史命令记录 ## 3、清空消息 `clear` 清空当前会话的信息 ## 4、电源管理 `poweroff`:直接关机 `init 0`:直接关机 `half`:直接关机 `shutdown [参数] [time]`: `now`:立即执行 `-r`:重启 `-s`:num秒后关机 `-h`:关机 `-k`:查看关机计划 `-c`:取消关机计划 ## 5、启用网卡 `dhclient` 自动启用网卡并获取IP地址 ## 6、进入目录 `cd [dir]` 移动到`dir`目录,若以`/`开头则为绝对路径,反之则相对路径 `cd ..` 返回上级目录 ## 7、查看目录内容 `ls [参数]` 列出当前文件夹下所有内容 `-h`:友好的方式显示文件(文件有大小) `-l`:详细的方式显示文件 `-a`:显示所有文件包括隐藏文件 `-lha`:详细的友好方式显示所有文件 命令缩写: `ls -l` -> `ll` `ls -lh` -> `ll -h` 使用`ll`时,文件类型常在输出的第一列 #### 普通文件(Regular file) - **标识符:`-`** - 例:`-rw-r--r--` - 说明:存储普通数据(如文本、图片、二进制可执行文件等),最常见的文件类型。 #### 目录(Directory) - **标识符:`d`** - 例:`drwxr-xr-x` - 说明:用于组织文件和其他子目录的容器。 #### 符号链接(Symbolic link) - **标识符:`l`** - 例:`lrwxrwxrwx` - 说明:指向另一个文件或目录的快捷方式(类似Windows快捷方式)。 #### 块设备文件(Block device) - **标识符:`b`** - 例:`brw-rw----` - 说明:表示块设备(如硬盘、U盘),数据以“块”为单位传输。 #### 字符设备文件(Character device) - **标识符:`c`** - 例:`crw--w----` - 说明:表示字符设备(如键盘、串口),数据以“字符流”形式传输。 #### 命名管道(FIFO/pipe) - **标识符:`p`** - 例:`prw-------` - 说明:进程间通信的临时通道(先进先出队列)。 #### 套接字(Socket) - **标识符:`s`** - 例:`srwxr-xr-x` - 说明:用于网络或进程间通信的特殊文件。 #### 权限 分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。 可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。 ## 8、软件包安装 `yum` 包管理工具 `-y`:自动回答yes `-q`:静默模式 `-v`:详细模式 `-d`:设置调试级别 `-C`:完全使用系统缓存 `-R`:设置命令等待时间 `-e`:设置错误级别 `-c`:指定配置文件 `-t`:容忍错误 `-x`:排除指定包 `--enablerepo`:启用指定仓库 `--disablerepo`:禁用指定仓库 `install`:安装包 `remove`:删除包 `update`:更新包 `search`:搜索包 `info`:显示包信息 `list`:列出包 `clean`:清理缓存 `check-update`:检查更新 `groupinstall`:安装包组 `groupremove`:删除包组 `grouplist`:列出包组 `history`:查看历史记录 `undo`:撤销操作 `redo`:重做操作 ## 9、创建目录 `mkdir [参数] [name]` 创建`name`文件夹 `-m`:配置权限 `-p`:创建多级目录 `-v`:显示详细操作信息,输出创建的每个目录名称 `-Z`:设置目录的 SELinux 安全上下文(需 SELinux 启用状态) ## 10、挂载磁盘 `mount [-参数] [-参数 <参数值>...]` 挂载文件系统 `-t`:指定文件系统类型 `-o`:指定挂载选项 `-a`:挂载/etc/fstab中定义的所有文件系统 `-n`:不将挂载信息写入`/etc/mtab`文件 `-r`:以只读方式挂载 `-w`:以读写方式挂载 `-L`:通过卷标挂载 `-U`:通过UUID挂载 `-v`:显示详细挂载信息 `-f`:模拟挂载操作(不实际执行) ## 11、压缩包打包与解包 `tar [参数] [tarFile] [dir]` 打/解包`tarFile`文件 `-c`: 创建新的压缩文件。 `-x`: 解开已有的压缩文件。 `-t`: 列出压缩文件的内容。 `-f`: 指定压缩文件名。 `-v`: 显示详细的过程。 `-p`: 保留原始文件的权限和其他属性。 `-z`: 使用 gzip 压缩或解压压缩文件。 `-j`: 使用 bzip2 压缩或解压压缩文件。 `-J`: 使用 xz 压缩或解压压缩文件。 `-u`: 更新压缩文件,只添加那些比压缩中的副本新的文件。 `-a`: 自动选择压缩方式(根据归档文件扩展名 .gz, .bz2 或 .xz)。 `-C`: 指定解压文件的目标目录。 `-P` 或 `-p`: 使用绝对路径而不是相对路径。 ```bash ## 压缩命令 tar -cavf 压缩包名.tar.xx 压缩目录 ## 解压命令 tar -xavf 压缩包名.tar.xx ## 查看命令 tar -tf 压缩包名.tar.xx ``` ## 12、以超级管理员身份运行 `sudo [commond]` 以超级管理员身份(root)运行`commond`命令 `-u [用户名]`:以指定用户身份执行命令 `-l`:列出当前用户可执行的命令 `-i`:模拟目标用户的初始登录环境 `-s`:执行指定的shell `-v`:更新用户的时间戳,延长sudo凭证有效期 `-k`:使sudo凭证失效,下次需要重新输入密码 `-b`:在后台执行命令 `-E`:保留当前用户的环境变量 `-H`:将HOME环境变量设置为目标用户的家目录 如果想让普通用户使用`sudo`,是需要root预先设定,使用`visudo -f /etc/sudoers`编辑权限 在后面追加`[用户名] ALL=(ALL) ALL`,按`Esc`输入`:wq`保存 ## 13、显示当前路径 `pwd`显示当前目录的绝对路径 ## 14、删除目录 `rmdir [参数] [name]` 删除`name` 目录 `-p`:删除多重目录 `-v`:显示命令执行过程的详细信息 `--ignore-fail-on-non-empty`:忽略因目录非空导致的错误(静默跳过非空目录) ## 15、删除文件 `rm [参数] [name]` 删除`name`目录/文件 `f`:强制删除文件/目录,不提示确认且忽略不存在的文 `i` :删除前询问用户确认 `-r / -R`:递归删除目录及其子目录下的所有文件(包括子目录) `-v` :删除时显示文件名 ## 16、创建文件 `touch [参数] [文件]` 创建空文件/更新文件时间戳 `-a`:仅更新访问时间(access time) `-c`:不创建新文件(若文件不存在则不新建) `-d`:使用指定日期更新所有时间(代替当前时间) `-m`:仅更新修改时间(modify time) `-r`:使用参考文件的时间(复制参考文件的时间戳) `-t`:使用自定义时间戳更新(格式:`[[CC]YY]MMDDhhmm[.ss]`) ## 17、写入文件数据 `echo [参数] "[字符串]"` 输出文本到标准输出 `>[文件]`:将字符串覆盖写入到文件中 `>>[文件]`:将字符串追加写入到文件中 `-n [文件]`:将文件输出的同时打印行号 `-e`:启用反斜杠转义解释(将`\n`、`\t`等转义符解析为换行/制表符等) `-E`:禁用反斜杠转义解释(默认行为,转义符直接显示为文本) `--help`:显示帮助信息(不属于标准POSIX参数) `--version`:显示版本信息(不属于标准POSIX参数) ## 18、打印文件内容 `cat [参数] [文件]` 显示文件内容 `-A`:显示所有内容(等价于`-vET`组合),包括不可打印字符/行尾标记/制表符 `-b`:仅对**非空行**编号(行号左侧显示) `-e`:显示行尾标记`$`且显示非打印字符(等价于`-vE`) `-E`:在每行末尾显示`$`标记(可视化行尾) `-n`:为**所有行**编号(包括空行) `-s`:压缩重复空行(多个连续空行显示为单个空行) `-t`:显示制表符为`^I`且显示非打印字符(等价于`-vT`) `-T`:显示制表符`Tab`为`^I`字符 `-v`:显示非打印字符(控制字符/高字节字符等) ## 19、反序打印文件内容 `tac [参数] [文件]` 反向显示文件内容(行序反转) `-b`:将分隔符放置于记录前(默认放置在记录后) `-r`:将分隔符识别为正则表达式(非普通字符串) `-s`:使用指定字符串作为记录分隔符(默认为换行符) ## 20、分页打印文件内容 `more [参数] [文件]` 分页显示文件内容(支持前翻/搜索) 回车为下翻,B是上翻 `-d`:显示互动提示信息("Hit space to continue...")并禁用错误铃声 `-f`:强制处理特殊文件(二进制/设备文件) `-l`:忽略换页符(^L)的分页效果 `-p`:先清屏再显示文件内容(非滚动模式) `-c`:顶部向下重绘屏幕(非滚动模式) `-s`:合并连续空行为单空行 `-u`:禁用下划线特效 `-<数字>`:设置每屏显示行数(如`-10`每屏10行) `+<数字>`:从指定行开始显示(如`+100`从第100行开始) `+/<字符串>`:搜索指定字符串并从首次匹配位置显示 ## 21、从头显示几行文件内容 `head [参数] [文件]` 显示文件开头内容(默认前10行) `-c <字节数>`:显示前N字节内容(可加负号:`-c -100`表示排除最后100字节) `-n <行数>`:显示前N行内容(可加负号:`-n -20`表示显示除最后20行外的全部内容) `-q`:安静模式(不显示文件名标题/多文件时不显示分隔符) `-v`:详细模式(始终显示文件名标题) ## 22、从尾显示几行文件内容 `tail [参数] [文件]` 显示文件尾部内容(默认最后10行) `-c `:显示文件末尾的K字节(加`+`号表示从第K字节开始显示) `-f`:实时追踪文件尾部追加内容(常用于监控日志) `-n `:显示文件末尾的K行(加`+`号表示从第K行开始显示) `-q`:安静模式(多文件时不显示文件名标题) `-s `:设置追踪模式(`-f`)下的更新间隔秒数 `-v`:详细模式(始终显示文件名标题) ## 23、创建文件链接 硬链接:`ln [源文件] [链接名]` 软链接:`ln -s [目标文件/目录] [链接名]` 区别: | 特性 | 硬链接 | 软链接 | | ---------------- | ----------------------- | ------------------------ | | **本质** | 指向相同 inode 的目录项 | 独立文件(存储目标路径) | | **跨文件系统** | ❌ 不支持 | ✔️ 支持 | | **链接目录** | ❌ 不支持 | ✔️ 支持 | | **原文件删除后** | 仍可访问 | 链接失效(显示红色) | | **inode 号** | 与源文件相同 | 不同于源文件 | | **文件大小** | 与源文件相同 | 等于路径字符串长度 | | **权限标志** | 首字符`-` (普通文件) | 首字符`l` (链接文件) | | **示例命令** | `ln src link` | `ln -s src link` | ## 24、搜索命令所在目录 `which [参数] [命令名]` 查找命令的绝对路径(在`$PATH`环境变量中) `-a`:显示所有匹配路径(不仅第一个找到的可执行文件) `-n`:指定文件名长度,必须大于等于[长度] `-p`:与-n相同,但包含路径 `-w`:指定输出字段的宽度 `-V`:显示版本信息并退出 ## 25、搜索文件 `whereis [参数] [目录/文件]` 定位二进制文件、源代码文件和手册页文件的位置 `-b`:只搜索二进制文件 `-m`:只搜索手册页文件 `-s`:只搜索源代码文件 `-u`:搜索不寻常的条目 `-B [目录列表]`:在指定目录中搜索二进制文件 `-M [目录列表]`:在指定目录中搜索手册页文件 `-S [目录列表]`:在指定目录中搜索源代码文件 `-f`:终止目录列表并文件名开始 ## 26、快速搜索 安装第三方库`mlocate`,并更新数据库索引`updatedb` `locate [模式]` 快速查找文件 `-i`:忽略大小写 `-c`:只显示匹配数量 `-l [数量]`:限制显示结果数量 `-r`:使用正则表达式 `-e`:检查文件是否存在 `-q`:安静模式,不显示错误信息 ## 27、高级快速搜索 `find [路径] [匹配条件] "[文件/路径]"` 在目录树中查找文件 `-name`:按文件名查找 `-iname`:按文件名查找(不区分大小写) `-type`:按文件类型查找 `-mtime`:按文件修改时间查找 `-size`:按文件大小查找 `-user`:按文件属主查找 `-group`:按文件属组查找 `-perm`:按文件权限查找 `-exec`:对匹配的文件执行命令 `-delete`:删除匹配的文件 `-maxdepth`:指定最大搜索深度 `-mindepth`:指定最小搜索深度 `-empty`:查找空文件或目录 `-regex`:使用正则表达式匹配路径 `-print`:打印匹配文件的完整路径(默认操作) 四种命令的对比: | **命令** | **搜索范围** | **实时性** | **速度** | **主要用途** | | ------------- | -------------------------- | ---------- | -------- | ---------------------------------------------- | | **`which`** | `$PATH` 中的命令 | 实时 | 快 | 定位可执行命令文件路径 | | **`whereis`** | 预定义目录(二进制、文档) | 半实时 | 较快 | 定位命令及其关联文件(二进制、man等) | | **`locate`** | 全局文件系统(基于数据库) | 非实时 | **极快** | 快速按文件名搜索文件 | | **`find`** | 指定目录(递归扫描) | 实时 | 慢 | 高级搜索(名称、类型、时间、权限等)+ 执行操作 | ## 28、新增用户组 `groupadd [-g GID] [-r] [-f] [-o] [组名]` 创建新用户组 -> `/etc/group` `-g GID`:指定新用户组的组ID,从1000开始 `-r`:创建系统组(GID在SYS_GID_MIN到SYS_GID_MAX之间) `-f`:如果组已存在则成功退出 `-o`:允许使用重复的GID(非唯一) `-K KEY=VALUE`:覆盖/etc/login.defs中的默认值 `-p`:为新组设置加密密码 ## 29、删除用户组 `groupdel [组名]` 删除用户组 `-f`:强制删除组,即使该组是用户的主要组 `-h`:显示帮助信息并退出 `-R`:在chroot_dir目录中应用更改 `-P`:不更新/etc/login.defs中的LAST_GID范围 **注意**:要删除要删除用户组的前提是用户组为空。 ## 30、添加用户 `useradd [参数] [用户名]` 创建新用户账户 -> `/etc/passwd` `-c`:设置用户的注释信息 `-d`:设置用户的主目录 `-g [组名/GID]`:设置用户的主要组 `-G`:设置用户的附加组 `-m`:创建用户的主目录 `-s`:设置用户的登录shell `-u`:设置用户的UID `-r`:创建系统账户 `-e`:设置账户的过期日期 `-f`:设置密码过期后账户被禁用的天数 **注意**:若创建时未指定分组,则会用用户名新增一个用户组。 ## 31、删除用户 `userdel [-参数] [用户名]` 删除用户账户 `-f`:强制删除用户,即使用户已登录 `-r`:删除用户主目录和邮件池 `-Z`:删除用户的所有SELinux用户映射 ## 32、修改用户密码 在`/etc/passwd`文件中存储了用户的基本信息 在`/etc/shadow`文件中储存了用户的密码信息 `passwd [参数] [用户名]` 修改用户密码 `-d`:删除用户密码 `-l`:锁定用户账户 `-u`:解锁用户账户 `-e`:强制用户下次登录时修改密码 `-n`:设置密码最短使用天数 `-x`:设置密码最长使用天数 `-w`:设置密码过期前警告天数 `-i`:设置密码过期后宽限天数 `-S`:显示账户密码状态信息 `-k`:仅更新过期的认证令牌 `-a`:与-S一起使用,显示所有账户状态 `-stdin`:从标准输入读取密码 ## 33、修改用户信息 `chfn` 更改用户finger信息 `-f`:设置用户全名 `-o`:设置办公室房间号 `-p`:设置办公室电话号码 `-h`:设置家庭电话号码 `-u`:显示帮助信息 `-v`:显示版本信息 ## 34、查看用户信息 `finger [-lmsp] [用户名]` 显示用户信息 `-l`:以长格式显示用户信息 `-m`:匹配用户名时不区分大小写 `-p`:不显示`.plan`和`.project`文件内容 `-s`:以短格式显示用户信息 ## 35、切换用户 `su [-] [用户名]` 切换用户身份 `-`:完全模拟目标用户登录环境(包括环境变量和工作目录) `-c [命令]`:以目标用户身份执行指定命令后退出 `-s [shell路径]`:指定要使用的shell程序 `-m`:保持当前环境变量不变(与`-p`同义) `-g [组名]`:指定主组 `-l`:完全模拟登录环境(与`-`同义) ## 36、修改文件权限 `chmod [参数] [文件/目录]` **使用符号修改**: r(读)w(写)x(执行) +,-是在原本基础上修改,=是直接修改成指定权限 `u+/-/=[权限]`:指定用户名 `g+/-/=[权限]`:同组的用户 `o+/-/=[权限]`:除上所有用户 `a+/-/=[权限]`:以上所有的用户 **使用数字修改**: r为4,w为2,x为1,-为0 常用组合 ```bash 755: rwxr-xr-x 默认目录权限 644: rw-r--r-- 默认文件权限 700: rwx------ ``` 参数: `-c`:仅当权限确实改变时才显示操作信息 `-f`:不显示错误信息 `-v`:显示权限变更的详细信息 `-R`:递归处理目录及其子目录中的所有文件 ## 37、修改文件默认权限 `umask [-S] [模式]` 显示或设置文件创建时的权限掩码 `-S`:以符号形式显示当前umask值 `[模式]`:设置新的umask值(八进制数字) ## 38、更改文件所属组 `chgrp [-R] [-H] [-L] [-P] [-f] [-v] [--reference=<参考文件>] <新组> <文件>...` 更改文件所属组 `-R`:递归处理目录及其子目录中的所有文件 `-H`:如果命令行中指定了符号链接,则递归遍历符号链接指向的目录 `-L`:递归遍历遇到的每一个符号链接指向的目录 `-P`:不遍历任何符号链接(默认) `-f`:不显示错误信息 `-v`:显示指令执行过程 `--reference=<参考文件>`:使用参考文件的组而不是指定的组 `-c`:类似-v参数,但只在发生更改时报告 `--dereference`:影响符号链接所指向的文件,而不是符号链接本身 `--no-dereference`:影响符号链接本身,而不是所指向的文件 `--preserve-root`:不对根目录进行递归操作 `--no-preserve-root`:不对根目录进行特殊处理 ## 39、更改文件所有者 `chown [参数] [用户] [文件]` 更改文件或目录的所有者和/或所属组 `-c`:类似 verbose,但仅在更改时报告 `-f`:忽略大部分错误信息 `-h`:修复符号链接 `-v`:显示每个文件的详细处理信息 `-R`:递归处理所有子目录和文件 `--dereference`:影响符号链接所指向的对象 `--from=[当前所有者]:[当前所属组]`:仅当文件当前所有者和所属组匹配时才更改 `--no-dereference`:影响符号链接本身 `--preserve-root`:不对根目录进行递归操作 `--reference=[参考文件]`:使用参考文件的所有者和所属组 `-H`:如果命令行参数是符号链接,则遍历它 `-L`:遍历遇到的每个符号链接 `-P`:不遍历任何符号链接 ## 40、编辑工具 #### 基本命令 `vi [文件名]` 文本编辑器 `+[行号]`:从指定行开始编辑 `+/[模式]`:打开文件并定位到第一个匹配模式的位置 `-b`:以二进制模式编辑 `-c [命令]`:在打开文件后执行指定的ex命令 `-d`:差异模式(比较多个文件) `-e`:以ex模式启动(行编辑模式) `-l`:LISP模式 `-m`:修改只读模式 `-n`:不使用交换文件 `-o [数量]`:水平分割打开多个窗口 `-O [数量]`:垂直分割打开多个窗口 `-R`:只读模式 `-r [文件名]`:恢复崩溃的交换文件 `-s`:静默模式(批处理) `-u [vimrc]`:使用指定的vimrc文件 `-w [脚本文件]`:将所有输入命令记录到脚本文件 `-W [脚本文件]`:将所有输入命令追加到脚本文件 `-x`:加密模式 `-Z`:受限模式 `--version`:显示版本信息 `--help`:显示帮助信息 #### 修改模式 | **模式** | **进入方式** | **主要功能** | | -------------- | ------------------------------------------------------ | ---------------------------- | | **普通模式** | 按`Esc` 或 `Ctrl+[` | 导航文本、执行编辑命令 | | **插入模式** | `i`(光标前)`a`(光标后)`o`(新行) | 输入文本 | | **可视模式** | `v`(字符选择)`V`(行选择)`Ctrl+v`(块选择) | 选择文本区域 | | **命令行模式** | 按`:` | 执行保存、搜索、替换等命令 | | **替换模式** | `R`(进入替换)`r`(替换单个字符) | 覆盖已有文本 | | **Ex模式** | 按`Q` | 执行批量文本操作(多行命令) | #### 文件操作 | 命令 | 功能 | | --------------- | -------------------- | | `:e ~/.bashrc` | 打开新文件 | | `:w` | 保存文件 | | `:wq` 或 `:x` | 保存并退出 | | `:q!` | 强制退出(不保存) | | `:sp file.txt` | 水平分割窗口打开文件 | | `:vsp file.txt` | 垂直分割窗口打开文件 | #### 移动导航 | 命令 | 功能 | 命令 | 功能 | | ---- | ---------------- | -------- | ------------ | | `h` | 左移 | `Ctrl+f` | 下翻一页 | | `j` | 下移 | `Ctrl+b` | 上翻一页 | | `k` | 上移 | `gg` | 跳到文件开头 | | `l` | 右移 | `G` | 跳到文件末尾 | | `w` | 跳到下个单词开头 | `0` | 跳到行首 | | `b` | 跳到上个单词开头 | `$` | 跳到行尾 | | `}` | 跳到下一段 | `5G` | 跳到第5行 | #### 编辑操作 | 命令 | 功能 | | -------- | ---------------- | | `dd` | 删除整行 | | `dw` | 删除当前单词 | | `yy` | 复制当前行 | | `p` | 在光标后粘贴 | | `u` | 撤销 | | `Ctrl+r` | 重做 | | `ci"` | 修改双引号内内容 | | `>>` | 增加缩进 | ## 41、窗口管理器 `screen` 启动一个全屏窗口管理器,允许在一个物理终端上运行多个终端会话 `Ctrl + D`:关闭当前会话 `Ctrl + A + D`:临时退出当前会话 `-A`:将所有窗口调整为当前终端的大小 `-a`:强制包含所有功能 `-c [文件]`:指定配置文件而不是默认的`$HOME/.screenrc` `-d`:分离一个正在运行的screen会话 `-D`:分离并注销一个正在运行的screen会话 `-h [行数]`:设置回滚历史缓冲区的大小 `-l`:以登录模式运行 `-ls`:列出当前运行的screen会话 `-L`:开启日志记录 `-m`:忽略$STY环境变量,强制创建新的screen会话 `-r [会话]`:重新连接到一个分离的screen会话 `-R`:尝试重新连接,如果失败则创建新的screen会话 `-S [会话名]`:创建新会话时指定会话名称 `-t [标题]`:设置窗口的标题 `-v`:显示版本信息 `-wipe`:清除无法连接的screen会话 `-x`:连接到一个已经连接的screen会话(多显示模式) ## 42、安装RPM包 `rpm` RPM包管理器 `-i`:安装软件包 `-U`:升级软件包 `-e`:卸载软件包 `-q`:查询软件包 `-V`:验证软件包 `-a`:所有软件包 `-f`:查询文件所属软件包 `-p`:查询未安装的软件包文件 `-l`:列出软件包中的文件 `-h`:显示安装进度 `-v`:显示详细信息 `--nodeps`:不检查依赖关系 `--force`:强制操作 `--test`:测试模式(不实际执行) #### 查询一个包是否已安装 ```bash rpm -qa | grep '包名' ``` ## 43、搜索指定的字符 `grep [-参数] [-参数 <参数值>...]` 在文件中搜索指定的字符 `-i`:忽略大小写 `-v`:反向匹配,显示不包含模式的行 `-n`:显示匹配行的行号 `-c`:只显示匹配行的计数 `-r`:递归搜索目录 `-l`:只显示包含匹配的文件名 `-w`:匹配整个单词 `-e`:指定多个模式 `-A`:显示匹配行后的[行数]行 `-B`:显示匹配行前的[行数]行 `-C`:显示匹配行前后的[行数]行 `-E`:使用扩展正则表达式 `-F`:将模式视为固定字符串 `-q`:静默模式,不输出任何内容 `-s`:不显示错误信息 `-H`:显示文件名 `-h`:不显示文件名 ## 44、复制文件或目录 `cp [-参数] [-参数 <参数值>...]` 复制文件或目录 `-a`:归档模式,保留所有文件属性,等同于-dR --preserve=all `-b`:为已存在的目标文件创建备份 `-f`:强制覆盖已存在的目标文件而不提示 `-i`:在覆盖前提示确认 `-l`:创建硬链接而非复制文件 `-p`:保留原始文件的权限、所有者和时间戳 `-R`:递归复制目录及其内容 `-r`:递归复制目录,等同于-R `-s`:创建符号链接而非复制文件 `-u`:仅当源文件比目标文件新或目标文件不存在时复制 `-v`:显示详细的复制过程 `--preserve`:[属性列表] 保留指定的文件属性 `--backup`:[备份方式] 控制备份文件的创建方式 `--target-directory`:[目录] 将所有源文件复制到指定目录 `--parents`:在目标位置保留源文件的完整目录结构 Loading... 以CentOS为例 ## 1、显示时间 `date` 查看当前系统时间、日历 ## 2、查看历史命令 `history [参数] [num]` 查看历史用过的命令 `[num]` 执行历史第`num`行命令 `-c`:清空历史命令记录 ## 3、清空消息 `clear` 清空当前会话的信息 ## 4、电源管理 `poweroff`:直接关机 `init 0`:直接关机 `half`:直接关机 `shutdown [参数] [time]`: `now`:立即执行 `-r`:重启 `-s`:num秒后关机 `-h`:关机 `-k`:查看关机计划 `-c`:取消关机计划 ## 5、启用网卡 `dhclient` 自动启用网卡并获取IP地址 ## 6、进入目录 `cd [dir]` 移动到`dir`目录,若以`/`开头则为绝对路径,反之则相对路径 `cd ..` 返回上级目录 ## 7、查看目录内容 `ls [参数]` 列出当前文件夹下所有内容 `-h`:友好的方式显示文件(文件有大小) `-l`:详细的方式显示文件 `-a`:显示所有文件包括隐藏文件 `-lha`:详细的友好方式显示所有文件 命令缩写: `ls -l` -> `ll` `ls -lh` -> `ll -h` 使用`ll`时,文件类型常在输出的第一列 #### 普通文件(Regular file) - **标识符:`-`** - 例:`-rw-r--r--` - 说明:存储普通数据(如文本、图片、二进制可执行文件等),最常见的文件类型。 #### 目录(Directory) - **标识符:`d`** - 例:`drwxr-xr-x` - 说明:用于组织文件和其他子目录的容器。 #### 符号链接(Symbolic link) - **标识符:`l`** - 例:`lrwxrwxrwx` - 说明:指向另一个文件或目录的快捷方式(类似Windows快捷方式)。 #### 块设备文件(Block device) - **标识符:`b`** - 例:`brw-rw----` - 说明:表示块设备(如硬盘、U盘),数据以“块”为单位传输。 #### 字符设备文件(Character device) - **标识符:`c`** - 例:`crw--w----` - 说明:表示字符设备(如键盘、串口),数据以“字符流”形式传输。 #### 命名管道(FIFO/pipe) - **标识符:`p`** - 例:`prw-------` - 说明:进程间通信的临时通道(先进先出队列)。 #### 套接字(Socket) - **标识符:`s`** - 例:`srwxr-xr-x` - 说明:用于网络或进程间通信的特殊文件。 #### 权限 分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。 <img src="https://pic.soki.me/file/piclist/file-permissions-rwx.jpg" alt="img" style="zoom:50%;" style=""> 可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。 <img src="https://pic.soki.me/file/piclist/rwx-standard-unix-permission-bits.png" alt="img" style="zoom: 80%;" style=""> ## 8、软件包安装 `yum` 包管理工具 `-y`:自动回答yes `-q`:静默模式 `-v`:详细模式 `-d`:设置调试级别 `-C`:完全使用系统缓存 `-R`:设置命令等待时间 `-e`:设置错误级别 `-c`:指定配置文件 `-t`:容忍错误 `-x`:排除指定包 `--enablerepo`:启用指定仓库 `--disablerepo`:禁用指定仓库 `install`:安装包 `remove`:删除包 `update`:更新包 `search`:搜索包 `info`:显示包信息 `list`:列出包 `clean`:清理缓存 `check-update`:检查更新 `groupinstall`:安装包组 `groupremove`:删除包组 `grouplist`:列出包组 `history`:查看历史记录 `undo`:撤销操作 `redo`:重做操作 ## 9、创建目录 `mkdir [参数] [name]` 创建`name`文件夹 `-m`:配置权限 `-p`:创建多级目录 `-v`:显示详细操作信息,输出创建的每个目录名称 `-Z`:设置目录的 SELinux 安全上下文(需 SELinux 启用状态) ## 10、挂载磁盘 `mount [-参数] [-参数 <参数值>...]` 挂载文件系统 `-t`:指定文件系统类型 `-o`:指定挂载选项 `-a`:挂载/etc/fstab中定义的所有文件系统 `-n`:不将挂载信息写入`/etc/mtab`文件 `-r`:以只读方式挂载 `-w`:以读写方式挂载 `-L`:通过卷标挂载 `-U`:通过UUID挂载 `-v`:显示详细挂载信息 `-f`:模拟挂载操作(不实际执行) ## 11、压缩包打包与解包 `tar [参数] [tarFile] [dir]` 打/解包`tarFile`文件 `-c`: 创建新的压缩文件。 `-x`: 解开已有的压缩文件。 `-t`: 列出压缩文件的内容。 `-f`: 指定压缩文件名。 `-v`: 显示详细的过程。 `-p`: 保留原始文件的权限和其他属性。 `-z`: 使用 gzip 压缩或解压压缩文件。 `-j`: 使用 bzip2 压缩或解压压缩文件。 `-J`: 使用 xz 压缩或解压压缩文件。 `-u`: 更新压缩文件,只添加那些比压缩中的副本新的文件。 `-a`: 自动选择压缩方式(根据归档文件扩展名 .gz, .bz2 或 .xz)。 `-C`: 指定解压文件的目标目录。 `-P` 或 `-p`: 使用绝对路径而不是相对路径。 ```bash ## 压缩命令 tar -cavf 压缩包名.tar.xx 压缩目录 ## 解压命令 tar -xavf 压缩包名.tar.xx ## 查看命令 tar -tf 压缩包名.tar.xx ``` ## 12、以超级管理员身份运行 `sudo [commond]` 以超级管理员身份(root)运行`commond`命令 `-u [用户名]`:以指定用户身份执行命令 `-l`:列出当前用户可执行的命令 `-i`:模拟目标用户的初始登录环境 `-s`:执行指定的shell `-v`:更新用户的时间戳,延长sudo凭证有效期 `-k`:使sudo凭证失效,下次需要重新输入密码 `-b`:在后台执行命令 `-E`:保留当前用户的环境变量 `-H`:将HOME环境变量设置为目标用户的家目录 如果想让普通用户使用`sudo`,是需要root预先设定,使用`visudo -f /etc/sudoers`编辑权限 <img src="https://pic.soki.me/file/piclist/image-20251020151949725.png" alt="image-20251020151949725" style="zoom:50%;" style=""> 在后面追加`[用户名] ALL=(ALL) ALL`,按`Esc`输入`:wq`保存 ## 13、显示当前路径 `pwd`显示当前目录的绝对路径 ## 14、删除目录 `rmdir [参数] [name]` 删除`name` 目录 `-p`:删除多重目录 `-v`:显示命令执行过程的详细信息 `--ignore-fail-on-non-empty`:忽略因目录非空导致的错误(静默跳过非空目录) ## 15、删除文件 `rm [参数] [name]` 删除`name`目录/文件 `f`:强制删除文件/目录,不提示确认且忽略不存在的文 `i` :删除前询问用户确认 `-r / -R`:递归删除目录及其子目录下的所有文件(包括子目录) `-v` :删除时显示文件名 ## 16、创建文件 `touch [参数] [文件]` 创建空文件/更新文件时间戳 `-a`:仅更新访问时间(access time) `-c`:不创建新文件(若文件不存在则不新建) `-d`:使用指定日期更新所有时间(代替当前时间) `-m`:仅更新修改时间(modify time) `-r`:使用参考文件的时间(复制参考文件的时间戳) `-t`:使用自定义时间戳更新(格式:`[[CC]YY]MMDDhhmm[.ss]`) ## 17、写入文件数据 `echo [参数] "[字符串]"` 输出文本到标准输出 `>[文件]`:将字符串覆盖写入到文件中 `>>[文件]`:将字符串追加写入到文件中 `-n [文件]`:将文件输出的同时打印行号 `-e`:启用反斜杠转义解释(将`\n`、`\t`等转义符解析为换行/制表符等) `-E`:禁用反斜杠转义解释(默认行为,转义符直接显示为文本) `--help`:显示帮助信息(不属于标准POSIX参数) `--version`:显示版本信息(不属于标准POSIX参数) ## 18、打印文件内容 `cat [参数] [文件]` 显示文件内容 `-A`:显示所有内容(等价于`-vET`组合),包括不可打印字符/行尾标记/制表符 `-b`:仅对**非空行**编号(行号左侧显示) `-e`:显示行尾标记`$`且显示非打印字符(等价于`-vE`) `-E`:在每行末尾显示`$`标记(可视化行尾) `-n`:为**所有行**编号(包括空行) `-s`:压缩重复空行(多个连续空行显示为单个空行) `-t`:显示制表符为`^I`且显示非打印字符(等价于`-vT`) `-T`:显示制表符`Tab`为`^I`字符 `-v`:显示非打印字符(控制字符/高字节字符等) ## 19、反序打印文件内容 `tac [参数] [文件]` 反向显示文件内容(行序反转) `-b`:将分隔符放置于记录前(默认放置在记录后) `-r`:将分隔符识别为正则表达式(非普通字符串) `-s`:使用指定字符串作为记录分隔符(默认为换行符) ## 20、分页打印文件内容 `more [参数] [文件]` 分页显示文件内容(支持前翻/搜索) 回车为下翻,B是上翻 `-d`:显示互动提示信息("Hit space to continue...")并禁用错误铃声 `-f`:强制处理特殊文件(二进制/设备文件) `-l`:忽略换页符(^L)的分页效果 `-p`:先清屏再显示文件内容(非滚动模式) `-c`:顶部向下重绘屏幕(非滚动模式) `-s`:合并连续空行为单空行 `-u`:禁用下划线特效 `-<数字>`:设置每屏显示行数(如`-10`每屏10行) `+<数字>`:从指定行开始显示(如`+100`从第100行开始) `+/<字符串>`:搜索指定字符串并从首次匹配位置显示 ## 21、从头显示几行文件内容 `head [参数] [文件]` 显示文件开头内容(默认前10行) `-c <字节数>`:显示前N字节内容(可加负号:`-c -100`表示排除最后100字节) `-n <行数>`:显示前N行内容(可加负号:`-n -20`表示显示除最后20行外的全部内容) `-q`:安静模式(不显示文件名标题/多文件时不显示分隔符) `-v`:详细模式(始终显示文件名标题) ## 22、从尾显示几行文件内容 `tail [参数] [文件]` 显示文件尾部内容(默认最后10行) `-c <K>`:显示文件末尾的K字节(加`+`号表示从第K字节开始显示) `-f`:实时追踪文件尾部追加内容(常用于监控日志) `-n <K>`:显示文件末尾的K行(加`+`号表示从第K行开始显示) `-q`:安静模式(多文件时不显示文件名标题) `-s <N>`:设置追踪模式(`-f`)下的更新间隔秒数 `-v`:详细模式(始终显示文件名标题) ## 23、创建文件链接 硬链接:`ln [源文件] [链接名]` 软链接:`ln -s [目标文件/目录] [链接名]` 区别: | 特性 | 硬链接 | 软链接 | | ---------------- | ----------------------- | ------------------------ | | **本质** | 指向相同 inode 的目录项 | 独立文件(存储目标路径) | | **跨文件系统** | ❌ 不支持 | ✔️ 支持 | | **链接目录** | ❌ 不支持 | ✔️ 支持 | | **原文件删除后** | 仍可访问 | 链接失效(显示红色) | | **inode 号** | 与源文件相同 | 不同于源文件 | | **文件大小** | 与源文件相同 | 等于路径字符串长度 | | **权限标志** | 首字符`-` (普通文件) | 首字符`l` (链接文件) | | **示例命令** | `ln src link` | `ln -s src link` | ## 24、搜索命令所在目录 `which [参数] [命令名]` 查找命令的绝对路径(在`$PATH`环境变量中) `-a`:显示所有匹配路径(不仅第一个找到的可执行文件) `-n`:指定文件名长度,必须大于等于[长度] `-p`:与-n相同,但包含路径 `-w`:指定输出字段的宽度 `-V`:显示版本信息并退出 ## 25、搜索文件 `whereis [参数] [目录/文件]` 定位二进制文件、源代码文件和手册页文件的位置 `-b`:只搜索二进制文件 `-m`:只搜索手册页文件 `-s`:只搜索源代码文件 `-u`:搜索不寻常的条目 `-B [目录列表]`:在指定目录中搜索二进制文件 `-M [目录列表]`:在指定目录中搜索手册页文件 `-S [目录列表]`:在指定目录中搜索源代码文件 `-f`:终止目录列表并文件名开始 ## 26、快速搜索 安装第三方库`mlocate`,并更新数据库索引`updatedb` `locate [模式]` 快速查找文件 `-i`:忽略大小写 `-c`:只显示匹配数量 `-l [数量]`:限制显示结果数量 `-r`:使用正则表达式 `-e`:检查文件是否存在 `-q`:安静模式,不显示错误信息 ## 27、高级快速搜索 `find [路径] [匹配条件] "[文件/路径]"` 在目录树中查找文件 `-name`:按文件名查找 `-iname`:按文件名查找(不区分大小写) `-type`:按文件类型查找 `-mtime`:按文件修改时间查找 `-size`:按文件大小查找 `-user`:按文件属主查找 `-group`:按文件属组查找 `-perm`:按文件权限查找 `-exec`:对匹配的文件执行命令 `-delete`:删除匹配的文件 `-maxdepth`:指定最大搜索深度 `-mindepth`:指定最小搜索深度 `-empty`:查找空文件或目录 `-regex`:使用正则表达式匹配路径 `-print`:打印匹配文件的完整路径(默认操作) 四种命令的对比: | **命令** | **搜索范围** | **实时性** | **速度** | **主要用途** | | ------------- | -------------------------- | ---------- | -------- | ---------------------------------------------- | | **`which`** | `$PATH` 中的命令 | 实时 | 快 | 定位可执行命令文件路径 | | **`whereis`** | 预定义目录(二进制、文档) | 半实时 | 较快 | 定位命令及其关联文件(二进制、man等) | | **`locate`** | 全局文件系统(基于数据库) | 非实时 | **极快** | 快速按文件名搜索文件 | | **`find`** | 指定目录(递归扫描) | 实时 | 慢 | 高级搜索(名称、类型、时间、权限等)+ 执行操作 | ## 28、新增用户组 `groupadd [-g GID] [-r] [-f] [-o] [组名]` 创建新用户组 -> `/etc/group` `-g GID`:指定新用户组的组ID,从1000开始 `-r`:创建系统组(GID在SYS_GID_MIN到SYS_GID_MAX之间) `-f`:如果组已存在则成功退出 `-o`:允许使用重复的GID(非唯一) `-K KEY=VALUE`:覆盖/etc/login.defs中的默认值 `-p`:为新组设置加密密码 ## 29、删除用户组 `groupdel [组名]` 删除用户组 `-f`:强制删除组,即使该组是用户的主要组 `-h`:显示帮助信息并退出 `-R`:在chroot_dir目录中应用更改 `-P`:不更新/etc/login.defs中的LAST_GID范围 **注意**:要删除要删除用户组的前提是用户组为空。 ## 30、添加用户 `useradd [参数] [用户名]` 创建新用户账户 -> `/etc/passwd` `-c`:设置用户的注释信息 `-d`:设置用户的主目录 `-g [组名/GID]`:设置用户的主要组 `-G`:设置用户的附加组 `-m`:创建用户的主目录 `-s`:设置用户的登录shell `-u`:设置用户的UID `-r`:创建系统账户 `-e`:设置账户的过期日期 `-f`:设置密码过期后账户被禁用的天数 **注意**:若创建时未指定分组,则会用用户名新增一个用户组。 ## 31、删除用户 `userdel [-参数] [用户名]` 删除用户账户 `-f`:强制删除用户,即使用户已登录 `-r`:删除用户主目录和邮件池 `-Z`:删除用户的所有SELinux用户映射 ## 32、修改用户密码 在`/etc/passwd`文件中存储了用户的基本信息 在`/etc/shadow`文件中储存了用户的密码信息 `passwd [参数] [用户名]` 修改用户密码 `-d`:删除用户密码 `-l`:锁定用户账户 `-u`:解锁用户账户 `-e`:强制用户下次登录时修改密码 `-n`:设置密码最短使用天数 `-x`:设置密码最长使用天数 `-w`:设置密码过期前警告天数 `-i`:设置密码过期后宽限天数 `-S`:显示账户密码状态信息 `-k`:仅更新过期的认证令牌 `-a`:与-S一起使用,显示所有账户状态 `-stdin`:从标准输入读取密码 ## 33、修改用户信息 `chfn` 更改用户finger信息 `-f`:设置用户全名 `-o`:设置办公室房间号 `-p`:设置办公室电话号码 `-h`:设置家庭电话号码 `-u`:显示帮助信息 `-v`:显示版本信息 ## 34、查看用户信息 `finger [-lmsp] [用户名]` 显示用户信息 `-l`:以长格式显示用户信息 `-m`:匹配用户名时不区分大小写 `-p`:不显示`.plan`和`.project`文件内容 `-s`:以短格式显示用户信息 ## 35、切换用户 `su [-] [用户名]` 切换用户身份 `-`:完全模拟目标用户登录环境(包括环境变量和工作目录) `-c [命令]`:以目标用户身份执行指定命令后退出 `-s [shell路径]`:指定要使用的shell程序 `-m`:保持当前环境变量不变(与`-p`同义) `-g [组名]`:指定主组 `-l`:完全模拟登录环境(与`-`同义) ## 36、修改文件权限 `chmod [参数] [文件/目录]` **使用符号修改**: r(读)w(写)x(执行) +,-是在原本基础上修改,=是直接修改成指定权限 `u+/-/=[权限]`:指定用户名 `g+/-/=[权限]`:同组的用户 `o+/-/=[权限]`:除上所有用户 `a+/-/=[权限]`:以上所有的用户 **使用数字修改**: r为4,w为2,x为1,-为0 <img src="https://pic.soki.me/file/piclist/rwx-standard-unix-permission-bits.png" alt="img" style="zoom: 80%;" style=""> 常用组合 ```bash 755: rwxr-xr-x 默认目录权限 644: rw-r--r-- 默认文件权限 700: rwx------ ``` 参数: `-c`:仅当权限确实改变时才显示操作信息 `-f`:不显示错误信息 `-v`:显示权限变更的详细信息 `-R`:递归处理目录及其子目录中的所有文件 ## 37、修改文件默认权限 `umask [-S] [模式]` 显示或设置文件创建时的权限掩码 `-S`:以符号形式显示当前umask值 `[模式]`:设置新的umask值(八进制数字) ## 38、更改文件所属组 `chgrp [-R] [-H] [-L] [-P] [-f] [-v] [--reference=<参考文件>] <新组> <文件>...` 更改文件所属组 `-R`:递归处理目录及其子目录中的所有文件 `-H`:如果命令行中指定了符号链接,则递归遍历符号链接指向的目录 `-L`:递归遍历遇到的每一个符号链接指向的目录 `-P`:不遍历任何符号链接(默认) `-f`:不显示错误信息 `-v`:显示指令执行过程 `--reference=<参考文件>`:使用参考文件的组而不是指定的组 `-c`:类似-v参数,但只在发生更改时报告 `--dereference`:影响符号链接所指向的文件,而不是符号链接本身 `--no-dereference`:影响符号链接本身,而不是所指向的文件 `--preserve-root`:不对根目录进行递归操作 `--no-preserve-root`:不对根目录进行特殊处理 ## 39、更改文件所有者 `chown [参数] [用户] [文件]` 更改文件或目录的所有者和/或所属组 `-c`:类似 verbose,但仅在更改时报告 `-f`:忽略大部分错误信息 `-h`:修复符号链接 `-v`:显示每个文件的详细处理信息 `-R`:递归处理所有子目录和文件 `--dereference`:影响符号链接所指向的对象 `--from=[当前所有者]:[当前所属组]`:仅当文件当前所有者和所属组匹配时才更改 `--no-dereference`:影响符号链接本身 `--preserve-root`:不对根目录进行递归操作 `--reference=[参考文件]`:使用参考文件的所有者和所属组 `-H`:如果命令行参数是符号链接,则遍历它 `-L`:遍历遇到的每个符号链接 `-P`:不遍历任何符号链接 ## 40、编辑工具 #### 基本命令 `vi [文件名]` 文本编辑器 `+[行号]`:从指定行开始编辑 `+/[模式]`:打开文件并定位到第一个匹配模式的位置 `-b`:以二进制模式编辑 `-c [命令]`:在打开文件后执行指定的ex命令 `-d`:差异模式(比较多个文件) `-e`:以ex模式启动(行编辑模式) `-l`:LISP模式 `-m`:修改只读模式 `-n`:不使用交换文件 `-o [数量]`:水平分割打开多个窗口 `-O [数量]`:垂直分割打开多个窗口 `-R`:只读模式 `-r [文件名]`:恢复崩溃的交换文件 `-s`:静默模式(批处理) `-u [vimrc]`:使用指定的vimrc文件 `-w [脚本文件]`:将所有输入命令记录到脚本文件 `-W [脚本文件]`:将所有输入命令追加到脚本文件 `-x`:加密模式 `-Z`:受限模式 `--version`:显示版本信息 `--help`:显示帮助信息 #### 修改模式 | **模式** | **进入方式** | **主要功能** | | -------------- | ------------------------------------------------------ | ---------------------------- | | **普通模式** | 按`Esc` 或 `Ctrl+[` | 导航文本、执行编辑命令 | | **插入模式** | `i`(光标前)<br>`a`(光标后)<br>`o`(新行) | 输入文本 | | **可视模式** | `v`(字符选择)<br>`V`(行选择)<br>`Ctrl+v`(块选择) | 选择文本区域 | | **命令行模式** | 按`:` | 执行保存、搜索、替换等命令 | | **替换模式** | `R`(进入替换)<br>`r`(替换单个字符) | 覆盖已有文本 | | **Ex模式** | 按`Q` | 执行批量文本操作(多行命令) | #### 文件操作 | 命令 | 功能 | | --------------- | -------------------- | | `:e ~/.bashrc` | 打开新文件 | | `:w` | 保存文件 | | `:wq` 或 `:x` | 保存并退出 | | `:q!` | 强制退出(不保存) | | `:sp file.txt` | 水平分割窗口打开文件 | | `:vsp file.txt` | 垂直分割窗口打开文件 | #### 移动导航 | 命令 | 功能 | 命令 | 功能 | | ---- | ---------------- | -------- | ------------ | | `h` | 左移 | `Ctrl+f` | 下翻一页 | | `j` | 下移 | `Ctrl+b` | 上翻一页 | | `k` | 上移 | `gg` | 跳到文件开头 | | `l` | 右移 | `G` | 跳到文件末尾 | | `w` | 跳到下个单词开头 | `0` | 跳到行首 | | `b` | 跳到上个单词开头 | `$` | 跳到行尾 | | `}` | 跳到下一段 | `5G` | 跳到第5行 | #### 编辑操作 | 命令 | 功能 | | -------- | ---------------- | | `dd` | 删除整行 | | `dw` | 删除当前单词 | | `yy` | 复制当前行 | | `p` | 在光标后粘贴 | | `u` | 撤销 | | `Ctrl+r` | 重做 | | `ci"` | 修改双引号内内容 | | `>>` | 增加缩进 | ## 41、窗口管理器 `screen` 启动一个全屏窗口管理器,允许在一个物理终端上运行多个终端会话 `Ctrl + D`:关闭当前会话 `Ctrl + A + D`:临时退出当前会话 `-A`:将所有窗口调整为当前终端的大小 `-a`:强制包含所有功能 `-c [文件]`:指定配置文件而不是默认的`$HOME/.screenrc` `-d`:分离一个正在运行的screen会话 `-D`:分离并注销一个正在运行的screen会话 `-h [行数]`:设置回滚历史缓冲区的大小 `-l`:以登录模式运行 `-ls`:列出当前运行的screen会话 `-L`:开启日志记录 `-m`:忽略$STY环境变量,强制创建新的screen会话 `-r [会话]`:重新连接到一个分离的screen会话 `-R`:尝试重新连接,如果失败则创建新的screen会话 `-S [会话名]`:创建新会话时指定会话名称 `-t [标题]`:设置窗口的标题 `-v`:显示版本信息 `-wipe`:清除无法连接的screen会话 `-x`:连接到一个已经连接的screen会话(多显示模式) ## 42、安装RPM包 `rpm` RPM包管理器 `-i`:安装软件包 `-U`:升级软件包 `-e`:卸载软件包 `-q`:查询软件包 `-V`:验证软件包 `-a`:所有软件包 `-f`:查询文件所属软件包 `-p`:查询未安装的软件包文件 `-l`:列出软件包中的文件 `-h`:显示安装进度 `-v`:显示详细信息 `--nodeps`:不检查依赖关系 `--force`:强制操作 `--test`:测试模式(不实际执行) #### 查询一个包是否已安装 ```bash rpm -qa | grep '包名' ``` ## 43、搜索指定的字符 `grep [-参数] [-参数 <参数值>...]` 在文件中搜索指定的字符 `-i`:忽略大小写 `-v`:反向匹配,显示不包含模式的行 `-n`:显示匹配行的行号 `-c`:只显示匹配行的计数 `-r`:递归搜索目录 `-l`:只显示包含匹配的文件名 `-w`:匹配整个单词 `-e`:指定多个模式 `-A`:显示匹配行后的[行数]行 `-B`:显示匹配行前的[行数]行 `-C`:显示匹配行前后的[行数]行 `-E`:使用扩展正则表达式 `-F`:将模式视为固定字符串 `-q`:静默模式,不输出任何内容 `-s`:不显示错误信息 `-H`:显示文件名 `-h`:不显示文件名 ## 44、复制文件或目录 `cp [-参数] [-参数 <参数值>...]` 复制文件或目录 `-a`:归档模式,保留所有文件属性,等同于-dR --preserve=all `-b`:为已存在的目标文件创建备份 `-f`:强制覆盖已存在的目标文件而不提示 `-i`:在覆盖前提示确认 `-l`:创建硬链接而非复制文件 `-p`:保留原始文件的权限、所有者和时间戳 `-R`:递归复制目录及其内容 `-r`:递归复制目录,等同于-R `-s`:创建符号链接而非复制文件 `-u`:仅当源文件比目标文件新或目标文件不存在时复制 `-v`:显示详细的复制过程 `--preserve`:[属性列表] 保留指定的文件属性 `--backup`:[备份方式] 控制备份文件的创建方式 `--target-directory`:[目录] 将所有源文件复制到指定目录 `--parents`:在目标位置保留源文件的完整目录结构 最后修改:2025 年 10 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 👆请简单粗暴地爱我。