# shell (壳) 可以调用内核执行响应动作的用户指令或程序 命令格式:指令 [-选项/参数] [参数/-选项] ```c gec@Ubuntu:~$ //终端前缀含义: // gec表示当前用户名 // @分隔符,分隔用户名跟系统名 // Ubuntu表示当前系统的名称 // : 分隔符,分隔系统跟路径名 // ~ 表示当前所在路径名称,~表示当前用户的家目录(home),/表示当前是根目录 // $ 分隔符,分隔路径名和shell指令,$表示当前用户是普通用户,#表示当前用户是超级管理员用户 // shell命令能执行是因为系统支持shell命令解析,当前Ubuntu使用的bash解释器用于执行shell命令 ``` 路径:表示在Linux系统中文件所挂载的位置,一般分为两种形式存在即相对路径和绝对路径;相对路径是某个目录的路径相对于当前所在目录的路径通常以当前位置(.或..)为开头,绝对路径是从起始路径到某个目录的路径绝对路径的起始路径是根目录(/)。 shell命令的分隔符是空格( ):命令 [参数]/[-选项] [-选项]/[参数] ```bash lsb_release -a // 查看当前系统完整版本信息 ``` Linux帮助文档:man手册 ### **man** - 释义:manual,帮助手册 - 常见用法: ``` man ls ==> 查阅关于 ls 的帮助信息 man -f read ==> 列出所有有关 read 的帮助手册 man 2 read ==> 查阅第2册中 read 的帮助信息 ``` > 注意:man手册总共有9册,Ubuntu默认只安装了1册,其余的需要手工安装,指令如下: ```bash sudo apt install manpages sudo apt install manpages-dev sudo apt install manpages-posix sudo apt install manpages-posix-dev #安装中文版 sudo apt install manpages-zh ``` ![](images/WEBRESOURCE53cd85664954b3499b8c61202b4d5191image.png) 使用方法: ```bash man 手册编号 查询内容 man ls #从编号1~9中依次搜索ls并展示找到的第一个内容 #q Q ZZ 退出man手册 ``` # 1.基本命令 ### **ls** - 释义:last,列出目录中文件的信息 - 常见用法: ```bash ls ==> 列出当前目录的文件名 ls -l ==> 列出文件详情 ls -a ==> 列出文件名(含隐藏文件) ls -la ==> 列出文件详情(含隐藏文件) ls /etc ==> 列出指定目录 /etc 的文件名] ``` ![](images/WEBRESOURCEb77a86e6998ad4cd67f54764036f947fimage.png) ![](images/WEBRESOURCE40ecee3c45ed49cba08153c5e1314e1aimage.png) > 相对路径:从.或..开始 > 绝对路径:从/开始 ### **alias** - 释义:给一个命令取一个别名 - 常见用法: ```bash alias l='ls -l' ==> 给ls -l取个别名叫l ``` 在上述设置别名的语句中,等号两边不能有空格 ### **cd** - 释义:change director,切换当前路径 - 常见用法: ```bash cd /etc ==> 切换到 /etc cd ==> 切换到家目录 cd - ==> 切换到刚刚去过的地方,常用于两个路径来回切换 cd .. ==> 切换到上一级目录 cd ../.. ==> 切换到上上级目录 ``` ### **clear** - 释义:清屏 - 常见用法: ```bash clear ``` ### **date** - 释义:设置或查看日期时间 - 常见用法: ```bash date ==> 查看当前日期时间 date -s "2024/12/12" ==> 设置日期 ``` ### 「课堂练习1」 使用alias给clear命令取个别名,并写入配置文件~/.bashrc文件中。 ### **dpkg** - 释义:手工安装 deb 软件包 - 常见用法: ```bash dpkg -i x.deb ==> 安装x.deb软件包 ``` ![](images/WEBRESOURCE6a7bb9ddd1f4a4d59cfe5e6ad3365d47image.png) > 注意:Ubuntu是Debian系统的扩展和继承,因此Ubuntu中的软件安装包的格式为deb。 > 注意:一般而言,在Ubuntu中很少需要手工安装deb包。因为APT软件管理器会自动下载并安装所需的软件,并会自动处理所有依赖的文件。dpkg只用在一些特定的场合,比如非APT自动下载的安装包的安装、APT自动安装失败等。 ### **echo** - 释义:回显,即将字符打印到屏幕上 - 常见用法: ```bash echo abcd ==> 输出字符串"abcd" echo $PATH ==> 输出环境变量PATH的值 echo "追加到文件末尾的内容" >> 文件的[路径]名字 ``` ### **pwd** - 释义:present work directory,显示当前工作路径的绝对路径 - 常见用法: ```bash gec@ubuntu:~$ pwd ==> 显示当前路径,简单易用,童叟无欺 ``` ### **sort** - 释义:对文件内容按行排序并输出 - 常见用法: ```bash gec@ubuntu:~$ sort file.txt ==> 按默认ASCII码升序排列 gec@ubuntu:~$ sort file.txt -r ==> 按ASCII码降序排列 gec@ubuntu:~$ sort file.txt -n ==> 按数值升序排列 gec@ubuntu:~$ sort file.txt -nr ==> 按数值降序排列 ``` ### **uniq** - 释义:unique,去除文件中重复的相邻的行 - 常见用法: ``` gec@ubuntu:~$ uniq file.txt ``` ### **which** - 释义:查看命令所在路径 - 常见用法: ``` 1. 查看默认命令 ls 所在路径 gec@ubuntu:~$ which ls 2 查看命令 qmake 的所有可能路径 gec@ubuntu:~$ which -a qmake ``` ### **管道** - 概念:在shell命令中,可以使用一种特殊的符号来连接两个不同的命令,使得前面命令的输出,变成后面命令的输入或参数,这种特殊的符号叫做管道。 - 用法: - 将前面命令的输出,成为后面命令的输入:cmd1 | cmd2 - 将前面命令的输出,成为后面命令的参数:cmd1 |xargs cmd2 - 举例: ```bash 1. 将当前目录下的文件,按反序列出: gec@ubuntu:~$ ls | sort -r 2. 将当前目录下的文件,逐个删除掉: gec@ubuntu:~$ ls |xargs rm ``` - 注意: 1. 以上两个命令:sort和uniq,是典型的过滤器,它们就像一个安装在水管中间的过滤装置,将文件的数据一行一行地读出,并按照一定的规则过滤,然后输出过滤的结果。 1. 鉴于以上理解,可以将多个过滤器用管道连接起来,使之拥有更强大的功能,比如: ```bash gec@ubuntu:~$ sort file.txt | uniq ``` 这样出来的数据,就既进行了排序,又进行了去重。 ## 「课堂练习2」 根据管道的基本特性,设计一个命令组合,自动计算某个特定文件夹中的文件个数。 ```shell ls ~ | wc -w ``` # 2.文件管理命令 ## **1. 文件显示** ### **1.1 cat** - 释义:显示文本文件的内容 - 常见用法: ```bash gec@ubuntu:~$ cat file.txt ==> 显示文本文件内容 gec@ubuntu:~$ cat -n a.c ==> 显示文本文件内容(并显示行号) gec@ubuntu:~$ cat -A a.c ==> 显示文本文件内容(含不可见字符) ``` - 注意: 在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。 ### **1.2 head/tail** - 释义:查看指定文件的头部/尾部内容 - 常见用法: ```bash gec@ubuntu:~$ head file.txt gec@ubuntu:~$ head -n file.txt //n表示看前面的多少行 gec@ubuntu:~$ tail file.txt gec@ubuntu:~$ tail -n file.txt ``` ### **1.3 less/more** - 释义:以分页方式查看长文件(w上一页 d下一页 q退出) - 常见用法: ```bash gec@ubuntu:~$ less file.txt gec@ubuntu:~$ more file.txt ``` ### **1.4 od** - 释义:查看二进制文件 - 常见用法: ```bash gec@ubuntu:~$ od -x file ==> 以十六进制查看file gec@ubuntu:~$ od -o file ==> 以八进制查看file gec@ubuntu:~$ od -d file ==> 以十进制查看file gec@ubuntu:~$ od -b file ==> 以二进制查看file ``` ## **2. 文件复制** ### **2.1 cp** - 释义:copy,复制文件或者复制整个目录 - 常见用法: ```bash gec@ubuntu:~$ cp file1 file2 ==> 将文件file1复制为file2 gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/ ``` - 注意: 1. 如果file2或者dir2已存在,那么它们将会被覆盖 1. 目录名称 dir1/ 和 dir2/ 末尾的"/"是可选的,可写可不写,写上去只是为了强调 dir1 和 dir2 是目录,别无他意 ### **2.2 scp** - 释义:security copy,跨网络复制文件或者复制整个目录 - 常见用法: ```shell # 将远程主机x.x.x.x中的/home/gec/目录下的文件a.txt复制到当前目录下 scp user@x.x.x.x:/home/gec/a.txt . #将当前路径下的a.txt复制到远程主机x.x.x.x的/home/gec目录中 scp a.txt user@x.x.x.x:/home/gec/ ``` - 注意: 1. user是源文件所在主机的用户名。 1. x.x.x.x是源文件所在主机的IP地址。 1. 成功执行上述命令后,需要输入主机x.x.x.x中用户user的密码方可复制文件。 ## **3. 创建与删除** ### **3.1 touch** - 释义: 1. 在文件存在的情况下:将文件最近修改时间更新为当前时间 1. 在文件不存在的情况下:创建一个空文件 - 常见用法: ```bash #假设文件a.txt已存在 gec@ubuntu:~$ touch a.txt ==> 更新a.txt的最近修改时间到当前时间 #假设文件b.txt不存在 gec@ubuntu:~$ touch b.txt ==> 创建b.txt ``` ### **3.2 mkdir/rmdir** - 释义:make/remove directory,创建/删除空目录 - 常见用法: ```bash gec@ubuntu:~$ mkdir a ==> 创建空目录a gec@ubuntu:~$ mkdir b/c -p ==> 创建嵌套空目录b/c gec@ubuntu:~$ rmdir a ==> 删除空目录a ``` - 注意: ```bash gec@ubuntu:~$ rm -r b //删除目录b ``` ### **3.3 rm ** - 释义:remove,删除文件或目录 - 常见用法: ```bash gec@ubuntu:~$ rm file gec@ubuntu:~$ rm -r dir/ ``` ## **4. 查找** ### **4.1 find** - 释义:在指定目录中,按指定条件寻找文件 - 常见用法: ```bash gec@ubuntu:~$ find /usr -name "*.h" ==> 在/usr中查找以.h结尾的文件 gec@ubuntu:~$ find /tmp -type s ==> 在/tmp中查找类型为套接字的文件 ``` ### **4.2 grep** - 释义:在指定文件或目录中,按指定条件寻找字符串 - 常见用法: ```bash gec@ubuntu:~$ grep 'apple' /usr -rn ==> 在/usr中查找包含apple的文件 ``` ![](images/WEBRESOURCEcdae66fb6ebb479faa83c1a866792dcfimage.png) ## **5. 其它** ### **5.1 diff** - 释义:difference,检测两个文件或目录的差异信息 - 常见用法: ```bash gec@ubuntu:~$ diff file1 file2 ==> 检测文件file1和file2的差异信息 gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息 ``` ### **5.2 file** - 释义:检测指定文件的格式信息 - 常见用法: ```bash gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式 gec@ubuntu:~$ file a.out ==> 检测文件a.out的格式 ``` ### **5.3 mv** - 释义:move,移动文件,或给文件重命名 - 常见用法: ``` gec@ubuntu:~$ mv file dir/ gec@ubuntu:~$ mv file1 file2 ``` ![](images/WEBRESOURCE79e22617361347cebe8f87f732e64597image.png) ![](images/WEBRESOURCE129c76fba17d4613b8bdaa6ea7ce7445image.png) ### **5.4 wc** - 释义:计算字符数、单词数和行数 - 常见用法: ```bash gec@ubuntu:~$ wc ==> 计算从键盘输入的数据,以ctrl+d结束 gec@ubuntu:~$ wc file.txt ==> 计算文件file.txt的数据 -w统计单词 -l统计行数 -c统计字符个数 ``` ### 5.5ln Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 ### 语法 ```bash ln [参数][源文件或目录][目标文件或目录] ``` 其中参数的格式为 ``` [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] ``` ``` [--help] [--version] [--] ``` **命令功能** Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。 不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 **软链接** - 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 - 2.软链接可以 跨文件系统 ,硬链接不可以 - 3.软链接可以对一个不存在的文件名进行链接 - 4.软链接可以对目录进行链接 **硬链接** - 1.硬链接,以文件副本的形式存在。但不占用实际空间。 - 2.不允许给目录创建硬链接 - 3.硬链接只有在同一个文件系统中才能创建 #### 命令参数 **必要参数** - --backup[=CONTROL] 备份已存在的目标文件 - -b 类似 **--backup** ,但不接受参数 - -d 允许超级用户制作目录的硬链接 - -f 强制执行 - -i 交互模式,文件存在则提示用户是否覆盖 - -n 把符号链接视为一般目录 - -s 软链接(符号链接) - -v 显示详细的处理过程 **选择参数** - -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>" - -V "-V<备份方式>"或"--version-control=<备份方式>" - --help 显示帮助信息 - --version 显示版本信息 ### 实例 给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效: ``` ln -s log2013.log link2013 ``` 输出: ``` [root@localhost test]# ll -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log [root@localhost test]# ln -s log2013.log link2013 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log ``` 给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同 ``` ln log2013.log ln2013 ``` 输出: ``` [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log [root@localhost test]# ln log2013.log ln2013 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 2 root bin 61 11-13 06:03 ln2013 -rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log ``` # **3.压缩与解压命令** Linux下最常用的压缩包格式是: - gz - bz2 - zip - xz 其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。 ### **tar** - 释义:归档、释放与压缩、解压 - 常见用法: ```shell 第一,归档与释放: gec@ubuntu:~$ tar cf a.tar dir/* ==> 将目录dir中的所有文件归档成a.tar gec@ubuntu:~$ tar tf a.tar ==> 查看归档文件a.tar gec@ubuntu:~$ tar xf a.tar ==> 释放归档文件a.tar 第二,压缩与解压: gec@ubuntu:~$ tar czf a.tar.gz dir/* ==> 将目录dir中的所有文件归档并压缩为gz格式 gec@ubuntu:~$ tar tf a.tar.gz ==> 查看压缩文件a.tar.gz gec@ubuntu:~$ tar xzf a.tar.gz ==> 解压压缩文件a.tar.gz gec@ubuntu:~$ tar cjf a.tar.bz2 dir/* ==> 将目录dir中的所有文件归档并压缩为bz2格式 gec@ubuntu:~$ tar tf a.tar.bz2 ==> 查看压缩文件a.tar.bz2 gec@ubuntu:~$ tar xjf a.tar.bz2 ==> 解压压缩文件a.tar.bz2 第三,指定路径: gec@ubuntu:~$ tar -xf a.tar -C /tmp ==> 将文件释放到/tmp gec@ubuntu:~$ tar -xzf a.tar.gz -C /tmp ==> 将文件解压到/tmp ``` - 注意: 1. 归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小 1. 压缩会用到压缩算法,文件总体会变小。 ![](images/WEBRESOURCEb1d100d90da44dd290e5d466aa253247image.png) ### **xz** - 释义:压缩与解压 - 常见用法: ```bash gec@ubuntu:~$ xz a.tar ==> 将文件a.tar压缩成a.tar.xz gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压a.tar.xz ``` - 注意:xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包。 ![](images/WEBRESOURCE1512c7628ad24efb8661e34c9bc92ea4image.png) ### **zip** zip不是系统自带的命令,一般需要自己手工安装: ```bash gec@ubuntu:~$ sudo apt install zip ``` - 释义:压缩与解压 - 常见用法: ``` gec@ubuntu:~$ zip a.zip file dir/ ==> 将指定的文件和目录压缩成a.zip gec@ubuntu:~$ unzip a.zip ==> 解压a.zip ``` ![](images/WEBRESOURCE8e82e4fab8524848a42b96e8a236dbd1image.png) # **4.权限管理命令** ### **chmod** - 释义:修改文件权限 - 常见用法: ```shell gec@ubuntu:~$ chmod 644 file ==> 将文件权限改为644 rw-r--r-- 二进制 110 100 100 gec@ubuntu:~$ chmod 755 dir/ ==> 将目录权限改为755 rwxr-xr-x gec@ubuntu:~$ chmod +x file ==> 给file的所有用户添加执行权限x gec@ubuntu:~$ chmod -x file ==> 给file的所有用户删除执行权限x ``` 在Linux中,文件的权限一般用rwx来表示: - r 代表read,可读 - w 代表write,可写 - x 代表excute,可执行 对于某个文件而言,系统中的所有用户被分成三类,它们是文件的所有者,文件的所属组成员和其他人。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看: ```bash gec@ubuntu:~$ ls -l -rw-rw-r-- 1 gec gec 127 Oct 30 14:41 a.c -rwxrwxr-x 1 gec gec 8768 Oct 30 14:41 a.out ``` 在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用三个八进制数来对应这些权限位,如下表所示: ![](images/WEBRESOURCE407a5b70ff9f4e29bf2692184106bb98stickPicture.png) 如此,权限 644 就代表了 rw-r--r--,权限 755 就代表了 rwxr-xr-x。 ### **chown** - 释义:change owner,修改文件的所有者 - 常见用法: ```bash gec@ubuntu:~$ sudo chown jack a.txt ==> 将文件a.txt的所有者修改为jack ``` > 注意:修改文件所有者信息,须以管理员身份才能执行,因此在命令的前面要加sudo,并在随后执行是要输入管理员密码。另外要注意,输入管理员密码时系统默认是不回显的。 ### **chgrp** - 释义:change group,修改文件的所属组 - 常见用法: ``` gec@ubuntu:~$ sudo chgrp gec a.txt ==> 将文件a.txt的所属组修改为gec ``` ### **用户管理命令** ### **adduser/deluser** - 释义:添加/删除系统用户 - 常见用法: ```bash gec@ubuntu:~$ sudo adduser jack ==> 添加用户jack gec@ubuntu:~$ sudo deluser jack ==> 删除用户jack ``` > 提醒:gec@ubuntu:~$ 系统所有的用户清单统一放在 /etc/passwd 中gec@ubuntu:~$ 删除用户后,默认会残留用户的家目录,如果想要连带家目录也一锅端,可以使用这个命令:sudo deluser --remove-home jack > 创建的新用户需要与安装时建立的用户一样可以切换超级用户则需要在"/etc/sudoers"文件中添加新建的用户 > ### **addgroup/delgroup** - 释义:添加/删除系统用户组 - 常见用法: ```bash gec@ubuntu:~$ sudo addgroup gec ==> 添加用户组gec gec@ubuntu:~$ sudo delgroup gec ==> 删除用户组gec ``` > 提醒:系统所有的用户组清单统一放在 /etc/group 中 ### **whoami/id** - 释义:查看当前用户/相关ID - 常见用法: ```bash gec@ubuntu:~$ whoami ==> 显示当前用户名 gec@ubuntu:~$ id ==> 显示与当前用户相关的ID信息 ``` ### **usermod** - 释义:修改用户相关信息 - 常见用法: ```bash gec@ubuntu:~$ usermod jack -a -G gec ==> 将jack添加入用户组gec中 ``` ## 「课堂练习3」 根据已学知识和 man 帮助手册,完成以下动作: - 给系统增加一个新用户: Jack - 将 Jack 添加到管理员用户组 sudo 中 - 将 Jack 从管理员用户组 sudo 中剔除出去 ### su - 释义:登录普通用户 - 常见用法: ```shell gec@ubuntu:~$ su jack ==> 从gec用户登录到jack jack@ubuntu:/home/gec$ exit ==> 退出jack用户登录回到gec用户 ``` ### sudo - 释义:超级管理员用户切换 - 常见用法: ```shell gec@ubuntu:~$ sudo -s ==> 从gec用户登录到root #sudo su root@ubuntu:/home/gec# exit ==> 退出root用户登录回到gec用户 gec@ubuntu:~$ sudo apt install *** ==> 以超级管理员身份进行执行apt程序 ``` ### passwd - 释义:设置或修改密码 - 常见用法: ```shell gec@ubuntu:~$ sudo passwd jack ==> 修改jack的密码 ``` # **5.进程管理命令** ### **ps** - 释义:process state,获取进程当前状态 - 常见用法: ``` gec@ubuntu:~$ ps -ef gec@ubuntu:~$ ps aux ``` ### **top** - 释义:持续跟踪进程状态 - 常见用法: ``` gec@ubuntu:~$ top gec@ubuntu:~$ top -p PID ``` - 注意:top可以通过ctrl+左右箭头翻页 ### **kill** - 释义:向指定进程发送信号 - 常见用法: ``` gec@ubuntu:~$ kill -l ==> 查看系统所支持的所有的信号列表 gec@ubuntu:~$ kill -s SIGXXX PID ==> 向进程PID发送信号SIGXXX gec@ubuntu:~$ kill -n PID ==> 向进程PID发送第n号信号 ``` ## 「课堂练习4」 使用已学过的命令,关闭当前执行命令的终端。 # **6.系统管理命令** ### **df** - 释义:查看系统分区信息 - 常见用法: ```bash gec@ubuntu:~$ df -h 文件系统 总大小 已用 剩余 使用率% 挂载点 udev 916M 0 916M 0% /dev tmpfs 188M 11M 178M 6% /run /dev/vda1 50G 6.8G 40G 15% / tmpfs 937M 48K 936M 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 937M 0 937M 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 188M 0 188M 0% /run/user/500 ``` ### **du** - 释义:查看系统分区信息 - 常见用法: ```bash gec@ubuntu:~$ du gec@ubuntu:~$ du -sh ``` ### **fdisk** - 释义:查看/设置硬盘分区 - 常见用法: ```bash gec@ubuntu:~$ sudo fdisk -l ==> 查看当前系统已识别的分区。 ``` > 提醒:df只能查看已经识别且挂载了的分区,而fdisk可以查看未挂载的分区,实际上在系统识别出了分区之后,一般需要使用fdisk来查看分区的名称,然后才能使用mount来挂载,然后才能使用df查看到。 ![](images/WEBRESOURCEdca6cd5efadd4689831d682bf41cc7ccimage.png) ### **mount / umount** - 释义:挂载/卸载分区 - 常见用法: ```bash 挂载分区: gec@ubuntu:~$ mount /dev/sdb /mnt/u ==> 将分区sdb挂载到/mnt/u 卸载分区: gec@ubuntu:~$ umount /dev/sdb ==> 将分区sdb卸载 gec@ubuntu:~$ umount /mnt/u ==> 将挂载点/mnt/u卸载 ``` > 提醒:卸载分区名,或卸载挂载点两种方式是等价的。 # **7.网络命令** ### **hostname** - 释义:查看系统主机名 - 常见用法: ```bash gec@ubuntu:~$ hostname ubuntu gec@ubuntu:~$ ``` ### **ifconfig** - 释义:查看/设置系统IP地址 - 常见用法: ```bash # 查看当前活跃的网络接口 gec@ubuntu:~$ ifconfig # 查看所有的网络接口 gec@ubuntu:~$ ifconfig -a # 设置指定的网络接口的IP地址 gec@ubuntu:~$ ifconfig ens33 192.168.1.100 ``` 使用ifconfig设置的IP是临时的,如要使得设置效果永久有效,则需要修改系统的 /etc/networking/interfaces 文件,将IP地址设置进去。例如: ```bash gec@ubuntu:~$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto ens33 iface ens33 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 ``` ### **ifup / ifdown** - 释义:启停指定网络接口卡 - 常见用法: ``` gec@ubuntu:~$ sudo ifdown ens33 ==> 禁用网络接口卡ens33 gec@ubuntu:~$ sudo ifup ens33 ==> 启用网络接口卡ens33 ``` ### **ping** - 释义:向指定主机发送要求回应的ICMP数据包 - 常见用法: ``` gec@ubuntu:~$ ping 192.168.1.200 gec@ubuntu:~$ ping www.qq.com ``` > 提醒:一般而言,如果网络是畅通的,那么ping命令将会看到数据包返回的延迟时间,否则如果看不到延迟时间,并且对端的防火墙处于关闭状态,那么网络就是不通的。 ![](images/WEBRESOURCEed5787510918454ba2bb99c072576e41stickPicture.png) # 8.