跳至主要內容

Linux常用命令

xw大约 8 分钟LinuxLinux

文件和目录操作命令

tree(以树形结构展示目录下的内容)

  • 作用:以树形结构展示目录下的内容

  • 参数:

    选项
    -a显示所有文件,包括隐藏文件
    -d只显示目录
    -f显示每个文件的全路径
    -i不显示树枝,需要与-f参数配合使用
    -L遍历目录的最大层数
  • 示例:

    ## 安装tree命令
    yum -y install tree
    
    ## 以树形结构显示目录下的所有内容
    tree -a
    

mkdir(创建目录)

  • 作用:创建目录

  • 参数:

    选项说明
    -p递归创建目录
    -m创建目录的默认权限
    -v显示目录创建过程
  • 示例:

    ## 递归创建目录
    mkdir -p /data/11
    
    ## 创建目录给与权限
    mkdir -m 333 /data2
    
    ## 创建多个目录及子目录
    mkdir -pv o1dboy/{dirl_1,dir1_2}/{dir2_1,dir2}
    

ls(列出目录的内容)

  • 作用:list,列出目录的内容

  • 参数:

    选项
    -l使用长格式列出文件及目录信息 *
    -a显示目录下所有文件,包括隐藏文件
    -t根据修改时间排序,默认是文件名
    -i不显示树枝,需要与-f参数配合使用
    -r依相反次序排序
    -d当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号连接
    -h以人类可读的信息展示文件或目录大小
    -R递归列出所有子目录
  • 示例:

    ## 显示所有文件
    ls -a
    
    ## 显示完整时间
    ls -l --time-style=long-iso
    

cp(复制文件)

  • 作用:cp命令以及后面的选项和文件

  • 参数:

    选项
    -p复制文件保持源文件的持有者、权限信息及时间属性
    -d如果复制的源文件是符号链接,那么仅复制符号链接本身。而且保留符号链接所指向的目标文件或目录
    -r递归复制目录
    -a等同于上面的p、d、r这三个选项功能的综合
    -i覆盖已有文件前提示用户确认
  • 示例:

    ## 使用-a参数复制file1.txt为file2
    cp  -a  file1.txt file2.txt
    
    ## 以树形结构显示目录下的所有内容
    tree -a
    
    
  • cp覆盖文件之前不提示是否覆盖的几种方法

    • 使用命令全路径

      ## 查看cp的系统别名
      which cp
      
      ## 使用绝对路径cp就可以屏蔽
      /usr/bin/cp a b
      
    • 命令开头使用反斜线(\)

      \cp a b
      
    • 取消cp的别名,但重启系统时效

      ## 取消设置别名
      unalias cp
      

mv(移动或重命名文件)

  • 作用:移动或重命名文件

  • 参数:

    选项
    -f若目标文件已经存在,则直接覆盖
    -i若目标文件已经存在,则会询问是否覆盖
    -n不覆盖已经存在的文件
  • 示例:

    ## 将a文件命名为b
    mv a b
    
    ## 移动目录,若dir5不存在,将目录dir1重命名为dir5
    mv dir1 dir5
    
    
    

文件过滤及内容编辑处理命令

cat(合并文件或查看文件内容)

  • 作用:移动或重命名文件

  • 常用功能

    • 查看文件内容
    • 把多个文件合并成一个 cat file1.txt file2.txt > newfile.txt
    • 创建编辑新文件
    • 非交互式的编辑或追加内容到文件尾部
    • 清空文件内容(cat /dev/null > file.txt)
  • 参数:

    选项
    -n输出行号
    -b和-n相似,但会忽略空白行
    -s当遇到有两行以上的空白行时,替换为一行
  • 示例:

    cat > test.txt <<EOF
    Q                         
    QQQ                                                                       
    QQQ                   
    EOF            
    #<=这里要按回车才能结束,另外,E0F必须成对出现,但也可以用
    别的成对标签来替换。例
    如:o1boy字符标签,默认情况下,结尾的E0F必须要顶格写。
    
    cat test.txt
    

more(分页显示文件内容)

  • 作用:分页显示文件内容

  • 参数:

    选项
    -num指定屏幕显示大小为num行
    +num从行号的num开始显示
    -s把连续的多个空行显示为一行

    在交互模式下,使用more命令打开文本之后,会进入一个基于vi的交互界面,可以使用部分vi编辑器的功能,常见命令如下

    空格键向下滚动一屏
    b返回上一屏
    /查找的文本查找指定的文本
  • 示例:

    ## 不传递参数,满屏显示文件内容
    more test.txt
    
    ## 显示5行
    more -5 test.txt
    
    ## 从第五行开始显示
    more +5 test.txt
    

less(分页显示文件内容)

  • 作用:移动或重命名文件

  • 参数:

    选项
    -n显示指定的行数
    -q不显示包含给定文件名的文件头
    -v总是显示包含给定文件名的文件夹
  • 示例:

    ## 不接受任何参数时,默认显示文件的前10行
    head test.txt
    
    ## 显示文件前5行
    head -n 5 test.txt
    
    
    

head(显示文件头部内容)

  • 作用:显示文件头部内容,默认输出文件开头十行

  • 参数:

    选项
    -f若目标文件已经存在,则直接覆盖
    -i若目标文件已经存在,则会询问是否覆盖
    -n不覆盖已经存在的文件
  • 示例:

    ## 将a文件命名为b
    mv a b
    
    ## 移动目录,若dir5不存在,将目录dir1重命名为dir5
    mv dir1 dir5
    
    
    

