《Linux就该这么学》第二章
条评论新手必须掌握的 Linux 命令
Shell
- 主流 Linux 默认终端是 Bash,优点如下:
- 命令执行历史;
- 命令或参数 Tab 补全;
- 批处理脚本;
- 环境变量功能。
帮助命令
标准格式:
命令名称 [命令参数] [命令对象]
- 长格式:
man --help
- 短格式:
man -h
- 长格式:
查看命令帮助
man 命令
,如man ping
、man man
常用工作命令
echo
格式:
echo [字符串 | $变量]
作用:输入信息
1
2
3echo string
echo $SHELL
echo "content" >> file
reboot
格式:
reboot
作用:重启系统
1
2# 涉及硬件管理权限,需要 root 权限
reboot
poweroff
格式:
poweroff
作用:关闭系统
1
2# 涉及硬件管理权限,需要 root 权限
poweroff
date
- 格式:
date [选项] [+指定的格式]
- 作用:查看时间
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | %t | Tab |
2 | %H | 24时制 |
3 | %I | 12时制 |
4 | %M | 分钟 |
5 | %S | 秒 |
6 | %j | 今年中第几天 |
1 | # 2018年 9月 4日 星期二 22时28分33秒 CST |
wget
- 格式:
wget [参数] 下载地址
- 作用:下载网络文件
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -b | 后台下载模式 |
2 | -P | 下载到指定目录 |
3 | -t | 最大重试次数 |
4 | -c | 断点续传 |
5 | -p | 下载页面所有资源 |
6 | -r | 递归下载 |
1 | wget http://www.linuxprobe.com/docs/LinuxProbe.pdf |
ps
- 格式:
ps [参数]
- 作用:查看系统进程状态
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -a | 显示包含其他用户进程在内的所有进程 |
2 | -u | 用户及其他详细信息 |
3 | -x | 显示没有控制终端的进程 |
进程状态:
|序号|状态|说明||
| :-: | - | - |
| 1 | R(运行) | 进程正在运行或处于运行队列 |
| 2 | S(中断) | 进程休眠中,等待合适条件唤醒 |
| 3 | D(不可终止) | 进程不响应系统异步信号,kii 命令也无法终端 |
| 4 | Z(僵死) | 进程终止,但是描述符依然存在,直至父进程调用 wat4() 后释放 |
| 5 | T(停止) | 进程收到停止信号后终止运行 |
1 | # ps 支持系统繁多,所以参数非常多 |
top
格式:
top
作用:动态地监视进程活动和系统负载
1
2# load avg,三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低
top
pidof
格式:
pidof [参数] [服务名称]
作用:查询某个指定服务进程的 PID 值
1
2# pid
pidof sshd
kill
格式:
kill [参数] [进程 PID]
作用:终止某个指定 PID 的服务进程
1
kill -9 xxx
killall
格式:
killall [参数] [进程 PID]
作用:终止某个指定名称的服务所对应的全部进程
1
2# 大型的软件会多个进程协同为用户提供服务,逐个结束会很麻烦。
killall httpd
系统状态监测命令
ifconfig
格式:
ifconfig [网络参数] [参数]
作用:获取网卡配置与网络状态
1
ifconfig
uname
格式:
uname [-a]
作用:查看系统内核与系统版本
1
2
3# Linux centos-linux.shared 3.10.0-862.el7.x86_64
# #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
uname -a
uptime
格式:
uptime
作用:查看系统敷在信息,显示当前系统时间、已运行时间、启用终端数、平均负载信息
1
2# 01:08:44 up 15:49, 4 users, load average: 0.08, 0.04, 0.05
uptime
free
格式:
free [-h]
作用:查看当前系统中内存的使用量信息
1
2
3
4# total used free shared buff/cache available
# Mem: 1.8G 1.2G 111M 4.5M 480M 354M
# Swap: 2.0G 48M 2.0G
free -h
who
格式:
who [参数]
作用:查看当前登入主机的用户终端信息
1
2
3# root tty1 2018-08-17 11:55
# root pts/0 2018-08-20 23:32 (10.*.*.2)
who
last
格式:
last [参数]
作用:查看所有系统的登录记录
1
2
3
4
5# root pts/0 10.*.*.2 Fri Aug 17 11:59 - 11:59 (00:00)
# root pts/0 10.*.*.2 Fri Aug 17 11:57 - 11:58 (00:00)
# root tty1 Fri Aug 17 11:55 still logged in
# reboot system boot 3.10.0-862.el7.x Fri Aug 17 11:55 - 01:15 (3+13:20)
last
history
格式:
history [-c]
作用:用于显示历史执行过的命令
注意:
可以用
!数字
的命令格式重复执行某一次的命令记录,从而避免了重复输入较长
命令的麻烦。1
2
3
4
5
6
7
8
9
10
11
12# 1 history
# 2 vi /etc/profile
# 3 sosreport
# ……
history
# !数字 重复执行,!1 同 history
!1
# -c 参数会清空所有的历史记录
# 默认记录1000条,如果不够的,修改 `/etc/profile` 文件中的 `HISTSIZE`
history -c
sosreport
格式:
sosreport
作用:收集系统配置以及架构信息,并输出诊断文档,格式为
sosreport
注意:精简化安装的 Centos 7.5 中没有该指令,请执行
yum -y install sos
参考:github sos
1
sosreport
工作目录切换命令
pwd
格式:
pwd [选项]
作用:显示用户当前所处的工作目录
1
2# /root
pwd
cd
格式:
cd [选项]
作用:切换工作路径
1
cd ~
ls
格式:
ls [选项]文件
作用:显示目录中的文件信息
1
2ls -ld /etc
ls -la
文本文件编辑命令
cat
格式:
cat [选项]文件
作用:用于查看内容较少的纯文本
1
2# -n 参数显示行号
cat -n xxx.txt
more
格式:
more [选项]文件
作用:用于查看内容较多的纯文本,会提示百分比
1
more xxx.txt
head
格式:
head [选项]文件
作用:用于查看纯文本文档的前 N 行
1
2# -n 表示想查看的行数
head -n 20 xxx.txt
tail
格式:
tail [选项]文件
作用:用于查看纯文本文档的后 N 行,或是持续刷新内容
备注:tail 是尾巴的意思
1
2
3
4
5# -f 显示文件最新追加的内容
tail -f xxx.txt
# -n 显示文件后 20 行的代码
tail -n 20 xxx.txt
tr
格式:
tr [原始字符][目标字符]
作用:批量替换文本中的一些词汇
案例tr 1
2
3# 先用 cat 读出待处理文本,然后通过管道符号传递给 tr 命令进行批量操作。
# 将小写的英文字母替换为大写的
cat xxx.txt | tr [a-z] [A-Z]
wc
- 格式:
wc [参数][文本]
- 作用:w(ord) c(ount),统计指定文本的行数、字数、字节数
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -l | 只显示行数 |
2 | -w | 只显示单词数 |
3 | -c | 只显示字节数 |
1 | # 24 /etc/passwd |
stat
格式:
stat [文件名称]
作用:查看文件的具体纯属信息和时间信息
1
2
3
4
5
6
7
8
9
10
11# 文件:"/etc/passwd"
# 大小:1089 块:8 IO 块:4096 普通文件
# 设备:fd00h/64768d Inode:68774316 硬链接:1
# 权限:(0644/-rw-r--r--) Uid:(0/root) Gid:(0/root)
# 环境:system_u:object_r:passwd_file_t:s0
#
# 最近访问:2018-08-20 11:44:02.732356792 +0800
# 最近更改:2018-08-20 11:44:02.305369253 +0800
# 最近改动:2018-08-20 11:44:02.306369224 +0800
# 创建时间:-
stat /etc/passwd
cut
格式:
cut [参数] 文本
作用:按列提取文本字符
1
2
3
4
5
6
7
8
9
10
11# 按行提取
# root:x:0:0:root:/root:/bin/bash
# bin:x:1:1:bin:/bin:/sbin/nologin
head -n 2 /etc/passwd
# 按列提取
# root
# bin
# daemon
# ……
cut -d: -f1 /etc/passwd
diff
格式:
diff [参数] 文件
作用:用于比较多个文本文件的差异
注意:笔者虚拟机上(Centos 7.5 精简安装)没有成功,读者自行测试(2018-09-09 16:14:18)
1
2
3
4
5# 直接显示比较后的结果,判断文件是否相同
diff --brief diff_A.txt diff_B.txt
# 查看内容对比的具体不同
diff -c diff_A.txt diff_B.txt
文件目录管理命令
touch
- 格式:
touch [选项]文件名
- 作用:创建空白文件或设置文件的时间
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -a | 仅修改‘读取时间’ (atime) |
2 | -m | 仅修改‘修改时间’ (mtime) |
3 | -d | 同时修改 atime 和 mtime |
1 | touch a.txt |
mkdir
格式:
mkdir [选项]目录
作用:创建空白目录
1
2
3mkdir path
# -p 递归创建具有嵌套层级关系的文件目录
mkdir -p pathA/pathB/pathC
cp
- 格式:
cp [选项] 源文件 目标文件
- 作用:复制文件或是目录
- 注意:
- 目标是
目录
,会将文件复制到该目录下 - 目标是
普通文件
,询问是否覆盖 - 目标
不存在
,正常复制操作
- 目标是
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -p | 保留原始文件属性 |
2 | -d | 若对象为 链接文件 ,则保留 链接文件 的属性 |
3 | -r | 递归持续复制(目录复制) |
4 | -i | 如果目标文件存在则询问是否覆盖 |
5 | -a | 相当于 -pdr |
1 | # 复制 a.txt 到上一层目录 |
mv
格式:
mv [选项] 源文件 [目标路径|目标文件名]
作用:剪切文件或是目录,可用于
重命名操作
1
2# 重命名
mv a.txt b.txt
rm
格式:
rm [选项] 源文件 [目标路径|目标文件名]
作用:用于删除文件或目录
1
2
3
4# 删除文件
rm -f a.txt
# 删除目录
rm -rf a/
dd
- 格式:
dd [参数]
- 作用:按照制定大小和个数的数据块来复制或转换文件
- 注意:
- Linux 下存在一个文件
/dev/zero
,本身不占用存储空间,却可以作为 dd 的输入文件,来生成指定大小的文件
- Linux 下存在一个文件
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | if | 输入的文件名称 |
2 | of | 输出的文件名称 |
3 | bs | 设置块的大小 |
4 | count | 设置块的个数 |
1 | # 记录了10+0 的读入 |
1 | dd if=/dev/cdrom of=xxx.iso |
file
格式:
file 文件名
作用:用于查看文件类型
1
2
3
4
5# anaconda-ks.cfg: ASCII text
file anaconda-ks.cfg
# /dev/cdrom: symbolic link to `sr0'
file /dev/cdrom
打包压缩与搜索命令
tar
- 格式:
tar [选项] [文件|目录]
- 作用:对文件或目录进行压缩或解压
- 注意:
.tar
、.tar.gz
、.tar.bz2
格式都是 tar 命令打出的- 参数
-c
、-x
不能同时使用 - 参数
-f
需放置在所有参数的最后 - 常用压缩:
tar -czvf file.tar.gz
- 常用解压:
tar -xzvf file.tar.gz
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -c | 创建压缩文件 |
2 | -x | 解压缩文件 |
3 | -t | 查看压缩包内有哪些文件 |
4 | -z | 使用 Gzip 压缩或解压 |
5 | -j | 使用 bzip2 压缩或解压 |
6 | -v | 显示压缩或解压的郭晨 |
7 | -f | 目标文件名 |
8 | -p | 保留原始的权限与属性 |
9 | -P | 使用据对路径来压缩 |
10 | C | 指定解压到的目录 |
1 | # 压缩 |
grep
- 格式:
grep [选项] 文件
- 作用:在文本中执行关键词搜索,并显示匹配的结果
- 注意:
- 最常用的两个参数
-n
、-v
- 最常用的两个参数
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -b | 将可执行(binary)文件作为文本(text)文件搜索 |
2 | -c | 显示找到的行数 |
3 | -i | 忽略大小写 |
4 | -n | 显示行号 |
5 | -v | 反向选择,列出没有关键词 的行 |
1 | # 2:bin:x:1:1:bin:/bin:/sbin/nologin |
find
- 格式:
find [查找路径] 条件 操作
- 作用:在文本中执行关键词搜索,并显示匹配的结果
- 注意:
- Linux 中一切皆文件,也就是说,一般的搜索工作都是 find 完成的
- 参数:
序号 | 参数 | 作用 |
---|---|---|
1 | -name | 匹配名称 |
2 | -perm | 匹配权重(mode 完全匹配,-mode 包含即可) |
3 | -user | 匹配所有者 |
4 | -group | 匹配所有组 |
5 | -mtime ±n | 匹配修改内容的时间 (-n天以内,+n天以前) |
6 | -atime ±n | 匹配日访问文件的时间 (-n天以内,+n天以前) |
7 | -ctime ±n | 匹配修改文件权限的时间 (-n天以内,+n天以前) |
8 | -nouser | 匹配无所有者的文件 |
9 | -nogroup | 匹配无所有组的文件 |
10 | -newer f1 !f2 | 匹配比文件 f1 新,但是比文件 f2 旧的文件 |
11 | –type /b/d/c/p/l/f | 匹配文件的类型 (字母依次表示:设备、目录、字符设备、管道、链接文件、文本文件) |
12 | -size ±n KB | 匹配文件大小 (+50KB表示超过 50KB 的文件,-50KB 表示小于 50KB 的文件) |
13 | -prune | 目录忽略 |
14 | -exec ··· {}; | 进一步处理搜索结果的命令 |
1 | # 搜索 etc 目录下,名字包含 host 的文件 |
1 | # 搜索 etc 目录下,名字包含 host 的文件,并存储结果 |
写在最后
版本 | 内容 | 时间 |
---|---|---|
v1.0.0 | 1. 创建文档 2. 完成1.4章节前的笔记 | 2018-09-04 23:20:27 |
v1.0.1 | 1. 完成剩下的章节内容笔记 2. 修改错别字若干 3. 修改内容先后,调整板式 | 2018-09-09 17:31:46 |
本文标题:《Linux就该这么学》第二章
文章作者:LeerGo
发布时间:2018-09-04
最后更新:2020-06-01
原始链接:https://blog.bugfix.fun/2018/09/04/4336.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!