--- title: Linux基础命令 date: 2021-04-07 16:04:58 author: 文永达 top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/00E0F0ED-9F1C-407A-9AA6-545649D919F4.jpeg tags: [Linux, Shell, 命令行] categories: [操作系统, Linux] --- # Linux基础命令 ## 简介 > 在 Linux 系统中,没有盘符的概念,只有一个盘,以 `/` 为根目录。 > Linux 没有图形化界面,通过指令操作。 > Linux 指令可以传递参数。 > 在 Linux 系统下,万事万物皆文件。 --- ## Linux文件结构 Linux 系统主要目录结构如下: | 目录 | 说明 | |-----|------| | `/bin` | 存放二进制可执行文件(重点) | | `/sbin` | 存放二进制可执行文件,只有 root 用户才能访问 | | `/etc` | 存放系统配置文件(重点) | | `/usr` | 存放共享的系统资源 | | `/home` | 普通用户的家目录(重点) | | `/root` | root 用户的家目录 | | `/dev` | 存放设备文件 | --- ## 快捷键 | 快捷键 | 功能 | |-------|------| | `Ctrl + u` | 删除命令行开始至光标处 | | `Ctrl + k` | 删除光标至命令行结尾 | | `Ctrl + a` | 光标移到最前 | | `Ctrl + e` | 光标移到最后 | | `Tab` | 自动补全 | | `↑` / `↓` | 浏览历史指令 | --- ## 目录操作 ### 查看IP地址 ```shell ip addr ip a ``` ### 清屏 ```shell clear ``` ### 查看当前目录 ```shell pwd ``` ### 跳转目录(cd) **基本语法**: ```shell cd [目录路径] ``` **常用示例**: ```shell # 跳转指定目录(root目录下的www) cd /root/www # 返回跳转前的目录 cd - # 跳转上一级目录 cd ../ # 跳转根目录 cd / # 跳转root目录 cd ~ # 跳转至主目录(后面跟个空格即可) cd ``` --- ## 文件操作 ### 列出目录内容(ls) **基本语法**: ```shell ls [选项] [目录] ``` **常用参数**: | 参数 | 说明 | |-----|------| | `-l` | 以长格式显示文件详情 | | `-a` | 显示所有文件(包括隐藏文件) | | `-h` | 以人类可读的方式显示文件大小 | | `-t` | 按修改时间排序 | | `-R` | 递归显示子目录 | **常用示例**: ```shell # 列出当前目录下的所有文件及目录(不含隐藏的) ls # 以长格式显示当前目录中的文件和目录 ls -l # 显示当前目录中的所有文件(包括隐藏文件) ls -a # 以人类可读的方式显示文件大小 ls -lh # 按修改时间排序 ls -t # 递归显示子目录 ls -R # 显示指定文件的详细信息 ls -l /etc/passwd ``` ### 创建目录(mkdir) **基本语法**: ```shell mkdir [选项] 目录名 ``` **常用参数**: | 参数 | 说明 | |-----|------| | `-p` | 创建多级目录 | **常用示例**: ```shell # 创建单级目录 mkdir test # 创建多级目录 mkdir -p /root/test/subdir ``` ### 复制文件(cp) **基本语法**: ```shell cp [选项] 源文件 目标路径 ``` **常用参数**: | 参数 | 说明 | |-----|------| | `-r` | 递归复制目录 | **常用示例**: ```shell # 复制文件到指定目录 cp aa.txt init/ # 复制目录及其内容到另一个目录 cp -r init spring/ ``` ### 移动/重命名文件(mv) **基本语法**: ```shell mv [选项] 源文件 目标路径 ``` **常用参数**: | 参数 | 说明 | |-----|------| | `-f` | 覆盖前不提示 | | `-r` | 强行覆盖(慎用) | **常用示例**: ```shell # 重命名文件 mv aa.txt xiaoqiang.txt # 移动文件到目录 mv bb.txt spring/ # 覆盖前不提示 mv -f spring aaaaa ``` ### 删除文件(rm) **基本语法**: ```shell rm [选项] 文件/目录 ``` **常用参数**: | 参数 | 说明 | |-----|------| | `-f` | 强制删除,无确认提示 | | `-r` | 递归删除目录 | > ⚠️ **注意**:`rm -rf` 命令非常危险,请谨慎使用! **常用示例**: ```shell # 删除文件 rm xiaoqiang.txt # 强制删除文件 rm -f spring.xml # 递归删除目录 rm -r init # 递归强制删除(慎用!) rm -rf bbbbb # 删除空目录 rmdir aa # 删除当前目录所有文件(慎用!) rm -rf * ``` --- ## 文件详情说明 执行 `ls -l` 后,文件详情格式如下: ``` drwxr-xr-x 2 root root 6 Apr 11 2018 home ``` | 位置 | 含义 | |-----|------| | 第1位 | `d` 表示目录,`-` 表示文件 | | 第2-4位 | 文件创建者的权限(r=读,w=写,x=执行) | | 第5-7位 | 同组用户的权限 | | 第8-10位 | 其他用户的权限 | | 第11位 | 链接数 | | 创建者 | 文件创建者 | | 所属组 | 创建者所在的组 | | 大小 | 文件占用空间(字节) | | 日期 | 最后修改时间 | | 名称 | 文件名或目录名 | --- ## 输出操作 ### 打印输出(echo) ```shell # 打印一句话 echo "Hello World" # 向文件写入内容(会追加并换行) echo "内容" >> file.txt ``` ### 退出操作 ```shell # 退出几乎所有操作 Ctrl + c ```