linux常用命令简介,分成几大类,作为平时的一个累积

用户与文件

  1. chown改变文件的所有者和所属组

    1
    chown [OPTION]... [OWNER]:[GROUP] FILE...

    如果递归地改变目录和其下面的所有目录和文件

    1
    chown -R learner:learner dir1
  2. whereis 查找系统命令

    1
    whereis [option] name...

    命令作用是显示命令名称的绝对路径和命令的手册位置

  3. du 估算文件占用空间大小

    1
    du [OPTION]... [FILE]...

    查看文件的大小
    输出的结果第一列表示所占空间大小(单位是KB)。第二列是文件名。
    可以使用选项-h 的方式显示:

    1
    2
    3
    4
    [weblogic@localhost ~]$ du bin/
    32 bin/
    [weblogic@localhost ~]$ du -h bin/
    32K bin/

    当使用-s选项作用在目录上时,值显示总用量。不用时则显示该目录下的每个文件

  4. head tail more less 查看内容

    1
    [root@localhost /]# head -n 3 /etc/passwd
    • head从文件的第一行开始显示,默认显示十行,选项-n可以指定行数
    • tail从文件的最后一行开始显示,-n同上
    • more和less两个命令的作用都是分页显示文件内容,区别是more不允许往回翻,只能用enter键和空格键分别显示下一行和下一页(类似于man命令),less允许往回翻,向上箭头和pageup按键也是可用的。
  5. ln 在文件间创建连接

    1
    ln [OPTION]... TARGET LINK_NAME
    • 硬链接

      1
      2
      3
      4
      5
      6
      [root@centos7 temp]# ln file1 file2
      [root@centos7 temp]# ls -i file1
      856994 file1
      [root@centos7 temp]# ls -i file2
      856994 file2
      [root@centos7 temp]#

      命令ls -i显示出两个文件的inode号是一样的,对系统来说,file1与file2其实是同一个文件。当删除一个文件的时候,只有文件的硬链接数为0时,这个文件才被删除。

    • 软连接(soft link、symbolic link)

      1
      2
      3
      [root@centos7 temp]# ln -s file3 file4
      [root@centos7 temp]# ls -l file4
      lrwxrwxrwx 1 root root 5 10月 26 12:53 file4 -> file3

      文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。

  6. shell通配符及命令行快捷键

    1
    * ? [...] # bash中支持三种标准通配符,当查找文件时,用通配符来代替一个或多个真正字符

    *匹配0到多个任意字符
    ?匹配一个任意字符
    []匹配它内部的任意单个字符
    []内部还可以写成这样表示一个字符范围

    1
    2
    ls file[1357]
    ls file[1-9]

    当[]内部紧跟在[后面的字符是^或!时,表示取反,不在这个范围内的字符会被匹配到
    在[]内部还支持字符组,字符组的格式是[:class:],其中字符组可以是如下类型:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    alnum 匹配字母和数字
    alpha 匹配字母
    ascii 匹配ASCII码
    blank 匹配空格和制表符'\t'
    cntrl 匹配控制字符
    digit 匹配数字
    graph 匹配非空白字符
    lower 匹配小写字母
    print 类似graph,但包含空白字符
    punct 匹配标点符号
    space 匹配空白字符
    upper 匹配大写字母
    word 匹配字母、数字和下划线_
    xdigit匹配十六进制数字

文件搜索

  1. find

    1
    find [path...] [expression]

    选项 -name pattern 搜索文件名
    选项 -maxdepth n 指定搜索路径的最大深度
    选项 -user name 按照文件属性主来查找文件
    选项 -mtime n 文件上次内容被修改距离现在n*24小时,+n表示大于n,-n表示小于n,n表示你等于n
    选项 -newer file 表示搜索到的文件比指定的fiel要新

    1
    find /root -name "file1?" -newer "file12"

    选项 -path pattern 文件名匹配pattern(通配符)

    1
    find /root -name "file1?" -path "./file[13]"

    通常-path会配合选项-prune使用,表示对某目录的排除
    选项-type x表示搜索类型为x的文件
    选项-perm mode表示搜索特定权限的文件
    选项-size n表示搜索文件大小

打包压缩

  1. gzip 压缩或解压文件

    1
    gzip [OPTION]... [FILE]...

    当命令后直接跟文件时,表示压缩该文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@centos7 temp]# ls -l file1*
    -rw-r--r-- 1 root root 132 10月 27 13:28 file10
    -rw-r--r-- 1 root root 64 10月 27 15:06 file11
    -rw-r--r-- 1 root root 22 10月 26 21:31 file12
    -rw-r--r-- 1 root root 137 10月 12 16:42 file13
    [root@centos7 temp]#
    [root@centos7 temp]# gzip file10 file11 file12 file13
    [root@centos7 temp]# ls -l file1*
    -rw-r--r-- 1 root root 75 10月 27 13:28 file10.gz
    -rw-r--r-- 1 root root 49 10月 27 15:06 file11.gz
    -rw-r--r-- 1 root root 44 10月 26 21:31 file12.gz
    -rw-r--r-- 1 root root 109 10月 12 16:42 file13.gz

    选项-d表示解压缩

    1
    gzip -d *.gz

    选项-r可以递归地进入目录并压缩里面的文件
    选项-n指定压缩级别,n为从1-9的数字。1为最快压缩,但压缩比最小;9的压缩速度最慢,但压缩比最大。默认时n为6

  2. zcat 将压缩的文件内容输出到标准输出

    1
    zcat hello.gz
  3. bzip2 压缩解压文件

    1
    bzip2 [OPTION]... [FILE]...

    命令bzip2和gzip类似都是压缩命令,只是使用的压缩算法不一样,通常bzip2的压缩比较高。本命令默认同样不保留源文件,默认文件名后缀为.bz2
    选项-k可使源文件保留
    选项-f表示强制覆盖源文件

  4. tar 打包压缩文件

    1
    tar [OPTION...] [FILE]...

    选项 -c 打包
    选项 -f 表示指定打包文件名
    选项 -x 对归档文件进行提取操作。(解包)
    选项 -t 列出归档内容
    选项 -v 详细地列出处理的文件
    选项 -u 更新归档文件(update)

