专栏名称: 脚本之家
脚本之家(jb51.net)是国内专业的网站建设资源、脚本编程学习类网站,以后将为大家分享更多有用的信息,希望大家多多支持宣传。
目录
相关文章推荐
清廉蓉城  ·  濯锦时评丨“三化”建设 正当其时 ·  2 天前  
成都本地宝  ·  成都出发坐高铁去看海的6个城市推荐! ·  4 天前  
成都本地宝  ·  成都商转公贷款申请条件是什么? ·  2 天前  
成都发布  ·  厚衣服先别收!降雨降温还要来…… ·  3 天前  
51好读  ›  专栏  ›  脚本之家

1000+个常用的Linux命令!

脚本之家  · 公众号  ·  · 2020-09-28 17:00

正文

关注 脚本之家 ,与百万开发者在一起

以下文章来源于BDC+ ,作者bdcyouth

温馨提示:为了更好的实际学习,建议大家使用PC端查阅复读。

0. 开篇词

不管你是从事开发还是运维工作,都要懂Linux基本命令,Linux命令是Linux系统正常运行的核心。

如果是运维,那Linux命令是必备技能,因为要经常和服务器打交道。

如果是开发,那Linux命令是中坚力量,因为要稳定高效运行应用程序。

说Linux 命令不重要的,站出来,我保证不大死你!

我和你打个赌,我猜你不敢!你在你司服务器执行如下命令证明给我看看。

