Linux 命令行 Tricks

本文介绍了一系列Linux命令行的实用技巧,包括如何区分文件与目录、修改文件时间戳、查看文件类型、利用history命令进行搜索及命令重用等。此外,还详细解释了如何通过特殊符号和快捷键来提高命令行操作效率。
摘要由CSDN通过智能技术生成
  • 区分文件和目录:

    • 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:文件拓展名

references

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值