### Ubuntu 下 Linux 常用命令详解
#### 文件命名规则
在 Linux 系统中,文件命名具有一定的规范性,这些规则确保了文件系统的稳定性和兼容性。
1. **合法字符**:除 `/` 外的所有字符都是合法的。这意味着大多数可见字符(包括字母、数字和特殊符号)都可以用来命名文件。
2. **不推荐使用的字符**:虽然大多数字符是合法的,但为了减少混淆和潜在的问题,建议避免使用空格、制表符、退格符以及 `@#$&()-` 等特殊字符。这些字符可能在某些情况下导致问题,尤其是在脚本编写或远程文件传输过程中。
3. **避免以`.`开头**:以`.`开头的文件被视为隐藏文件。虽然这不是绝对禁止的,但在日常操作中应尽量避免,因为这些文件通常会被默认隐藏。
4. **大小写敏感**:Linux 是大小写敏感的。因此,“File.txt”、“FILE.TXT” 和 “file.txt” 在 Linux 中被视为三个不同的文件名。
#### 命令格式
Linux 命令通常遵循一定的格式:
- **命令-选项 参数**:命令后面跟着一个或多个选项,最后是命令作用的对象(文件或目录等)。
- **选项组合**:多个选项可以组合在一起使用,例如 `-al` 表示同时启用 `-a` 和 `-l` 选项。
- **特殊目录**:`.` 和 `..` 分别代表当前目录和父目录。
#### 文件处理命令
文件处理命令是 Linux 操作中最基本且最常用的命令之一,主要包括 `ls`、`cd`、`pwd`、`touch`、`mkdir`、`cp`、`mv`、`rm`、`cat`、`more`、`head`、`tail` 和 `ln`。
- **ls**:显示指定目录中的文件列表。
- **语法**:`ls [选项] [文件或目录]`
- **选项**:`-a` 显示所有文件,包括隐藏文件;`-l` 使用长格式列出文件详细信息;`-d` 查看目录属性而非其内容。
- **cd**:改变当前工作目录。
- **语法**:`cd [目录]`
- **范例**:`cd /` 切换到根目录;`cd ..` 返回上级目录。
- **pwd**:显示当前所在的工作目录。
- **语法**:`pwd`
- **范例**:`$ pwd` 返回 `/etc/rc5.d`。
- **touch**:创建新的空文件或更新现有文件的时间戳。
- **语法**:`touch [文件名]`
- **范例**:`$ touch newfile` 创建名为 `newfile` 的新文件。
- **mkdir**:创建一个或多个新目录。
- **语法**:`mkdir [目录名]`
- **范例**:`$ mkdir newdir` 创建名为 `newdir` 的新目录。
- **cp**:复制文件或目录。
- **语法**:`cp [选项] [源文件或目录] [目标位置]`
- **选项**:`-R` 递归复制目录及其所有子项。
- **范例**:`$ cp file1 file2 dir1` 将文件 `file1` 和 `file2` 复制到目录 `dir1`;`$ cp -R dir1 dir2` 将整个目录 `dir1` 及其内容复制到 `dir2`。
- **mv**:移动文件或重命名文件。
- **语法**:`mv [源文件或目录] [目标位置]`
- **范例**:`$ mv file1 file3` 将文件 `file1` 重命名为 `file3`;`$ mv file2 dir2` 将文件 `file2` 移动到目录 `dir2`。
- **rm**:删除文件或目录。
- **语法**:`rm [选项] [文件或目录]`
- **选项**:`-r` 递归删除目录。
- **范例**:`$ rm file3` 删除文件 `file3`;`$ rm -r dir1` 删除目录 `dir1` 及其内容。
- **cat**:显示文本文件的内容。
- **语法**:`cat [文件名]`
- **范例**:`$ cat /etc/issue` 显示 `/etc/issue` 文件的内容。
- **more**:分页显示文件内容。
- **语法**:`more [文件名]`
- **操作**:`空格` 或 `f` 显示下一页;`Enter` 显示下一行;`q` 或 `Q` 退出。
- **范例**:`$ more /etc/services` 分页显示 `/etc/services` 文件的内容。
- **head**:显示文件的前几行。
- **语法**:`head [-num] [文件名]`
- **选项**:`-num` 显示文件的前 `num` 行。
- **范例**:`$ head -20 /etc/services` 显示 `/etc/services` 文件的前 20 行。
- **tail**:显示文件的后几行。
- **语法**:`tail [-num] [文件名]`
- **选项**:`-num` 显示文件的后 `num` 行;`-f` 动态显示文件新增加的内容。
- **范例**:`$ tail -30 /etc/services` 显示 `/etc/services` 文件的最后 30 行。
- **ln**:创建硬链接或软链接。
- **语法**:`ln [选项] [源文件] [目标文件]`
- **选项**:`-s` 创建软链接。
- **范例**:`$ ln -s /etc/issue /issue.soft` 创建 `/etc/issue` 的软链接 `/issue.soft`。
以上命令涵盖了日常 Linux 操作中最为常见的需求,熟练掌握这些命令能够极大地提高工作效率,并为更高级别的 Linux 管理打下坚实的基础。