linux 命令行
### Linux命令行基础知识点 #### 一、命令行与终端 **命令行**是一种与计算机交互的方式,用户可以通过输入特定的命令来进行各种操作。在Linux系统中,命令行是进行系统管理和开发工作的重要工具。 **终端**(Terminal)是运行命令行程序的窗口,它允许用户在图形界面上启动命令行环境。Linux默认提供了6个纯命令行界面的虚拟控制台(virtual consoles),用户可以通过组合键`Ctrl` + `Alt` + `F1` ~ `F6`进行切换。例如,如果想从命令行界面切换回图形界面,可以按下`Ctrl` + `Alt` + `F7`。 #### 二、基本命令操作 **命令提示符** `$` 表示普通用户,`#` 表示root用户。这有助于区分当前执行命令的权限级别。 - **Tab键**: 用于自动补全命令或参数,提高命令行的使用效率。 - **Ctrl+C**: 用于强行终止正在运行的程序。 - **Ctrl+Z**: 将当前运行的程序放到后台,并可以通过输入`fg`命令将其重新拉回到前台继续执行。 - **Ctrl+A**: 移动光标到命令行的开头位置,等同于按`Home`键。 - **Ctrl+E**: 移动光标到命令行的结尾位置,等同于按`End`键。 #### 三、用户管理与权限切换 - 在终端中以`root`账户登录: 可以通过命令`sudsu`实现。 - 退出`root`账户: 输入`exit`即可。 #### 四、通配符 Linux中常用的通配符包括`*`、`?`、`[]`和`{}`等。这些通配符可以用于匹配文件名或者目录名,方便进行批量操作。例如,使用通配符批量创建5个文件: ``` touch file{1..5}.txt ``` #### 五、常用Shell命令详解 - **pwd (printing working directory)**: 显示当前工作目录。支持的参数有: - `-P`: 显示物理路径,为默认值。 - `-L`: 如果当前目录为符号链接,则显示链接的路径。 - **wc (word count)**: 用于统计文件的字节数、单词数、行数等。常用选项包括: - `-c`: 统计字节数。 - `-l`: 统计行数。 - `-w`: 统计单词数。 - `-m`: 统计字符数。 - `-L`: 显示最长行的长度。 示例: 统计`/bin`目录下的命令个数: ``` ls /bin | wc -l ``` - **cd (change directory)**: 改变当前工作目录。特殊的目录名包括: - `/`: 系统根目录。 - `.`: 当前目录。 - `..`: 上一级目录。 - `~`: 当前用户的家目录。 - `-`: 上一次所在的目录。 - **ls (list)**: 列出目录内容。常用的选项包括: - `-a`: 显示所有文件,包括隐藏文件。 - `-l`: 显示详细信息,包括权限、所有者、大小等。 - `-d`: 显示目录自身的信息而不是其内容。 - `-h`: 以人类易读的格式显示文件大小。 - `-t`: 按照修改时间排序。 示例: 以易读格式列出`/home`目录中所有以`m`开头的文件或目录的大小: ``` cd /home ls -lh m* ``` - **mkdir (make directory)**: 创建目录。支持的选项有: - `-m`: 设置权限。 - `-p`: 如果父目录不存在也一起创建。 - `-v`: 显示详细信息。 示例: 一次性创建多个目录并显示详细信息: ``` mkdir -vp temp/test ``` 创建权限为777的目录: ``` mkdir -m 777 temp ``` - **touch**: 用于创建新的空文件或更新文件的时间戳。支持的选项包括: - `-a`: 只更改访问时间。 - `-c`: 如果文件不存在则创建,否则不做任何操作。 - `-d <时间日期>`: 使用指定的时间。 - `-t <日期时间>`: 使用指定的时间。 - `-m`: 只更改修改时间。 示例: 创建一个新文件`ex2`: ``` touch ex2 ``` - **rm (remove)**: 删除文件或目录。常用的选项包括: - `-f`: 强制删除,即使文件不存在也不给出提示。 - `-i`: 交互式删除,删除前会询问确认。 - `-v`: 显示详细步骤。 - `-r`: 递归删除目录及其内容。 示例: 删除所有`.log`文件,在删除之前逐一询问: ``` rm -i *.log ``` 删除`/var/log/httpd/access`目录及其内容: ``` rm -rf /var/log/httpd/access ``` - **mv (move)**: 移动文件或更改文件名。支持的选项包括: - `-b`: 备份目标文件。 - `-f`: 强制覆盖目标文件。 - `-i`: 交互式覆盖,询问是否覆盖目标文件。 - `-u`: 更新目标文件,仅当源文件比目标文件新时才进行操作。 - `-t`: 指定目标目录,用于移动多个源文件到一个目录中。 示例: 将文件`a.txt`移动到`test1`目录下,并在覆盖前询问: ``` mv -i a.txt test1 ``` - **cp (copy)**: 复制文件或目录。该命令的功能非常强大,支持多种选项,可以用来复制单个或多个文件、目录,也可以设置复制过程中的权限和时间戳等细节。 以上命令涵盖了Linux命令行中常见的基础操作,掌握这些命令能够帮助用户高效地管理和操作Linux系统。