开源世界旅行手册:核心工具集(一)

Posted by Viletyy on 2020-01-02 10:28

核心工具集(一)

细节

Linux是大小写敏感的系统,所有的命令、路径、选项、参数、变量……都区分大小写。

使用TAB键补全命令,无论任何时候,多按几次TAB总会有所帮助。

Shell的功能键能够协助您更高效的编辑命令,请熟悉其键绑定、尽量使用它。

命令由命令名分隔符选项操作对象组成

命令名

标识命令的功能,例如cp(copy)、mv(move)、rm(remove)……

有些命令包含一些子命令,您有认为它的命令名由两个单词构成,例如“apt”软件包管理系统:

1
2
apt-get install 安装一个软件
apt-get remove 删除一个软件

分隔符

通常为空格,多个连续的空格视为一个空格,下面两个命令相同:

1
2
cp a b
cp   a   b

有一些特殊符号也属于分隔符,例如管道|,重定向>,>>,<、后台运行&,序列执行&&;。使用这些符号时,你不需要再使用空格作为分隔符

1
2
ls -al|less #两个命令效果相同
ls -al | less #更容易阅读

选项

精细调节命令的行为,以-引导,通常为选项的首字母。许多软件都可以使用-h选项来阅读使用说明。例如:

1
2
3
4
apt-get -h
apt-get --help①
apt-get -help②
apt-get -h -e -l -p

①也可以使用选项的全名,一般以--引导

②多数命令中,使用-引导多个字符,将会被视为多个选项

③与上面的命令效果一样

少数命令的选项,不需要以-引导,或者使用-引导选项全名,例如:

1
2
3
ps aux 
/etc/ini.d/gdm start 
mplayer -loop xxx

递归

表示在子层次中重复相同操作。例如递归复制某目录,不但复制当前目录及其下的所有文件;而且对当前目录的子目录,也进行递归复制的操作。

格式约定

使用[]表示可选项,实际输入为方括号中的内容,例如

1
ls [-l]

实际输入为,ls -l

使用|表示“或”,以|分隔的项目不能同时使用,例如

1
tar [-z|j c|x vf] 归档文件 [源文件]

选项通常紧跟命令名,除非必要,在命令格式中,我们通常省略它们。

系统信息

uptime

联机信息-实际,显示如下:

1
11:27pm① up 9 days, 7:12②, 3 user③, load average: 0.07, 0.12, 0.14④

①当前系统时间

②系统运行时间

③当前在线用户数

④系统负荷:1分钟前、5分钟前、15分钟前

w

联机信息-已登录用户,显示如下

1
2
3
01:04:10 up 1.34, 2 users, load average: 0.25, 0.16, 0.11①
USER② TTY③ FROM④ 			LOGIN@⑤ IDLE⑥ JCPU 		PCPU⑦ WHAT⑧
user	tty1	192.168.0.1	23:30			1.33 	0.14s	0.12s -bash

①uptime信息②用户名③登录方式④来源地址⑤登录时间⑥发呆时间⑦资源占用⑧当前任务

who

联机信息,-r选项为运行级别

whoami

显示当前用户名

last

最近用户登录信息,-数字使用数字作为选项,控制显示条目

uname

系统信息

选项 含义
-s 内核名称(默认选项)
-a 全部
-p CPU信息
-n 主机名
-r 内核发行信息(版本号)
-v 内核版本信息

date

显示、设定系统时间

选项 格式 含义
-u   显示格林尼洛时间(UTC)
MMDDhhmm[[CC]YY][.ss] 设定时间,需要管理员权限 date 12292359
  MM 月份
  DD 天数
  hh 小时
  mm 分钟
  CC 年份前两位
  YY 年份后两位
  ss 秒钟
  秒钟、年份为可选 date 122923592006.59
+[%X] 设定显示格式,默认输出格式: date +%Y年%m月%d日%A%H:%M:%S%Z
格式控制 %n 换行
  %t 制表符
小时 %H 00~23
  %I 01~12
  %k 0~23
  %l 1~12
  %p AM|PM
分、秒 %M 分钟(00~59)
  %S 秒(00..61)
  %T hh:mm:ss
  %r hh:mm:ss AM|PM
  %s 从1970年1月1日00:00:00 UTC到目前为止的秒数
  %X %H:%M:%S
  %Z 时区
星期 %a Sun~Sat
  %A Sunday~Saturday
  %w 一周中的第几天(0~6)
年份 %Y 0000~9999
  %y 00~99
