都是平时使用的或者网上收集的比较实用的命令或小技巧,有些命令在 windows 中也是通用的。
1,tab 键补全
这是一个小技巧,windows 和 linux 通用。
当需要输入文件或文件夹名称时,不需要打全,只需要输入名称的前几个字符,然后按tab键即可。如果当前路径下只有一个文件,不需要输入,可以直接按tab键,会自动补全文件名。
2,返回 home 目录或根目录
# 返回 home 目录
cd ~
# 或者输入cd之后直接回车
cd
#返回根目录
cd /
3,列出目录文件的详细信息
ls -al
# 或
ll
4,返回前一个路径
cd -
注意: 这里不是返回上一级目录(cd ../
)的意思,是返回在跳转到当前目录之前的上一个路径,比如你打开终端时,默认在 home
目录中,使用 cd /abc
跳转到了根目录下的 abc
目录,此时,使用 cd -
,可以返回到 home
目录中
5,同时执行多条命令
# 多条命令之间,使用 ; 隔开 (命令执行没有先后顺序)
cd ~ ; ls
6,快速执行上一条命令
ls -al
# 重复上一条命令
!!
7, 按顺序执行命令
# 会在 ls 命令执行完成之后再执行 cd
ls && cd ~
8,find 命令限制查找深度
# find 命令默认查找当前目录和所有子目录 -maxdepth 参数可以限制查找深度
# 查找当前目录中的所有 txt 文件 ".txt" 的引号不能省略。
find . -maxdepth 1 -name "*.txt"
9,字符串变量值的截取 (转载自: 查看原文 )
变量的截取,经常用到的是${}
,##
和 %%
几个特殊符号。假设我们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
,可以用 ${ }
分别替换得到不同的值:
写法 | 含义 | 结果 |
---|---|---|
${file#*/} |
删掉第一个 / 及其左边的字符串 |
dir1/dir2/dir3/my.file.txt |
${file##*/} |
删掉最后一个 / 及其左边的字符串 | my.file.txt |
${file#*.} |
删掉第一个 . 及其左边的字符串 |
file.txt |
${file##*.} |
删掉最后一个 . 及其左边的字符串 |
txt |
${file%/*} |
删掉最后一个 / 及其右边的字符串 |
/dir1/dir2/dir3 |
${file%%/*} |
删掉第一个 / 及其右边的字符串 |
(空值) |
${file%.*} |
删掉最后一个 . 及其右边的字符串 |
/dir1/dir2/dir3/my.file |
${file%%.*} |
删掉第一个 . 及其右边的字符串 |
/dir1/dir2/dir3/my |
${file:0:5} |
提取最左边的 5 个字节 |
/dir1 |
${file:5:5} |
提取第 5 个字节右边的连续5个字节 |
/dir2 |
记忆的方法为:
-
#
是 去掉左边(键盘上#
在$
的左边) -
%
是去掉右边(键盘上%
在$
的右边) - 单一符号是最小匹配
- 两个符号是最大匹配
也可以对变量值里的字符串作替换:
写法 | 含义 | 结果 |
---|---|---|
${file/dir/path} |
将第一个 dir 替换为 path
|
/path1/dir2/dir3/my.file.txt |
${file//dir/path} |
将全部 dir 替换为 path
|
/path1/path2/path3/my.file.txt |
利用 ${ }
还可针对不同的变量状态赋值(沒设定、空值、非空值):
写法 | 含义 |
---|---|
${file-my.file.txt} |
假如 $file 沒有设定,則使用 my.file.txt 作传回值。(空值及非空值時不作处理) |
${file:-my.file.txt} |
假如 $file 沒有設定或為空值,則使用 my.file.txt 作傳回值。 (非空值時不作处理) |
${file+my.file.txt} |
假如 $file 設為空值或非空值,均使用 my.file.txt 作傳回值。(沒設定時不作处理) |
${file:+my.file.txt} |
若 $file 為非空值,則使用 my.file.txt 作傳回值。 (沒設定及空值時不作处理) |
${file=my.file.txt} |
若 $file 沒設定,則使用 my.file.txt 作傳回值,同時將 $file 賦值為 my.file.txt 。 (空值及非空值時不作处理) |
${file:=my.file.txt} |
若 $file 沒設定或為空值,則使用 my.file.txt 作傳回值,同時將 $file 賦值為 my.file.txt 。 (非空值時不作处理) |
${file?my.file.txt} |
若 $file 沒設定,則將 my.file.txt 輸出至 STDERR 。 (空值及非空值時不作处理) |
${file:?my.file.txt} |
若 $file 没设定或为空值,则将 my.file.txt 输出至 STDERR 。 (非空值時不作处理) |
${#var} |
可计算出变量值的长度,${#file} 可得到 27 ,因为 /dir1/dir2/dir3/my.file.txt 是27 个字节 |