Files
BlogPosts/Collection/YoudaoyunNotes/01Linux基础/06_常用Shell命令.md

1011 lines
24 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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创建硬链接ln2013log2013.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.