月份 %m 01~12
  %b Jan~Dec
  %B January~December
日期 %c 完整日期时间
  %d 01~31
  %j 001~366
  %x 本地格式日期
  %D mm/dd/yy
一年中的第几周 %U 以Sunday为一周的第一天
  %W 以MonDay为一周的第一天

cal

显示日历

文件管理

细节

/ 目录为文件系统根目录,所有目录都是它的子目录

绝对路径以 / 起始,相对路径以当前所在目录起始

目录是一种特殊类型的文件,如果没有特别指明,文件包括文件和目录

.. 表示上一级目录, . 表示当前目录,它们是两个特殊目录

链接为当前文件建立在其他路径中的访问方法。例如将系统中其他位置的可执行文件,链接到 /usr/local/bin目录下,使用命令调用。

ls [路径]

显示当前目录文件列表

选项 含义
–color 不同属性以不同颜色显示(默认选项)
-a 全部显示
-i 显示inode值
-l 详细信息
-F 显示文件类型后缀 目录 / 链接@ 可执行文件* 端口文件= 管道文件|
-A 显示隐藏文件
-R 递归显示子目录文件列表
-S 按文件大小排序
-t 按修改时间排序
-u 按访问时间排序
-d 只显示目录,不递归显示目录下的文件

cd [目录路径] | [特殊路径]

切换目录,目录可以使用绝对路径或者相对路径

选项 含义
~ $HOME目录(默认值)
- 上一次目录
.. 上一级目录
. 当前目录

您可以通过修改/etc/environment文件,来定义$CDPATH变量,设定cd命令的搜索路径。

pwd

显示当前路径

file文件名

显示文件类型,-i表示显示mine类型

du [路径]

计算文件或目录空间占用

选项 含义
-h 人性化显示。自动以G、M、K为单位显示占用空间大小
–max-depth=数字 显示目录深度
-l 重复计算硬链接文件大小
-L 计算符号链接文件大小
-a 显示当前目录子目录中的文件
-c 显示文件数

less 文件名

浏览文件,使用VI和Emacs两种风格的键绑定。

touch 目标文件

触碰,在不修改文件的前提下,更改其时间属性。通常用来创建一个空文件

mkdir 文件夹

创建文件夹,-p按路径创建多级目录 -m数字权限值

cp 源文件 目标目录|文件

将源文件复制为目录文件,或将源文件复制到目标目录。多个源文件使用空格分隔。

cp 源目录 目标目录

将源目录复制到目标墓中,如果复制多个源目录,需要使用-R选项

选项 含义
-a 相当于-dpr选项
-d 保留链接
-f 强制复制,覆盖目标文件
-i 覆盖时询问用户
-p 保留修改时间和访问权限
-r -R 递归复制(目录=>目录)
-l 创建链接
-v 显示过程

rm 目标目录|文件

删除

选项 含义
-r -R 递归删除(用于删除目录)
-f 强制删除(无需确认,直接删除)
-i 交互式删除(询问用户)

rmdir 目标目录

删除目录时,建议使用rm -r命令

mv 源文件 目标目录|文件

相当于复制后删除源文件,也可以作为“重命名”使用

选项 含义
-f 强制,覆盖目标文件
-i 覆盖时询问用户
-v 显示过程

ln 源文件 链接

选项 含义
-s 符号链接
-f 强制链接,覆盖目标文件
-i 覆盖时询问用户

文件操作

split 源文件 [目标文件名前缀]

将源文件按一定规则分割成若干个目标文件。默认文件名前缀为x

选项 含义
-行数 按行数分割文件
-l 行数 同上
-b 字节 按大小分割文件。可以使用b、k、m做单位,不指定单位的情况下,默认单位为b
-C 字节 按大小分割文件,并尽量保持每行的完整

cat 文件名

输出文件内容。用空格分隔多个文件名

选项 含义
-n 在输出中添加行号
-b 在输出中添加行号,空行不编号
-s 将两行或以上的空行,合并为一个空行

可以将多个文件内容连接到一起输出。使用重定向合并为一个文件 ` cat xaa xab xac > file.split`

sort [-o 输出文件] [-t 分隔字符] [+起始字段 -结束字段] [文件]

对文本内容排序

选项 含义
-m 合并文件
-c 检查文件是否已按规则排序
-b 忽略行首空格字符
-u 忽略内容重复行
-f 忽略大小写
-l 忽略非打印字符
-M 作为月份比较
-d 按字典顺序排序,按照字母、数字、空格、制表符排序
-r 逆序输出

