基础命令
一些常用快捷键
按键 | 作用 |
---|---|
Ctrl+c | 结束当前任务 |
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg,jobs查看当前后台任务 |
Ctrl+a | 将光标移至输入行头,相当于Home键 |
Ctrl+e | 将光标移至输入行末,相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Ctrl+u | 删除当前行内容 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
通配符
$ touch love_{1..10}_linux.txt
一次创建多个文件
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[!list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} | 匹配 sring1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
man命令
在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。
通常情况下,man 手册里面的内容都是英文的,这就要求你有一定的英文基础。man 手册的内容很多,涉及了 Linux 使用过程中的方方面面,为了便于查找,是做了分册(分区段)处理的,在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数,涵盖了C标准函数库 |
4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:
$ man 1 ls
文件操作
查看文件
使用cat,tac和nl命令查看文件
使用cat,tac和nl命令查看文件。使用cat,tac和nl命令查看文件。
$ cat -n passwd
nl
命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。
这里简单列举它的常用的几个参数:
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)
使用more和less命令分页查看文件
more 是简单地分页查看工具
less 是more和vi的结合体,功能强大
使用head和tail命令查看文件
更直接的只看一行, 加上-n参数,后面紧跟行数:
$ tail -n 1 /etc/passwd
关于tail命令,不得不提的还有它一个很牛的参数-f,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用。
环境变量
PATH环境变量是Linux下程序执行的搜索路径,通常全局环境变量使用大写。环境变量仅在当前线程内有效。
查看PATH
$ echo PATH
添加值
$ PATH=$PATH:/home/shiyanlou/mybin
添加到zsh自启动执行
zsh的配置文件为.zshrc,bash的配置文件为.bashrc
$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
变量修改
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} | 从头向后开始匹配,删除符合匹配字串的最短数据 |
${变量名##匹配字串} | 从头向后开始匹配,删除符合匹配字串的最长数据 |
${变量名%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最短数据 |
${变量名%%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} | 将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} | 将符合旧字串的全部字串替换为新的字串 |
删除变量
$ unset path
环境变量修改立刻生效
$ source .zshrc
-----
$ . ./.zshrc # 第一个点后边必须跟绝对路径
文件搜索
whereis
whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate命令。
locate
它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:
$ locate /etc/sh
注意,它不只是在 etc 目录下查找并会自动递归子目录进行查找
查找 /usr/share/ 下所有 jpg 文件:
$ locate /usr/share/\*.jpg
注意要添加*号前面的反斜杠转义,否则会无法找到
如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,whereis 的-b,-m,-s同样可以是使用。
which
which本身是 Shell 内建的一个命令,我们通常使用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令:
$ which ls
find
find应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。find命令强大到,要把它将明白至少需要单独好几节课程才行,我们这里只介绍一些常用的内容。
在指定目录下搜索指定文件名的文件:
$ find /etc/ -name interfaces
注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action]
与时间相关的命令参数:
参数 | 说明 |
---|---|
-atime |
最后访问时间 |
-ctime |
创建时间 |
-mtime |
最后修改时间 |
下面以-mtime参数举例:
• -mtime n
: n 为数字,表示为在n天之前的”一天之内“修改过的文件
• -mtime +n
: 列出在n天之前(不包含n天本身)被修改过的文件
• -mtime -n
: 列出在n天之内(包含n天本身)被修改过的文件
• newer file
: file为一个已存在的文件,列出比file还要新的文件名
文件系统操作及磁盘管理
df
查看磁盘情况
$ df -h #以大小形式显示,而不是block块形式
du
查看文件夹大小
# 只查看1级目录的信息
$ du -h -d 0 ~
帮助命令
使用type可以判断命令类型,是内部命令,还是其他的
- type ls
- type vim
- type ls
help
zsh没有help命令,help命令用来显示shell内建命令的简要帮助信息。
外部命令也可以使用help命令
ls --help
man
man 手册中一共有这么几个章节
章节数 | 说明 |
---|---|
1 | Standard commands (标准命令) |
2 | System calls (系统调用) |
3 | Library functions (库函数) |
4 | Special devices (设备说明) |
5 | File formats (文件格式) |
6 | Games and toys (游戏和娱乐) |
7 | Miscellaneous (杂项) |
8 | Administrative Commands (管理员命令) |
9 | 其他(Linux特定的), 用来存放内核例行程序的文档。 |
info
如果man命令显示的信息还不够,可以用info命令。但zsh没有这个命令