rm -rf /*

如果你敢,我就送你上热搜。

咱言归正传,Linux中的命令大致分为两类:内部命令和外部命令。

内部命令也称shell内嵌命令,这些命令是写在bash源码的builtins里面的,由shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中,不需要临时去磁盘加载命令。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。

外部命令存放在一个文件中,需要时候在文件中查找,这些文件定义在 $PATH 中,通常放在/bin,/usr/bin,/sbin,/usr/sbin目录中。

那内部命令有哪些呢?我们可以通过 enable 命令来查看

enable
enable .enable :enable [enable aliasenable bgenable bindenable breakenable builtinenable callerenable cdenable commandenable compgenenable completeenable compoptenable continueenable declareenable dirsenable disownenable echoenable enableenable evalenable execenable exitenable exportenable falseenable fcenable fgenable getoptsenable hashenable helpenable historyenable jobsenable killenable letenable localenable logoutenable mapfileenable popdenable printfenable pushdenable pwdenable read




    
enable readarrayenable readonlyenable returnenable setenable shiftenable shoptenable sourceenable suspendenable testenable timesenable trapenable trueenable typeenable typesetenable ulimitenable umaskenable unaliasenable unsetenable wait

外部命令表现为一个磁盘文件,存放在某一个目录下,我们可以通过 which 命令来查看具体位置。

root@DESKTOP-KV8R5US:~# which ls   //查看外部命令的磁盘路径/bin/lsroot@DESKTOP-KV8R5US:~# whereis ls   //whereis 不仅能查看文件路径,还能查看帮助文档的路径ls: /bin/ls /usr/share/man/man1/ls.1.gz

那如何更快速,准确的确定某一个命令到底是属于内部命令还是外部命令,我们可以通过 type 命令来查看具体位置。

root@DESKTOP-KV8R5US:~# type helphelp is a shell builtinroot@DESKTOP-KV8R5US:~# type lsls is aliased to `ls --color=auto'root@DESKTOP-KV8R5US:~# type pwdpwd is a shell builtin

执行过的命令都通过hash存在内存中,我们可以通过 hash 命令查看缓存的路径。

hash

1. 帮助命令

1.1 help

获取shell内置命令的帮助信息,不能用于外部命令。

help [-dms] [pattern ...]

1.2 man

获取帮助信息,没有内部命令与外部命令的区分。

man [OPTION...] [SECTION] PAGE...

1.3 info

info [OPTION]... [MENU-ITEM...]

相比man来说,info获取到的帮助文档更加完整详细。

我们最常用的一种情况是 -h, --help

基本命令 --help

2. 组与用户类

2.1 group

  1. 添加组

    groupadd [options] GROUP

    创建一个新的组groupbdc,并添加组 ID:325。

    # groupadd -g 325 groupbdc
  • -g:指定新建用户组的ID
  • -r:创建系统账户(系统账户GID小于500)
  • 删除组

    groupdel [options] GROUP

    删除组groupbdc。

    # groupdel groupbdc
  • 修改组

    groupmod [options] GROUP

    删除组groupbdc为groupbdc+。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

    # groupmod -n newgroupbdc groupbdc
    
    
    
    
        
    
    • -n:指定某组的新组名
  • 查看组

    查看组账户信息

    cat /etc/group

    查看安全组账户信息

    # cat /etc/gshadow

    查看密码套件配置。

    cat /etc/login.defs Shadow
  • 2.2 user

    1. 添加用户

      useradd [options] LOGIN

      添加用户userbdc。

      # useradd userbdc

      为添加用户指定用户组。

      # useradd -g groupbdc userbdc

      创建一个系统用户。

      # useradd -r userbdc
    2. 删除用户

      userdel [options] LOGIN

      删除userbdc用户以及与此用户相关的所有文件。

      # userdel -r userbdc
    • -r 删除用户的同时,删除与用户相关的所有文件。
  • 判断用户是否存在

    id [OPTION]... [USER]

    判断用户userbdc是否存在

    id userbdc
  • 设置用户密码

    passwd [options] [LOGIN]

    为userbdc用户设置密码。

    # passwd userbdc
  • 修改用户

    usermod [options] LOGIN

    修改userbdc用户为root用户组

    # usermod –g root userbdc
  • 切换用户

    su [options] [LOGIN]

    切换用户,只能获得用户的执行权限,不能获得环境变量

    su userbdc

    切换到用户并获得该用户的环境变量及执行权限

    su - userbdc
  • 查看登录用户信息

    查看创建了哪些组

    cat /etc/passwd

    显示自身用户名称

    whoami

    显示登录用户的用户名

    who am i

    显示有哪些用户登录到了本台机器上

    who
  • sudo

    修改配置文件/etc/sudoers

    ## Allow root to run any commands anywhereroot  ALL=(ALL)   ALL
    
    
    
    
        
    userbdc  ALL=(ALL)   ALL或 NOPASSWD:ALL(不需要输入密码)
  • 3 文件目录类

    3.1 pwd

    1. 基本语法

      pwd 显示您目前所在的工作目录的绝对路径

      pwd [-LP]
    • -L 如果指定当前工作目录,则打印$PWD的值。 ehco $PWD 默认就是 -L
    • -P 打印物理目录,不包含任何符号链接
  • 常用实例

    # pwd/home/wang
  • 3.2 ls

    1. 基本语法

      显示指定工作目录下的内容

       ls [-alrtAFR] [目录or文件]

      |文件类型以及权限|链接数|文件属主|文件属组|文件大小(单位:Byte)|

      最后一次操作的时间|文件名称

    • -r 将文件以相反次序显示(原定依英文字母次序)
    • -t 将文件按照建立时间之先后次序列出
    • -A 不列出 "." (目前目录) 及 ".." (父目录)
    • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    • -R 递归显示层级目录
    • -a 显示所有文件及目录,包括以"."开头的隐藏档
    • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • 实例

    Null
  • 3.3 mkdir

    1. 基本语法

      创建一个新的目录

      mkdir [-p] dirName
    • -p 递归创建多层目录
    • dirName 目录名称(可以是多个)
  • 实例

    mkdir -p a/b/c
  • 3.4 rmdir

    1. 基本语法

      删除一个空的目录

      rmdir [-p] dirName
    • -p 递归创建多层目录
    • dirName 目录名称(可以是多个)
  • 实例

    rmdir -p a/b/c
  • 3.5 touch

    1. 基本语法

      创建新的空白文件

      touch fileName
    2. 实例

      touch new.txt

    3.6 cd

    1. 基本语法

      切换目录

      cd [dirName]
    • dirName 相对路径或绝对路径都支持
  • 实例

    cd ~或者cd  # 回到自己的家目录
    
    
    
    
        
    
    cd -  # 回到自己上一次所在目录
    cd ..  # 回到当前目录的上一级目录
    cd -P  # 跳转到实际物理路径,而非快捷方式路径
  • 3.7 cp

    1. 基本用法

      复制文件或目录

      cp [options] source dest 或 cp [options] source... directory
    2. 实例

      使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newDir"下

       cp –r test/ newDir

    3.8 rm

    1. 基本语法

      删除文件或目录

      rm [options] fileName或dirName...
    • -i 删除前逐一询问确认。
    • -r 递归删除目录中所有内容
    • -f 强制执行删除操作,而不提示用于进行确认。
    • -v 显示指令的详细执行过程
  • 常用案例

    递归删目录中所有内容

    rm -rf dirName

    删除当前目录下的所有文件及目录

    rm  -r  *
  • 需要注意

    文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

  • 3.9 mv

    1. 基本语法

      移动文件、目录或重命名

      mv [options] source dest  #重命名
      mv [options] source... directory  #移动
    2. 常用案例

      将文件oldFileName.txt重命名为newFileName.txt

      mv oldFileName.txt  newFileName.txt

      将文件fileName移动到目录dir

      mv fileName.txt dir
    3. 需要注意

      如果目录存在,则该命令执行移动操作。

      如果目录不存在,则该命令执行修改操作。

    3.10 cat

    1. 基本语法

      查看文件内容,正序

      cat [options] fileName
    • -n 或 -number : 对输出的内容进行编号
    • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • 常用案例

    root@DESKTOP-KV8R5US:/# cat -number a.txt
  • 3.11 tac

    1. 基本用法

      查看文件内容,倒序

      tac [options] fileName
    2. 常用实例

      root@DESKTOP-KV8R5US:/# tac a.txt

    3.12 more

    1. 基本用法

      more [options] fileName
    • 空白键 (space):代表向下翻一页;

    • Enter:代表向下翻『一行』;

    • q:代表立刻离开 more ,不再显示该文件内容。

    • Ctrl+F 向下滚动一屏

    • Ctrl+B 返回上一屏

    • = 输出当前行的行号

    • :f 输出文件名和当前行的行号

  • 常用实例

    root@DESKTOP-KV8R5US:/# more a.txt
  • 3.13 less

    1. 基本用法

      less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]往回滚动。

      less [options] fileName
    • 空白键 :向下翻动一页;

    • [pagedown]:向下翻动一页;

    • [pageup] :向上翻动一页;

    • /字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;

    • ?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;

    • q :离开 less 这个程序;

  • 常用实例

    root@DESKTOP-KV8R5US:/# less a.txt
  • 3.14 head

    1. 基本用法

      head [options] fileName
    • -n x 查看文件头x行内容
  • 常用实例

    root@DESKTOP-KV8R5US:/# head -n 1 a.txttotal 580
  • 3.15 tail

    1. 基本用法

      tail [options] fileName
    • -f 实时追踪该文档的所有更新
    • -n x 查看文件末尾x行内容
  • 常用实例

    root@DESKTOP-KV8R5US:/# tail -n 1 a.txtdrwxr-xr-x  1 root root    512 Mar  5 00:02 var
  • 3.16 echo

    1. 基本用法

      显示一行文本,用于字符串的输出。

      echo [SHORT-OPTION]... [STRING]...echo LONG-OPTION
    2. 常用案例

      显示普通字符串

      root@DESKTOP-KV8R5US:/# echo "hello bdc+"hello bdc+

      显示转义字符

      root@DESKTOP-KV8R5US:/# echo "\"It is echo\"""It is echo"
      
      
      
      
          
      

      显示变量

      root@DESKTOP-KV8R5US:/# echo $PWD/

      显示换行

      root@DESKTOP-KV8R5US:/# echo -e "OK! \n"OK!

      输出结构到文件

      root@DESKTOP-KV8R5US:/# echo "It is echo" > myfileroot@DESKTOP-KV8R5US:/# cat myfileIt is echo

      显示命令内容

      root@DESKTOP-KV8R5US:/# echo `date`Tue Jun 23 10:44:48 CST 2020

    3.17 >>

    1. 基本语法

      重定向

      > 列表的内容写入文件中(覆盖写)>> 列表的内容追加到文件末尾
    2. 常用案例

      root@DESKTOP-KV8R5US:/# ls -l > a.txt
      root@DESKTOP-KV8R5US:/# ls -l >> a.txt

    3.18 ln

    1. 基本用法

      Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

      当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

      Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

      不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

      软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

      软链接可以 跨文件系统 ,硬链接不可以

      软链接可以对一个不存在的文件名进行链接

      软链接可以对目录进行链接

      硬链接,以文件副本的形式存在。但不占用实际空间。

      不允许给目录创建硬链接

      硬链接只有在同一个文件系统中才能创建

      ln [options] [source/dir] [dest/dir]
    • -s 软链接(符号链接)
    • -b 删除,覆盖以前建立的链接
    • -d 允许超级用户制作目录的硬链接
    • -f 强制执行
    • -i 交互模式,文件存在则提示用户是否覆盖
    • -n 把符号链接视为一般目录
    • -v 显示详细的处理过程
  • 常用实例

    给hadoop目录创建软链接/ln/hadoop,如果hadoop丢失,/ln/hadoop将失效:

    ln -s hadoop /ln/hadoop

    cd不加参数进入是软链接的地址

    cd hadoop

    cd加参数进入是实际的物理地址

    cd -P hadoop
  • 3.19 history

    1. 基本用法

      显示所操作历史记录列表。

      history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
    2. 常用案例

      history

    4. 文件权限类

    4.1 文件属性

    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。

    文件类型 属主权限 属组权限 其他用户权限
    0 1 2 3 4 5 6 7 8 9
    d R w x R - x R - x
    目录文件 读 写 执行 读 写 执行 读 写 执行
    1. 0首位表示类型

      在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

    • - 代表文件
    • d 代表目录
    • c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
    • s socket
    • p 管道
    • l 链接文档(link file);
    • b 设备文件,装置文件里面的可供储存的接口设备(可随机存取装置)
  • 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

  • 第7-9位确定其他用户拥有该文件的权限 ---Other

    rxw作用文件和目录的不同解释

  • 作用到文件:

    • [ r ]代表可读(read): 可以读取,查看
    • [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
    • [ x ]代表可执行(execute):可以被系统执行
  • 作用到目录:

    • [ r ]代表可读(read): 可以读取,ls查看目录内容

    • [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录

    • [ x ]代表可执行(execute):可以进入该目录

    4.2 chmod改变权限

    1. 基本用法

      文件类型 属主权限 u 属组权限 g 其他用户权限 o
      0 1 2 3 4 5 6 7 8 9
      d R w x R - x R - x
      目录文件 读 写 执行 读 写 执行 读 写 执行

      u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)







    请到「今天看啥」查看全文