more

查看文件内容,使用less

diff 文件1 文件2

比较文件

选项 含义
无选项 混合ed命令格式
-u [数字] 统一格式,数字为显示上下文行数
–unified[=数字] 同上
-c [数字] 上下文格式,数字为显示上下文行数
–context[=数字] 同上
-e ed命令格式
–ed 同上
-f RCS命令格式

patch

使用diff -uN[r] 旧文件 新文件 > 补丁文件 命令创建补丁文件。

在待补丁文件的目录下使用patch -p[数字] < 补丁文件 命令打补丁,-p [数字]表示忽略补丁文件中记录的目录,数字为忽略的层数。 patch -R 已打补丁文件 补丁文件将已打补丁文件恢复到原来的状态

cksum [文件名]

计算文件的CRC值。不指定文件名则从标准输入设备读入数据

md5sum [文件名]

计算文件的md5值。不指定文件名则从标准输入设备读入数据

选项 含义
-t 以文本模式读取
-b 以二进制模式读取
-c md5记录 校验md5记录中的文件(使用md5sum配合重定向生成记录文件)

压缩解压

tar [-]c|x|u|r|t [z|j] [v] -f 归档文件 [待打包文件]

将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时)

选项类型 选项 含义
操作类型 -c 创建
  -x 解包
  -u 更新
  -r 添加
  -t 查看
  -d 比较压缩包内文件和文件
  -A 将tar文件添加到归档文件中
格式选项 -z 使用gz压缩格式
  -j 使用bz2压缩格式
其他 -v 显示过程
  -f文件名 归档文件的文件名,使用 - 代表标准输入/输出
  -C 解压路径 将压缩包中的文件解压到指定目录
  –exclude=文件 排除文件
  -P 使用绝对路径压缩时,保留根目录“/”
  -W 校验
  -p 还原文件权限
  -w 询问用户
  –totals 统计
  -T 文件列表 处理文件列表中的文件
  -X 文件列表 排除文件列表中的文件

7z|7za 子命令 [选项] 压缩包 [文件]

选项类型 选项 含义
子命令 a 添加
  d 删除
  e 解压
  x 带路径解压
  l 列表查看
  t 测试
  u 更新
选项 -m 压缩方式  
  -m0=压缩算法 默认使用lzma
  -mx=数字 1~9压缩级别
  -mfb=64 number of fast bytes for LZMA = 64
  -md=字典大小 设置字典大小,例如-md=32m
  -ms=on|off 是否固时压缩
  -o输出目录 设置输出目录
  -p密码 使用密码
  -r数字 递归,使用数字定义递归子目录的深度
  -sfx[模块名称] 使用自解压模块
  -si 从标准输入设备读入数据
  -so 将数据写入标准输出设备
  -y 所有询问均回答Yes
  -w路径 设置工作目录

搜索

whereis 程序名称

查找软件的安装路径

选项 含义
-b 只查找二进制文件
-m 只查找帮助文件
-s 只查找源代码
-u 排除指定类型文件
-f 只显示文件名
-B 目录 在指定目录下查找二进制文件
-M 目录 在指定目录下查找帮助文件
-S 目录 在指定目录下查找源代码

locate 文件名称

在文件索引数据库搜索文件 -d 数据库路径搜索指定数据库,updatedb更新文件索引数据库

find [路径] 表达式

查找文件

选项 含义
-name 表达式 根据文件名查找文件
-iname 表达式 根据文件名查找文件,忽略大小写
-path 表达式 根据路径查找文件
-ipath 表达式 根据路径查找文件,忽略大小写
-amin 分钟 过去N分钟内访问过的文件
-atime 天数 过去N天内访问过的文件
-cmin 分钟 过去N分钟内修改过的文件
-ctime 天数 过去N天内修改过的文件
-anewer 参照文件 比参照文件更晚被读取过的文件
-cnewer 参照文件 比参照文件更晚被修改过的文件
-size 大小 根据文件大小查找文件,单位 b c w k M G
-type 文件类型 根据文件类型查找文件。b块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 | 链接 s 端口文件
-user 用户名 按归属用户查找文件
-uid 用户编号 按用户编号查找文件
-group 群组号 按归属群组查找文件
-gid 群组编号 按群组编号查找文件
-empty 查找空文件

grep 字符串|正则表达式 文件名|标准输入

在文件中搜索内容

参考资料: