掌握了这些Linux命令,你的工作效率事半功倍

2020年12月11日13:57:20 1 1,018 ℃

写代码是一个既简单又复杂的工作,有编程大师说,写代码就像写诗,关键在于如何能够用最简洁的语言和逻辑写出最精彩的代码。今天阿汤博客就与大家分享一些Linux简单又实用的Linux命令,掌握了这些命令,可以帮助你提升工作效率,节约时间,达到事半功倍的效果。

1、tab

如果一定要从最基本、最好用的命令开始算起,不得不提到这个“tab”键,它能够帮助你补全可能的命令。

当你敲打某个命令时,敲击tab键,它会建议你几种可能的选项,然后你只要选择你想要的就好。

前提:已经安装bash-completion。

Centos:

$ yum -y install bash-completion

Ubuntu:

$ apt-get install bash-completion

例:输入命令yum,然后敲击tab键,会显示yum支持的参数。

[[email protected] ~]# yum 
check             groups            load-transaction  search
check-update      help              makecache         shell/
clean             history           provides          update
deplist           info              reinstall         upgrade
distro-sync       install           remove            version
downgrade         list              repolist

2、cd -

如果你现在在一个很长的目录路径中,想要移动到另一个完全不同的路径上的另一个目录, 然后你发现你不得不回到你之前的目录。此时,最好的办法就是键入这个命令,然后切换会上一个命令。这样您将回到上一个工作目录,而不需要键入长目录路径或复制粘贴它。

例:

[[email protected] network-scripts]# cd /usr/local/share/info/
[[email protected] info]# cd -
/etc/sysconfig/network-scripts
[[email protected] network-scripts]#

3、cd ~ 或 cd

cd ~这个命令可以帮助你从Linux命令行中的任何位置回归到你最开始的的主目录,当然你也可以直接食用cd命令回到主目录。

例:

[[email protected] network-scripts]# cd ~
[[email protected] ~]# 
[[email protected] network-scripts]# cd 
[[email protected] ~]#

4、分号";"

假如你要在一个命令后马上运行另一个命令,其实可以利用分号来实现在同一行中执行多个不同的命令,而不需要等到前面的命令执行完毕。用法:“command_1; command_2; command_3”。

例1:

[[email protected]  ~]# echo -n "阿汤博客";echo -n "地址是:";echo " 
阿汤博客地址是:http://www.amd5.cn

例2:

[[email protected] ~]# for i in `seq 1 9`;do echo ${i};done
1
2
3
4
5
6
7
8
9

5、&&

在第四条中,我们看到了如何同时执行多个不同命令,那么如果你想要让一个命令一定在另一个命令执行完毕后才开始执行该怎么操作呢?答案是,你可以用&&符号将前面一定要执行完成才开始执行下一个命令之间进行分离。用法:“command_1 &&  command_2”。

例1:

[[email protected] ~]# ping www.baidu2.com
ping: www.baidu2.com: 未知的名称或服务
[[email protected] ~]# [ $? -eq 0 ] && echo "可以ping通"
[[email protected] ~]# ping -c 1 www.baidu.com
PING www.baidu.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=54 time=34.9 ms
--- www.baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.981/34.981/34.981/0.000 ms
[[email protected] ~]# [ $? -eq 0 ] && echo "可以ping通"
可以ping通

例2:结合";" 合并命令。

[[email protected] ~]# ping -c 1 www.baidu.com &> /dev/null;[ $? -eq 0 ] && echo "可以ping通"
可以ping通
[[email protected] ~]# ping -c 1 www.baidu2.com &> /dev/null;[ $? -eq 0 ] && echo "可以ping通"
[[email protected] ~]#

6、ctrl+r

有些时候我们用了一个命令后,几个小时后会再用一次,可能这个命令很长,如果有一种命令能够快速找到自己之前的码字历史,是不是很好用呢?

你只要输入ctrl+r,再加上你要找的命令的一部分,Linux系统就会为你展示可能匹配的之前的命令。

例:输入ctrl+r以后,再输入baidu.com,就出现了之前使用过的命令。

