-
区分文件和目录:
- ls -F
- ls -F -R:递归显示目录
-
仅改变文件的修改时间,而不修改文件的内容:
- touch filename;
-
使用 file 命令查看文件类型: ASCII text、 directory、 shell script
-
查询 history
- history
- ctrl + r:进入搜索模式;
-
linux命令行括号帮助含义
- 方括号内的表达式(“[” 和 “]”之间的字符)是可选(optional)的
- 尖括号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式
--单词
或-单字
7z <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>] 7z <命令行> [[选项]...] <档案名称(压缩包名称)> [<被压缩的文件名>...] [<@文件列表(如txt文件中的文件列表)...>] 实例分析: 7z a -tzip -p111 archive.zip txt.txt txt.txt文件压缩为archive.zip,压缩方式为zip 密码为111 7z x -tzip -p111 archive.zip 解压 密码为111 a为命令,命令至少要有一个 -t /-p为选项(switch),可选0个或多个,zip和111分别为-t和-p的参数,中间不需要空格 选项(如-r)放前放后都行
0. 常用 tricks
-
仅显示目录
- ls -l | grep “^d”:以 d 开头
- ls -F | grep “/$”:以 / 结尾
-
cd
cd -
:上次的目录;cd !$
:上次命令参数中的最后一个目录;cd !^
:上次命令参数中的第一个目录;- 重复调用上次命令中的参数
Esc + .
;
-
!!
:重复执行上一个命令; -
!num
:重复执行 history 中编号为 num 的命令; -
!?abc
:重复前一个包含abc
的命令,注意abc
的选择一定要足够特别,否则会有多项匹配,引发歧义;其实暗含一种搜索的感觉,搜索、匹配成功之后,直接执行。
命令行环境下还有一种更为强大的搜索方式,ctrl + r
:
(reverse-i-search)'':
,第一个飘号和单引号之间的内容为搜索的内容,冒号之后为匹配的内容; -
重复调用上次命令中的参数
Esc + .
;
1. type
显示关于命令类型的信息:
-
An executable program like all those files we saw in /usr/bin.
-
A command built into the shell itself.
$ type cd $ type type
-
A shell function.
-
An alias.
$ type ls ls is aliased to `ls --color=auto'
2. 修改上次执行的命令
-
删除多余部分;
% grep fooo /var/log/auth.log % ^o % grep foo /var/log/auth.log
-
替换(输错或少输):
# 替换 % cat myflie % ^li^il % cat myfile # 漏写 % ansible vod -m command -a 'uptim' % ^im^ime % ansible vod -m command -a 'uptime'
-
高级替换:
% ansible nginx -m command -a 'which nginx' % !:gs/nginx/squid % ansible squid -m command -a 'which squid' % ^nginx^squid^:G # zsh
3. 善用命令行输入历史
-
查询历史
$ echo $HISTSIZE $ echo $HISTFILE $ history $ history | less $ history 5
-
!$:上一条命令的最后一位参数
$ mkdir videos $ cd !$
-
!^:上一条命令的第一位参数
$ ls /usr/share/doc /usr/share/man $ cd !^
-
:t
:截取路径的结尾$ wget http://nginx.org/download/nginx-1.4.7.tar.gz $ tar -zxvf !$:t tar -zxvf nginx-1.4.7.tar.gz # 相当于取 basename
-
:r
:截取文件名$ unzip filename.zip $ cd !$:r cd filename
-
:e
:文件拓展名