由于工作需要,接触到macOS
系统,想学习到shell
的脚本编程,故阅读了《Linux命令行与shell脚本编程大全》
,也借鉴到了实验楼的Linux
相关基础知识,以下为读书笔记之Linux命令行
篇。
1、文件及目录操作
终端根目录为/
,刚开始进入终端时,默认当前目录为用户目录,即/home/user
,在终端中以~
符号代替,当然也可以用pwd
命令打印当前目录。根目录下有很多默认的子目录:
1.1 查看目录或文件的整体信息
cd 目录名
:用于切换目录
目录名的书写格式分为两种,以/
开头的是绝对路径,非/
开头的是相对路径,表示以当前目录(用.
表示,父目录用..
表示)为起点。
ls
:展示当前目录下的子目录和文件列表
参数 | 功能 |
---|---|
-a | 显示以点号开头的隐藏文件 |
-F | 区分展示目录和文件,目录后带/ |
-i | 显示目录和文件的inode 编号,标识文件的唯一数字 |
-l | 显示目录或文件详尽信息,包括文件类型、权限等 |
-R | 递归显示所有文件,可用CTRL+Z 停止递归,然后kill 杀死递归进程 |
命令参数可以写到一起,比如ls -al
;
除了可以用命令参数,还可以查看特定文件或用正则表达式过滤,只需在参数后加上文件名。
补充说明:
利用-l
查看文件信息时,权限后会有一个数字表示文件的硬链接总数。Linux
文件链接分为两种:
- 符号链接:是一个真实存在的文件,里面的内容相当于指向源文件的指针,可以通过
ln -s 源文件名 符号链接名
创建; - 硬链接:是虚拟文件,包含了源文件的信息和位置,根本上和源文件是同一个文件,但是当源文件作出修改后,硬链接和源文件的
inode
编号就会不一致,可以通过ln 源文件名 符号链接名
创建。
1.2 查看文件内容
file 文件或目录名
:查看文件类型cat 文件名
:显示文件所有内容
参数 | 功能 |
---|---|
-b | 只给有文本的行加上行号 |
-n | 给所有的行加上行号 |
-T | 隐藏制表符 |
more 文件名
:分页显示文件内容且只能向前浏览,Enter
向下滚动一行,Space
向下滚动一页,Q
退出less 文件名
:分页显示文件内容,PGUP
向上翻页,PGDN
向下翻页,Q
退出tail/head 文件名
:默认显示文件末尾/开头10行,可以使用-数字
改变显示行数
2、处理数据
sort 文件名
:排序数据
默认状态下执行标准的字符排序,参数-n
按数值大小排序。按分隔符区分的数据进行排序的方法是sort -t '分隔符' -k 第几个位置的数据 参数 文件名
,其中位置从1开始计数。
grep 正则表达式 文件名
:搜索数据
参数 | 功能 |
---|---|
-c | 显示一共匹配到数据的行数 |
-n | 显示匹配到数据所在的行 |
-e | 指定多个匹配模式 |
3、shell
终端中可以通过输入如zsh
、bash
的命令在父shell
的基础上创建子shell
,可以和进程列表联合使用。通过分号可以依次运行一系列命令,当在这一系列命令上加()
时命令列表就成为了进程列表,即自动创建出一个子shell
去执行命令列表。
通过在进程列表或睡眠进程sleep 秒数
之后加&
可以将其置于后台执行,在后台执行的命令可以通过jobs -l
查看。如果进程列表只包含一个命令,那么只会创建一个额外的进程,否则为两个。
命令分为内建命令和外部命令。区别是是否需要子进程执行命令,通过type -a 命令名称
可以查看命令的类型,而which 命令名称
只显示外部命令。
命令历史记录保存在.bash_history
中,只有退出shell
时才会将历史命令写入到该文件中。通过history
可以查看自打开终端以来的历史命令,然后利用!命令编号
可以重新执行该命令。
可以通过alias 别名='命令(可以带参数)'
为命令设置别名,通过alias -p
查看当前可用别名。需要注意的是本次设置的别名在别的shell
中不起作用,需要更改环境变量。
4、Vim编辑器
- 普通模式:按
Esc
进入
命令 | 作用 |
---|---|
dd | 删除整行,前面加数字n 表示删除n 行,删除后用p 进行粘贴 |
G | 光标移动到最后一行,前面加数字n 表示移动到第n 行 |
gg | 光标移动到第一行 |
w/b | 光标移动到下一个/前一个单词的开头 |
Home | 光标移动到当前行行首 |
End | 光标移动到当前行行尾 |
yy | 复制整行,前面加数字n 表示复制n 行,复制后用p 进行粘贴 |
>> | 向右进行缩进 |
/或?字符串 | 向下/上进行字符串查找,n/N 查找下/上一个内容 |
u | 撤销一次操作 |
-
插入模式:按
i
进入 -
命令模式:按
:
进入
命令 | 作用 |
---|---|
set shiftwidth? | 获取缩进值,通过= 以字符为单位进行设置 |
q | 退出 |
wq | 保存并退出 |
结语
目前只记录一些常用的命令,如果在工作过程中发现其它好用的命令会及时进行更新~