vim

  1. 插入模式

    1
    2
    3
    4
    5
    6
    a 在光标所在位置下一个字符开始输入
    A 在光标所在行尾开始输入
    i 在光标所在位置开始输入
    I 在光标所在行首开始输入
    o 在光标所在行下新增一行,并在新增行行首开始输入
    O 在光标所在行上新增一行,并在新增行行首开始输入
  2. 底行模式

    1
    2
    3
    : 执行命令
    / 正向搜索
    ? 反向搜索
  3. 普通模式下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    文本修改:
    . 重复上一个命令
    x 删除光标位置的字符
    d 从光标处开始剪切
    dd 剪切光标所在位置的整行(保存在临时缓冲区)
    ndd n为数字,表示从当前行开始,从上到下剪切n行
    p 将缓冲区中的内容放到当前行之下
    np n是数字,相当于执行n次p命令
    P 将缓冲区中的内容放到当前行之上
    y 从光标处开始复制
    yy 复制当前行(保存在临时缓冲区)
    nyy n为数字,表示从当前行开始,从上到下复制n行
    r 替换光标所在位置的一个字符
    R 从光标位置开始替换,并进入文本输入模式(ESC退出)
    u 撤销上一次操作
    ZZ 保存退出
    移动光标:
    h或左箭头键 光标向左移动一格
    l或右箭头键 光标向右移动一格
    j或下箭头键 光标向下移动一格
    k或上箭头键 光标向上移动一格
    0 光标移动到当前行开头
    ^ 光标移动到当前行非空白字符(如空格、tab键等)的开头
    $ 光标移动到当前行结尾
    g_ 光标移动到当前行非空白字符的结尾
    w 光标移动到下一个单词的开头
    e 光标移动到下一个单词的结尾
    * 匹配光标所在单词,移动到下一个相同的单词
    # 匹配光标所在单词,移动到上一个相同的单词
    f{ 光标移动到当前行的下一个字符{处,{可以换成其他字符
    F} 光标移动到当前行的上一个字符}处
    t, 光标移动到当前行的下一个逗号之前一个字符处
    T, 光标移动到当前行的上一个逗号之后一个字符处
    % 移动到成对括号的另一半括号处,包括() {} [].需要先将光标移动到括号上。
    gg 光标移动到文件第一行行首
    G 光标移动到文件最后一行行首
    回车键 光标移动到下一行行首