(reverse-i-search)`baidu.com': ping -c 1 www.baidu.com &> /dev/null;[ $? -eq 0 ] && echo "可以ping通"

7、ctrl+s 与 ctrl+q

你可能早已习惯于使用Ctrl + S进行保存。 但是如果您在Linux终端上使用该命令,它却会冻结你的设备。当然,这种手误不是什么大问题,无需关机重启,你只要使用ctrl+Q在解锁终端设备就好了。

8、ctrl+a 与 ctrl+e

假设你输入了一个长命令,中途你意识到你必须在开始时改变一些东西。 你可能会使用几个左箭头不断点击,然后移动到这一行的开头。但有一种更快的方式,就是可以使用Ctrl + a转到行的开头,Ctrl + e可以转到最后。

9、z命令

一般而言,服务器日志都需要被压缩,然后节省磁盘空间的。而有时候你想查看压缩文件中的日志,只能将压缩文件传到本地,然后解压缩才能查看。但是,z命令提供了一种无需解压缩,而直接查看命令的方法。如 zless, zcat, zgrep等命令直接查看相应的日志文件。

例:

[[email protected] test]# zcat www.amd5.cn.gz 
1、阿汤博客地址:http://www.amd5.cn。
2、zless, zcat, zgrep命令非常方便。
[[email protected] test]# zgrep '阿汤博客' www.amd5.cn.gz 
1、阿汤博客地址:http://www.amd5.cn。
[[email protected] test]# zless www.amd5.cn.gz 
1、阿汤博客地址:http://www.amd5.cn。
2、zless, zcat, zgrep命令非常方便。
www.amd5.cn.gz (END)

10、叹号"!"

!!:可以调用上一条使用过的命令。

例:

[[email protected] ~]# which bash
/usr/bin/bash
[[email protected] ~]# !!
which bash
/usr/bin/bash

!$:调用上一条命令最后一个参数。

例:

[[email protected] ~]# ls /usr/bin/bash
/usr/bin/bash
[[email protected] ~]# ls -la !$
ls -la /usr/bin/bash
-rwxr-xr-x. 1 root root 964608 10月 31 2018 /usr/bin/bash

!^:调用上一条命令第一个参数,适用于参数比较长的场景。

例:

[[email protected] ~]]# ls /usr/bin/sh /usr/bin/bash
/usr/bin/bash  /usr/bin/sh
[[email protected] ~]]# ls -ls !^
ls -ls /usr/bin/sh
0 lrwxrwxrwx. 1 root root 4 5月   9 2019 /usr/bin/sh -> bash

!*:调用上一条命令的所有参数。

例:

[[email protected] ~]]# fin ./ -name 'www.amd5.cn.gz'
-bash: fin: 未找到命令
[[email protected] ~]]# find !*
find ./ -name 'www.amd5.cn.gz'
./www.amd5.cn.gz

![命令名]:[参数号];调用上一条命令的指定参数,适用于参数比较长的场景。

例:

[[email protected] ~]]# ls /usr/bin/bash /usr/bin/sh /usr/bin/wc
/usr/bin/bash  /usr/bin/sh  /usr/bin/wc
[[email protected] ~]]# ls -la !ls:2
ls -la /usr/bin/sh
lrwxrwxrwx. 1 root root 4 5月   9 2019 /usr/bin/sh -> bash

!n:调用history历史命令,n表示历史命令序号。-n表示倒数第几条。

例:

[[email protected] ~]]# !1259
which bash
/usr/bin/bash
[[email protected] ~]]# !-1
which bash
/usr/bin/bash

![关键字]:调用上一条以关键字开头的命令,

例:

[[email protected] ~]# ls /usr/bin/bash /usr/bin/sh /usr/bin/wc
/usr/bin/bash  /usr/bin/sh  /usr/bin/wc
[[email protected] ~]# !ls
ls /usr/bin/bash /usr/bin/sh /usr/bin/wc
/usr/bin/bash  /usr/bin/sh  /usr/bin/wc

11、alias

我们可利用alias,把一些经常使用,比较复杂的命令设置为自定指令的别名,方便我们自己使用。若仅输入alias,则可列出目前所有的别名设置。alias的生效仅该次登录的操作。若要每次登录是即自动设好别名,可在.profile或.cshrc中设定指令的别名。

例:

[[email protected] ~]# alias blog="echo -n "阿汤博客";echo -n "地址是:";echo "http://www.amd5.cn""
[[email protected] ~]# blog
阿汤博客地址是:http://www.amd5.cn

12、Ctrl+c

这个看起来太像复制命令,但实际上,他是一个快速结束某个命令或进程的方法。虽然这听起来有些怪,但是如果你在前台运行一个命令,但是你想退出,你可以使用Ctrl+C来快速结束这个命令。

13、xargs

xargs命令能够捕获一个命令的输出,然后传递给另外一个命令。之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有这个必要,所以就有了 xargs 命令。

xargs命令格式:

somecommand |xargs -item  command

xargs命令参数:

-a file 从文件中读入作为sdtin

-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。

-p 当每次执行一个argument的时候询问一次用户。

-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。

-t 表示先打印命令,然后再执行。

-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。

-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。

-s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。

-L num 从标准输入一次读取 num 行送给 command 命令。

-l 同 -L。

-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。

-x exit的意思,主要是配合-s使用。。

-P 修改最大的进程数,默认是1,为0时候为as many as it can 。

例:我们需要查找某个文件夹下面所有的文件,找到所有包含数据库信息的文件,并更新数据库root的密码。

[[email protected] ~]# grep -ilr 3306 /app/wwwroot/ | xargs -n 1 -- sed -i '[email protected]:[email protected]:[email protected]'

14、man

有些时候,我们可能忘记了某个命令的使用方法,或者某个参数的使用规则,可以使用 man 命令查看此命令的详细使用手册。

使用方法:man 命令

例:

[[email protected] ~]# man grep

掌握了这些Linux命令,你的工作效率事半功倍

15、help

应该说这是个万能的命令,你几乎可以在任何时候输入这个命令寻求帮助,毕竟几乎所有的命令行工具都带有帮助页面,显示如何使用命令。有些命令获取帮助是:command --help。help输出内容为man 命令的精简内容。

例:

[[email protected] ~]# help cd
cd: cd [-L|[-P [-e]]] [dir]
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    
    Options:
        -Lforce symbolic links to be followed
        -Puse the physical directory structure without following symbolic
    links
        -eif the -P option is supplied, and the current working directory
    cannot be determined successfully, exit with a non-zero status
    
    The default is to follow symbolic links, as if `-L' were specified.
    
    Exit Status:
    Returns 0 if the directory is changed, and if $PWD is set successfully when
    -P is used; non-zero otherwise.
[[email protected] ~]# cd --help
-bash: cd: --: 无效选项
cd: 用法:cd [-L|[-P [-e]]] [dir]
精选全网爆款产品,爆品销量榜单,全场低至0元起,还有更多云产品免费试用,带你0门槛上云

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar pornpics 0

      Wish You All The Best In 2021!