tail(显示文件内容尾部)

  • 作用:显示文件内容尾部,默认输出文件的最后10行

  • 参数:

    选项
    -n显示指定的行数
    -f实时输出文件变化后追加的数据
  • 示例:

    ## 默认显示最后10行
    tail test.txt
    
    ## 显示文件末尾5行的内容
    tail -n 5 test.txt
    
    ## 实时监控test.txt文件变化
    tail -f test.txt
    
    
    

tailf(跟踪日志文件)

  • 作用:tailf命令几乎等同于tail-f,与tail-f不同的是,如果文件不增长,那么它不会去访问磁盘文件,也不会更改文件的访问时间。

  • 参数:

    选项
    -n指定显示的行数,默认显示最后10行
  • 示例:

    ## 默认显示最后10行文件
    tailf test.txt
    
    
    

cut(从文本中提取一段文字并输出)

  • 作用:cut命令从文件的每一行剪切字节、字符或字段,并将这些字节、字符输出

  • 参数:

    选项
    -d自定义分隔符,默认以tab为分隔符
    -f与选项-d一起使用,指定显示哪个区域
    N第N个字节、字符或字段
    N-从第N个字节、字符或字段开始直至行尾
    N-M从第N到第M个字节、字符或字段
    -M从第1到第M个字节、字符或字段
    -c以字符为单位进行分割
    -n取消分割多字节字符,与选项-b一起使用
  • 示例:

    ## 输出第3-5个字节和第10个字节
    cut -b 3-5,10 oldboy.txt
    
    ## 表示从第三个字节到行尾
    cut -b 3- oldboy.txt
    
    ## 输出第三个到5个字符
    cut -c 3-5 oldboy.txt
    
    ## -d指定以:作为分隔符 -f 1指定显示第一个区域
    cut -d : -f 1 test.txt
    

vim(纯文本编辑器)

  • 作用:vim分为三种模式:普通模式、编辑模式、命令模式

    • 普通模式:用vim命令打开一个文件,默认的状态就是普通模式。在这个模式中,不能进行编辑输入操作。
    • 编辑模式:按i进去编辑模式
    • 命令模式:输入": / ?"时,光标会自动定位在那一行,可以执行保存、退出、搜索。

  • 参数:

  • 示例:

    ## 将a文件命名为b
    mv a b
    
    ## 移动目录,若dir5不存在,将目录dir1重命名为dir5
    mv dir1 dir5
    
    
    

文本处理

grep(文本过滤命令)

  • 作用:文本过滤命令

  • 参数:

    选项
    -n显示匹配行及行号
    -i不区分大小写,默认是区分大小写的
    -c只匹配统计的行数
    -w只匹配过滤的单词
    -o只输出匹配的内容
  • 示例:

    ## 过滤不包含test字符串的行
    grep -v "test" test.txt
    
    ## 输出包含test的字符串,并显示行号
    grep -n "test" test.txt
    
    ## -i不区分大小写
    grep -i "test" test.txt
    
    
    

sed(字符流编辑器)

  • 作用:字符流编辑器

  • 参数:

    选项
    -n取消默认的sed输出,常与sed内置命令p连用
    -i直接修改文件内容,不输出到终端
  • 内置命令

    命令字符解释
    a全拼append,标识追加文本,在指定行后追加文本
    d全拼delete,标识匹配行的文本
    i全拼append,标识追加文本,在指定行前追加文本
    p全拼print,表示打印匹配行的内容,通常p会与选项-n一起使用
    s/regexp/replacement/匹配regexp部分的内容,用replacement替换regexp匹配的内容,regexp部分可以使用正则表达式,在replacement部分可以使用特殊字符&和l-9等匹配regexp部分的部分内容。在实战场景中,s/regexp/replacement/g结尾常与g匹配做全局的替换
  • 示例:

    ## 生成测试文件
    cat >persons.txt<<EOF
    101,o1dboy,CEO
    102,zhangyao,CTO
    103,A1ex,C00
    104,yy,CF0
    105,feixue,CIO
    EOF
    
    ## 在第2行后面追加指定内容
    sed '2a 106,yl,CTO' persons.txt
    
    ## 在第2行前面追加指定内容
    sed '2i 106,yl11,CTO' persons.txt
    
    ## 删除第二行数据
    sed '2d'  persons.txt 
    
    ## 删除指定多行
    sed '2,5d'  persons.txt 
    
    

mv(移动或重命名文件)

  • 作用:移动或重命名文件

  • 参数:

    选项
    -f若目标文件已经存在,则直接覆盖
    -i若目标文件已经存在,则会询问是否覆盖
    -n不覆盖已经存在的文件
  • 示例:

    ## 将a文件命名为b
    mv a b
    
    ## 移动目录,若dir5不存在,将目录dir1重命名为dir5
    mv dir1 dir5
    
    
    

查看CPU相关信息

  • 查看cpu架构

    uname -a
    
  • 查看cpu厂家信息

    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    
  • 查看cpu个数

    cat /proc/cpuinfo | grep physical | uniq -c
    
  • 查看cpu核心数

    cat /proc/cpuinfo | grep "cpu cores" | uniq
    
  • 查看服务器总核心数

    cat /proc/cpuinfo | grep "processor" | wc -l