fzf 一种进行模糊查找的命令行工具
主页:https://github.com/junegunn/fzf
我的主机是 Kali,通过apt进行安装fzf,并进行配置。
# apt install fzf
# apt show fzf
通过参考/usr/share/doc/fzf/README.Debian来进行快速配置快捷键和自动补全。
提示:如果找不到completion.bash,则需要git clone --depth=1 git@github.com:junegunn/fzf.git
从shell文件夹中将 completion.bash拷贝到相应的位置即可完成配置bash的自动补全。
# fzf // 可以通过搜索来查找某个文件或文件夹是否存在
# vim $(fzf) // 可以通过模糊搜索 或 上下键去选择,然后打开某个文件
# cp $(fzf) ~/.config/pipewire // 可以通过模糊搜索 或 上下键去复制某个文件到某个目录中
# fzf --preview 'cat {}' // 可以通过模糊搜索 或 上下键去实时查看各个文件的内容
# ls **<TAB> // **和<TAB>之间不要有空格
# vim **<TAB> // **和<TAB>之间不要有空格,然后选择你要打开的文件即可
# kill -9 **<TAB> // **和<TAB>之间不要有空格,然后选择你将要kill的进程即可
ctrl+r可以进行历史命令搜索
man
我们一般情况下不知道某个命令如何使用以及相关的实例,需要man命令去查询,这里简单介绍一下如何使用man命令
# man man // 来查看如何使用man
会看到所有的man分成了9大类,如下图所示:
可执行程序或shell命令是1 ,系统调用是2 ,库函数是3,等等。
会在底部看到 q或h的选项,如下图所示:
我们直接点击 h 进入帮助界面,可以看到很多键,比如:向下翻一页(f),向上翻一页(b),简单的搜索/ ,其他按键和vim的快捷键差不多。
这里说一个重点 -k ,用于搜索某个关键字的相关信息,包括可执行程序、shell命令、系统调用、库函数等等,与不加-k的区别在于,我们加上-k可以全局的去看和搜索的关键字的各种相关的信息,而不加-k只会是可执行程序、shell命令或系统调用等某一个方面。例如:
# man ls // 将直接输出 ls 命令的介绍,而不会显示其他与ls相关的内容
# man -k ls // 将会显示与ls相关的所有文档,然后你从里面再挑选某一个
此时你会发现有很多相关项显示出来,所以这个 -k 相当有用,会搜索相关简短的描述或手册信息。括号中的数字,可以在下一次 man中进行使用,比如我想看 callrpc
# man 3 callrpc //这样即可查看
快速移动光标
<C-a> 移动到行首
<C-e> 移动到行尾
<C-h> 删除字符,与backspace一样
<Alt-f> 按字向后移动
<Alt-b> 按字向前移动
<C-f> 按字符向后移动 // 避免使用上下左右键,可以使手不离键盘主要区域
<C-b> 按字符向前移动 // 避免使用上下左右键,可以使手不离键盘主要区域
<C-u> 删除当前位置到行首的字符
<C-k> 删除当前位置到行尾的字符
<C-w> 删除当前位置到这个字的首字符
<C-y> 粘贴之前被<C-u>或<C-k>或<C-w>删除的命令
<C-l> 清屏
<C-c> 取消执行
<C-r> 从命令历史中 搜索命令,此时输入部分命令,则显示一个最新的匹配的命令,回车即可。否则再次 按 <C-r> 选择下一个匹配的命令,然后回车即可。ESC退出搜索
<C-d> 退出终端terminal
<C-S-c> 在命令行内复制
<C-S-v> 在命令行内粘贴
<C-S-t> 打开一个新的tab选项卡,这个命令只能在 图形化的命令行终端进行,无法在后台shell命令行执行
同一行执行多个命令:
$ git add -A ; git commit -m "add something" ; git push // 使用;连接多个命令
$ git add -A && git commit -m "add something" && git push //使用&&可以连接多个命令并在指令错误的时候暂停执行后续的指令
set -o emacs
set -o vi
Readline vi Mode (Bash Reference Manual)
NerdTree
git-rev-parse
这个指令通常是用于输出指定节点的hash值,除了这些还有很多选项,例如 --short 则显示较短的hash值。
- git rev-parse --symbolic --branches //显示分支
- git rev-parse --symbolic --tags //显示tag
- git rev-parse HEAD //显示HEAD提交的SHA1值
- git rev-parse --abbrev-ref HEAD //显示HEAD所在的分支
- git rev-parse --short HEAD //显示HEAD提交的SHA1值得缩短值
- git rev-parse --verify v1.0 //验证指定的引用是否存在
- git rev-parse --show-prefix //显示相对于工作区根目录的相对路径
- git rev-parse --show-toplevel //显示工作区根目录
- git rev-parse --git-dir //显示版本库.git命令所在的位置
- git rev-parse --show-cdup //显示从当前目录(cd)后退(up)到工作区的根目录的深度
- git rev-parse --local-env-vars //显示git环境变量列表的本地库
git rev-list A
git rev-list A B --not $(git merge-base --all A B)
--since=<date>
tar
# tar -xjf all.tar.bz2 # tar -xZf all.tar.z
-c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件
-z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出
tar caf 压缩包.tar.xz *.txt(要压缩的文件)
压缩时tar.gz用z,tar.xz用J(注意大小写);如果想根据后缀自动选择,必须用a,否则只会是普通的tar 指定解压路径用-C 1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压
tr命令
tr is short for translate
要使用tr命令替换字符,只需提及要在第一组中替换的字符和要在第二组中替换后放置的字符
tr还可以从文件中获取其输入。 当要在大量文本上进行翻译时,这很有用。 重定向(<)运算符用于提供文件输入 tr 'a' '1' < input.txt
tr 'a' '1' < input.txt > output.txt
tr命令最常见的用途之一是将文本从小写转换为大写,反之亦然
tr可以从文本中删除一组字符。 这是通过将tr与-d命令一起使用来实现的
将多个字符压缩为一个可能有助于压缩文本
echo "apples and bananas" | tr -s 'p'
tr -cs "[:alpha:]" "\n" < input.txt | sort | uniq -c
cat file.txt | tr –s ‘\n’ ‘ ‘
linux tr 命令_在Linux中使用tr命令玩角色_cunchi4221的博客-CSDN博客
统计磁盘使用情况
以下命令统计/usr/share
目录下各个目录所占用的磁盘空间:
du -sh /usr/share/* | sort -hr
du
是磁盘空间分析工具, du -sh
将目录的大小顺次输出到标准输出, 继而通过管道传送给sort
. sort
是数据排序工具, 其中的选项-n
表示按照数值进行排序, 而-r
则表示从大到小输出. sort
可以将这些参数连写在一起,而大部分情况使用 -h表示按照人类可读的形式进行显示。
然而我们发现, /usr/share
中的目录过多, 无法在一个屏幕内显示. 此时, 我们可以再使用一个命令: more
或less
.
如果输入是一个点,则表示只是统计这个文件夹的大小,而不是这个文件夹下的子文件夹, 这一点是很重要的,所以查看其他子文件夹需要输入相关的正则表达式。
du -sh .
du -sh /usr/share/* | sort -hr | more