第1章、需要了解的命令行相关事项
表1-1 如何在文件名字符中使用特殊字符 | |
字符 | 建议 |
/ | 绝不使用。不能转义 |
\ | 必须转义。避免使用 |
_ | 绝不能作为文件或目录名的第一个字符 |
[] | 必须转义。避免使用 |
{} | 必须转义。避免使用 |
* | 必须转义。避免使用 |
? | 必须转义。避免使用 |
' | 必须转义。避免使用 |
" | 必须转义。避免使用 |
<空格> | 必须转义。通常无法避免,但尽量避免 |
表1-2通配符及其匹配含义 | |
符号 | 含义 |
* | 匹配0个或者多个任意字符 |
? | 匹配单个字符 |
[] | 匹配一组单个字符 |
{} | 字符串和范围{jpg,png} |
clear:重置屏幕
第2章、导航文件系统
ls命令详解 | |||||||||||||||||||||
ls | 列出文件和文件夹 | ||||||||||||||||||||
ls path | 列出文件夹内容 | ||||||||||||||||||||
ls /home/*.wmv | 使用通配符列出文件夹的内容 | ||||||||||||||||||||
ls -R/ls --recursive | 查看子文件夹中的文件列表 | ||||||||||||||||||||
ls -1/ls --format=single-column | 以一行显示内容列表 | ||||||||||||||||||||
ls -m/ls --format=commas | 以逗号分隔列表显示内容 | ||||||||||||||||||||
ls -a/ls -all | 查看隐藏的文件和文件夹 | ||||||||||||||||||||
ls -A | 查看不显示.与..隐藏文件夹 | ||||||||||||||||||||
ls -F/ls --classfy | 直观显示文件的类型
| ||||||||||||||||||||
ls --color | 以各种颜色显示内容
| ||||||||||||||||||||
ls -l/ls --format=long | 列出权限、所有者以及其他信息
r 允许读取 w 允许改写 x 允许执行 -出现在什么位置代表没有不能什么 所有者/组(root)的成员/其他用户 | ||||||||||||||||||||
ls -r/ls --reverse | 倒序显示文件内容 | ||||||||||||||||||||
ls -t/ls --sort=time | 按日期和时间排序内容 | ||||||||||||||||||||
ls -S/ls --sort=size | 按文件大小排序内容 | ||||||||||||||||||||
ls -h/ls --human-readable | 用k、M、G显示文件大小 | ||||||||||||||||||||
ls -i | 理解Linux存储文件的方式显示文件索引节点号 | ||||||||||||||||||||
pwd | 显示当前目录路径 pwd -P/pwd --physical 显示目标路径 pwd -L/pwd --logical 显示逻辑路径 | ||||||||||||||||||||
cd | 切换路径 cd - 切换到之前路径 |
第3章、创建和消毁
touch命令 | |||||||||||||||||
touch a.txt | 将文件修改为当前时间 | ||||||||||||||||
touch -t | 将文件修改为任意所需的时间 -t[[CC]YY]MMDDhhmm[.ss]
| ||||||||||||||||
touch notexist.txt | 创建空文件notexist.txt |
mkdir 命令 | |
mkdir new | 创建新目录 |
mkdir -p tets/test mkdir --parents test/test | 创建新目录以及必要的子目录 |
cp命令 | |
cp a.txt a_copy.txt cp 源文件 复制后路径 cp 源文件 .(在当前目录创建源文件快捷方式) | 复制文件 |
cp * | 使用通配符复制文件 |
cp -v/cp --verbose | 显示复制文件的过程 |
cp -i/cp --interactive | 防止在复制是覆盖重要文件 |
cp -r/cp --recursive | 复制目录以及子文件 |
cp -a/cp --archive/cp -dpr/cp --no-dereference --preserve -recursive | 为建立完善副本而将文件复制到另外的一个目录 |
mv命令 | |
mv a/a a/b mv a/a . | 移动文件和文件夹 |
mv a b | 重命名文件和文件夹 a如果是软链接加上/代表软链接指向的目录 |
ln命令 | |
ln a.txt b.txt | 创建指向另一个文件或目录的链接 |
sudo ln -s /var/www /www sudo ln -s /var/www . sudo ln -s /var/www | 创建软链接 |
unlink a.txt | 移除链接 |
硬链接与软链接区别 | ||
类型 | 硬链接 | 软链接 |
链接指向 | 索引节点 | 名称 |
链接到目录 | 否 | 是 |
跨文件系统链接 | 否 | 是 |
移动源文件 | 链接有效 | 链接断开 |
更改目标的名称 | 链接有效 | 链接断开 |
删除链接 | 目标仍然存在* | 目标仍然存在* |
链接的索引节点 | 与目标相同 | 与目标不同 |
存储空间 | 无 | ~4KB |
rm 命令 | |
rm a.txt | 删除文件 |
rm *.txt | 使用通配符删除文件 |
rm -i | 防止删除关键文件 |
rmdir path | 删除空目录 |
rm -rf/rm --recursive --force | 删除文件和非空目录 |
第4章、学习命令
man命令[manual(手册)] | |||||||||||||||||
man ls | 查找ls命令相关信息
| ||||||||||||||||
man -f/man --whatis/whatis | 基于命令名称来快速弄清其功能 | ||||||||||||||||
man -k/man --apropos/apropos | 基于其功能搜索命令 | ||||||||||||||||
man [1-2] passwd | 读取特定页数的手册 |
info命令 | |||||||||||||||||||||
info info | 学习info命令 | ||||||||||||||||||||
info -d | 添加包含info格式帮助文档的目录 | ||||||||||||||||||||
info -f | 指定要读取的info格式的帮助文档 | ||||||||||||||||||||
info -n | 指定首先访问的info帮助文件的节点 | ||||||||||||||||||||
info按键 |
|
whereis 命令 | |
whereis kword | 查找命令的可执行文件、源文件、手册路径 |
whereis -b | 只查找二进制文件路径 |
whereis -m | 只查找手册路径 |
whereis -s | 只查找源文件路径 |
which命令 | |
which kword | 查找将要运行命令的路径 |
which -a kword/whereis -s kword | 显示kword命令全部路径 |
type命令 | |||||||||||
type ls | shell如何解释命令
| ||||||||||
type -t ls | builtin |
第5章、组合命令
命令栈:
5.1、将命令放在一行上,以;分隔命令。
5.2、用&&代替;,紧当前面的命令执行成功后才进行后面的命令。
5.3、||紧当前面的命令执行失败后才执行后面的命令。
5.4、$(),将一条命令的输出插入到另外一条命令中如mkdir $(date "+%Y-%m-%d");
5.5、
三种输入/输出流 | |||
文字描述符 | 名称 | 常见缩写名 | 典型的默认设备 |
0 | 标准输入 | stdin | 键盘 |
1 | 标准输出 | stdout | 终端 |
2 | 标准错误 | stderr | 终端 |
管道|用法 | |
ls -1 | less | 将ls -1结果传递到 less |
ps ux | grep firefox | 查找是否有firefox程序在运行 |
5.6、>将结果输出定向输出到文件中
ls -1F > a.txt
5.7、set -o noclobber 防止重定向覆盖文件 如果需要覆盖文件使用>| 替代 >,取消noclobber set +o noclobber.
5.8、将命令输出追加到文件中用>>
5.9、将文件用作命令的输入使用<,例子:tr 'A-Z' 'a-z' < command.txt > command_lower.txt.
5.10、tee命令将输出同时发送到文件和stdout, ls -1 | tee command.txt,追加使用tee -a ls-1 | tee -a command.txt。
第6章、查看文件
文件相关命令 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
file a.txt | 显示文件类型 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat a.txt | 在标准输出设备上查看文件 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat a.txt b.txt | 将文件拼接到标准输出设备上 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat a.txt b.txt > c.txt | 将文件拼接到另外的文件 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat -n | 拼接文件并显示行号 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
less | 逐屏显示文件
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
less -M或者按"="键 | less的结果中显示文件信息 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
ls --color | less -R | 修复特殊字符带来的混淆 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
less搜索命令/ |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
export EDITOR=vim | 按v进入编辑器,使用左边设置默认编辑器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
head a.txt b.txt | 查看多个文件的前10行数据没有b.txt就显示单个文件 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
head -n 100 | 显示文件的前100行数据 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
head -c |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
tail | 查看文件倒数10行 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
tail -n 10/ tail --lines=10 | 查看文件倒数n行数据 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
tail-f | 查看文件经常更新行 tail -f --pid=2112 /var/log/apache2/error.log | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
tail --retry | 文件消失或者突然不可访问 |
第7章、使用过滤器操作文本文件
过滤器操作文本文件 | |||||||||||||||||
wc | wc -l/wc --lines 提供行数 wc -m/wc --chars 提供字符数 wc -w/wc --words 提供单词数 默认显示全部 | ||||||||||||||||
sed '/^$/d' "a.txt" | wc -l | 删除a.txt空白来统计数据 | ||||||||||||||||
nl | nl 给文件非空行编号 nl -b t给文件非空行编号 nl -b a给文件所有行编号 | ||||||||||||||||
cut | cut -f(--fields) 1,3 a.txt echo wu.images.xx.com | cut -d '.' -f 2-4 cut -f 1,3 --output-delimiter=',' a.txt | ||||||||||||||||
sort | sed ld a.txt | sort -t ' ' -k 4 -r -k/--key -r/--reverse du -d 1 -h | sort -h(如果du -h,sort -h才能正确排序 sort -n 会不能正确排序) | ||||||||||||||||
uniq | 去重命令(uniq去重去的是相邻重复元素 ) history | awk '{print $2}' | sort | uniq | ||||||||||||||||
tr | tr a-z A-Z 将字符小写转大写
| ||||||||||||||||
tr -s | 使用单个实例替换多个重复的字符如: tr -s [:blank:] | ||||||||||||||||
tr -d | 删除匹配的字符 | ||||||||||||||||
sed 's/markdown.txt/markdown/g' | 转换文本 | ||||||||||||||||
awk | 打印文件中的特定字段 wc -c /var/mail/mail | awk '{print $1}' |
第8章、拥有者和权限
拥有者和权限命令 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
whoami | 查看身份命令 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
su username | 切换到username用户 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
su -l/su --login user | 登录user账号 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
su如果不行就sudo su | 成为root用户 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
su - | 登录root用户 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chgrp | chgrp admins a.sh 将a.sh用户组修改为admins组 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chgrp -R/--recursive | 递归修改文件用户组 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chown | chown u a.txt 改变文件的拥有者 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chown -R/--recursive | 与chgrp -R类似 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chown owner:group | chown u:admins a.txt同时修改用户以及用户组 chown :group 等价于 chgrp 命令 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod |
上表root用户除外 chmod [ugo][-+=][rwx] chmod [0-7][0-7][0-7]
chmod 600 a.txt chmod -R 递归修改权限
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod u[+-]s chmod 4[0-7][0-7][0-7] | 设置suid chmod u+s a.txt 或 suid 4754 a.txt 取消suid chmod u-s a.txt 或 suid 0754 a.txt | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod g[+-]s chmod 2[0-7][0-7][0-7] | 设置或者取消sgid | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod [+-]t chmod 1[0-7][0-7][0-7] | 设置或者取消 sticky bit |
第9章、归档和压缩