• 我记不住的那些命令(不断更新中)


    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 **                            //  **和之间不要有空格

    # vim **                         //  **和之间不要有空格,然后选择你要打开的文件即可

    # kill -9 **                      //  **和之间不要有空格,然后选择你将要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                   //这样即可查看

    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=

    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将目录的大小顺次输出到标准输出, 继而通过管道传送给sortsort是数据排序工具, 其中的选项-n表示按照数值进行排序, 而-r则表示从大到小输出. sort可以将这些参数连写在一起,而大部分情况使用 -h表示按照人类可读的形式进行显示。

    然而我们发现, /usr/share中的目录过多, 无法在一个屏幕内显示. 此时, 我们可以再使用一个命令: moreless.

    如果输入是一个点,则表示只是统计这个文件夹的大小,而不是这个文件夹下的子文件夹, 这一点是很重要的,所以查看其他子文件夹需要输入相关的正则表达式。

    1. du -sh .
    2. du -sh /usr/share/* | sort -hr | more
  • 相关阅读:
    基于SNAT+DNAT发布内网K8S及Jenkins+gitlab+Harbor模拟CI/CD的综合项目
    【高并发】SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)
    关于语雀 23 日故障的公告
    Linux 文件操作接口
    Spring Security漏洞防护—HttpFirewall和 HTTPS
    【iOS ARKit】网络传输 ARWorldMap
    数据库的三种日志:redo log、binlog和undo log
    LeetCode 之 移除元素
    【文本挖掘】关键词提取
    java基于微信小程序的讲座预约系统的研究与实现
  • 原文地址:https://blog.csdn.net/u010566813/article/details/131401804