《Linux命令行大全》重点笔记
第一部分 学习shell
第一章 shell是什么
1.3 简单命令
1、date:系统时间、日期。
2、cal:当月日历。
3、df:磁盘可用空间。
4、free:可用内存。
5、exit:关闭终端会话。
第二章 导航
2.2 简单命令
1、pwd:当前工作目录(Print Working Directory)。
2、ls:列出当前工作目录的文件和目录。
特别地,ls -a:可以列出隐藏文件。
3、cd:更改工作目录。
- 绝对路径:从根目录开始写起(/)
- 相对路径:从工作目录开始写起(.当前目录/..父目录)
第三章 Linux系统
3.1 ls命令
1、选项和参数
- 连字符+短选项:ls -a
- 双连字符+长选项:ls --reverse
- 连字符+多个短选项:ls -lt
ls常用选项:
-a/--all
:列出所有文件,包括隐藏。
-l
:长格式显示。
-r/--reverse
:字母逆序显示。
-S
:文件大小排序。
-t
:修改时间排序。
-h/--human-readable
:人可读的方式显示文件大小。
3.2 file命令
file filename
:确定文件类型。
3.3 less命令
less filename
:查看文件内容。
按Q键退出。
第四章 操作文件与目录
4.1 通配符
常用通配符:
*:匹配任意多个字符(0/1/2…个)。
?:匹配任意单个字符(1个)。
4.2 mkdir——创建目录
mkdir dir1
:创建一个目录。
mkdir dir1...
:创建多个目录。
4.3 cp——复制文件和目录
cp item1 item2
:复制单个文件。
cp item1... directory
:复制多个文件。
4.4 mv——移除和重命名文件
mv item1 item2
:移动/重命名item1为item2。
mv item... directory
:移动单个/多个文件到某个目录下。
4.5 rm——删除文件和目录
rm item...
:不可撤回的操作!⚠️
rm命令常用选项:
-i/--interactive
:提醒用户确认
-r/--recursive
:递归删除
-f/--force
:直接执行不提示
4.6 ln——创建链接
ln file link
:创建硬链接。ln -s item link
:创建软链接/符号链接。
硬链接软链接对比
- 共同点:引用/指向文件。
- 区别:硬链接只能引用同个磁盘分区的文件,且不能引用目录;软链接相当于一个指针,且可引用目录。
第五章 命令的使用
5.2 识别命令
1、type——显示命令类型
type command
2、which——显示可执行程序位置
which command
5.3 获得命令文档
1、help——显示内置shell命令帮助文档
2、man——显示程序手册页
3、whatis——显示命令的简要描述
4、info——显示程序的info条目
5.4 alias——使用别名创建命令
alias name='string'
:name后无空格!string是命令集合,可用分号把多条命令写在一行。
unalias name
:删除别名。
注意⚠️:在命令行创建别名alias会在会话结束后自动删除。
第六章 I/O重定向
6.1 标准输入、输出、错误
stdin/stdout/stderr
使用>/<符号进行重定向。
1、stdout重定向
> filename
:从文件开头把输出内容写入文件,但不写入错误信息。
>> filename
:从文件尾部添加输出内容。
妙用👍:
可以直接调用>/>>来创建空文件,>也可以用来清空文件内容。
2、stderr重定向
2> filename
:fd=2即为stderr。
3、stdout/stderr重定向到同个文件
&> filename
:同时把stdout/stderr重定向到同个文件。
4、丢弃错误信息
2> /dev/null
:/dev/null称为位桶(bit bucket)。
5、cat命令——stdin重定向
cat命令的用法:
- 文件名做参数
1)显示文件
cat filename
2)合并文件
cat filename... > newfile
:把filename等文件合并成newfile。
- 缺少文件名参数
3)创建文本文件
cat > filename
:执行后stdin会等待输入直到EOF。
- stdin做参数
4)stdin重定向
cat < filename
:filename作为输入。
6.2 管道
command1 | command2
:从command1的stdout传送到command2的stdin。
pipe的用法:
1)过滤器filter
ls /bin /usr | sort | less
:/a /b目录下可执行程序 -> 排序 -> 查看。
2)uniq——删除文件重复行
经常与sort结合使用。
ls /bin | sort | uniq | less
:删除重复行。
ls /bin | sort | uniq -d | less
:反选重复行。
3)wc——打印行数、字数、字节数
wc filename
:打印行数、字数、字节数。
ls /bin | wc -l
:只打印行数。
4)grep——打印匹配行
ls /bin | grep string
:匹配满足正则表达式string的行。
- -i:忽略大小写;
- -v:反选匹配不成功的行。
5)head/tail——打印文件开头/结尾
head -n 5 filename
:输出前5行。
tail -n 5 filename
:输出末5行。
ls /bin | tail -n 5
:管道中使用tail。
tail -f /var/log/messages
:持续监视日志文件,有新行添加就立刻显示(-f)。
6)tee——从stdin读取,同时输出到stdout和文件
tee:“T”,单口进,双口出。
tee filename
:从管道中间某个位置输出到文件。
例子🌰:
ls /bin | tee ls.txt | grep zip
:把/bin全部目录列表存到ls.txt,stdout则最后只输出包含zip的子项。
第七章 透过shell看世界
7.1 扩展:以echo为例
echo命令:把文本参数内容打印到stdout。
1、路径名扩展—— *
echo D*
:扩展为当前目录下首字母D的文件或目录。
2、波浪线扩展—— ~
echo ~
:扩展为当前用户的主目录。
echo ~username
:扩展为username用户的主目录。
3、算术扩展—— $((expression))
空格在算术表达式中无意义。
echo $(((5**2) * 3))
:75。
4、花括号扩展—— {}
花括号里是模式信息!可以用逗号枚举、可以用两个句号表示序列。
echo a{A{1,2},B{3,4}}b
:aA1b / aA2b / aB3b / aB4b。
echo Num_{1..5}
:Num_1 / Num_2 / Num_3 / Num_4 / Num_5。
5、参数扩展—— $A
扩展为已定义的变量,若无定义则为空白。
echo $USER
:liuwp。
echo $HAHAHA
:空白输出。
6、命令替换—— $(command)
echo $(ls)
:等价于ls。
7.2 引用
1、双引号
加上双引号,则表示整体为一个参数。
2、单引号
加上单引号,抑制所有扩展。
3、转义字符
第八章 高级键盘技巧
8.3 history——使用历史命令
1、查看历史记录
history | less
:查看命令的历史记录。
假设输出如下:
1 ls
2 pwd
3 are you ok?
…
2、历史记录扩展
!2
:使用历史记录第2行命令,即pwd。
!!
:使用最近一条命令。
! are
:使用最近以"are"开头的命令。
!?are
:使用最近包含"are"的命令。
第九章 权限
9.1 id——查看用户id、组id
id
:uid=1016(liuwp) gid=1016(liuwp) groups=1016(liuwp)
9.2 读、写、执行
访问权限的控制就是:读、写、执行。
文件类型 | 所有者权限 | 组权限 | 其他用户权限 |
---|---|---|---|
-(普通) | rwx | rw- | r– |
d(目录) | 略 | 略 | 略 |
l(符号链接) | 略 | 略 | 略 |
1、chmod——更改文件模式
- 八进制数字表示法:0为-,1为相应位置的符号。
例子🌰:
6 -> 110 -> rw-
chmod 777 filename
- 符号表示法:u/g/o/a表示对象,±=来增加删除赋予权限。
例子🌰:
u+x
:文件所有者增加执行权限。
u-rw
:文件所有者删除读写权限。
2、umask——设置默认权限
umask默认值是0002,可改,但一般不需要改。
用4个八进制数表示掩码。第一位不需要看。
例子🌰:
002,分别对u/g/o设置掩码0/0/2。其中,2 <=> 010 <=> 把w设置为-。
9.3 更改身份
1、su——更换身份
su -
:超级用户,等价于su -l
。
2、sudo——只作用于当前命令
3、chown——更改文件所有者
4、chgrp——更改文件所属群组
9.4 passwd——更改密码
第十章 进程
10.1 进程
1、ps——查看进程信息
ps
:简略输出。
ps x
:所有进程。
ps aux
:更详细输出所有进程。
2、top——动态查看进程信息
top
:可看CPU、MEM占用情况。
10.2 控制进程
0、jobs——查看所有作业,每个作业都有编号
1、&——后台运行
process1 &
:process1后台运行。
bg %1
:1号作业后台运行。
2、fg——回到前台运行
fg %1
:1号作业返回前台。
10.3 信号
1、kill——发送信号给进程
kill [-signal] PID
2、killall——发送信号给多个进程
killall [-signal] name