zoukankan      html  css  js  c++  java
  • Linux 就该这么学 CH02新手必须掌握的Linux命令

    0 概述

    本章内容如下

    • 强大的shell.
    • 帮助文档命令(1)
    • 系统工作命令(10)
    • 系统状态监测命令(8)
    • 工作目录切换命令(3)
    • 文本文件编辑命令(9)
    • 文件目录管理命令(7)
    • 打包压缩或搜索命令(3)

    1 强大的shell

    2 帮助文档命令

    3 系统工作命令

    4 系统状态监测命令

    1)ifconfig

    ifconfig 用于获取网卡配置与网络状态的命令,格式为:ifconfig [网络设备] [参数]。

    • 查看网络配置前的状态:ifconfig
      在这里插入图片描述
      上图可以看出:网卡名是 eno16777736,MAC地址:000C2918DCD9. 没有IP地址。
    • 配置网络:ifconfig 网卡名 IP netmask 掩码
      在这里插入图片描述
      配置之后可以看到:网卡名,MAC,IP,掩码,网关,发送字节,接收字节。

    2)uname

    uname用于查看系统内核与系统版本等信息,格式为:uname [-a].
    在这里插入图片描述
    -a 可以完整查看信息,上图从左到右分别是:系统的内核名称,主机名,内核发行版本,节点名,系统时间,硬件名称,硬件平台,处理器类型和操作系统名称。
    如果要查看当前系统版本的详细信息,则需要查看 redhat-release。

    [root@RHEL Desktop]# cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.0 (Maipo)
    

    3) uptime

    uptime用于查看系统的负载信息。格式为 uptime.

    [root@RHEL Desktop]# uptime
    21:46:41 up 4 min,  2 users,  load average: 0.04, 0.19, 0.11
    
    

    上面最后三个数值代表之前1分钟,5分钟,15分钟内的平均负载。该负载值越低越好,尽量不要长期超过1,在生成环境中不要超过5.

    4) free

    free用于显示当前系统中内存的使用情况,格式为: free [-h/-m].
    -h 和-m效果一样,不同的是单位不一样。

    [root@RHEL Desktop]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.8G       889M       3.0G       9.9M       928K       301M
    -/+ buffers/cache:       587M       3.3G
    Swap:         2.0G         0B       2.0G
    [root@RHEL Desktop]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          3939        889       3049          9          0        301
    -/+ buffers/cache:        587       3352
    Swap:         2047          0       2047
    [root@RHEL Desktop]# 
    

    上面每列数据分别代表的意思是:
    在这里插入图片描述

    5) who

    who用于查看当前登入主机的用户终端信息,格式为: who [参数]。
    在这里插入图片描述

    6) last

    last用于查看所有系统的登录记录,格式为: last [参数]。
    在这里插入图片描述

    7) history

    history用于显示历史执行过的命令。格式为: history [-c].
    默认1000条,可以修改/etc/profile 中的HISTSIZE变量值来更改最大值值。

    [root@RHEL Desktop]# vim /etc/profile
    

    在这里插入图片描述
    history如下:

    [root@RHEL Desktop]# history
        1  man man
        2  man ls
        3  man echo
        4  man man
    		、、、
    

    使用 “! 编码数字” 来重复执行某一次命令。
    -c参数会清空所有的history命令。

    [root@RHEL Desktop]# history -c
    [root@RHEL Desktop]# history
        1  history
    

    历史命令保存在 .bash_history 文件中。

    [root@RHEL Desktop]# cat ~/.bash_history
    man man
    man ls
    
    

    8) sosreport

    sosreport用于收集系统配置以及架构信息并输出诊断文档,格式为:sosreport.
    sosreport命令执行过程中需要敲3次回车键。
    在打印的最后,有下面的提示:
    在这里插入图片描述
    加粗部分是收集好的资料压缩文件和校验码,发送给技术人员就可以了。

    5 工作目录切换命令

    1) pwd

    pwd用于显示用户当前所处的工作目录。格式:pwd.

    2) cd

    cd 用来切换工作路径,格式: cd [目录]。

     cd /etc           #切换到/etc目录
     cd /bin           #切换到/bin目录
     cd -              #返回到上一次的目录(即/etc)
     cd ..             #返回到上一级的目录(即/etc的上一级,即/)
     cd ~linuxprobe    #切换到用户linuxprobe的家目录
     cd ~              #切换到当前用户的家目录(其实直接cd就行)
    

    3) ls

    ls 用于查看目录中的文件信息,格式: ls [选项] [文件]。
    -a :查看全部文件,包括隐藏文件。
    -l :查看文件的属性,大小等详细信息。
    -d :查看目录的属性信息。

     ls -al                    #查看当前目录的所有文件(包括隐藏文件)的详细信息
     ls -ld /etc               #查看/etc目录的详细信息
     ls -Zd anaconda-ks.cfg    #查看文件或目录的详细信息以及SELinux安全上下文值
    

    在这里插入图片描述
    上图中,文件前缀为.的是隐藏文件,文件名是黑色的是普通文件,蓝色的是目录文件。

    6 文本文件编辑命令

    1) cat

    cat用于查看纯文本文件(内容较少),格式: cat [选项] [文件]。
    -n则可以显示行号。
    cat -n initial-setup-ks.cfg
    作用等同于less.
    [root@RHEL Desktop]# less man.txt

    2) more

    more用于查看内容较多的纯文本文件。格式:more [选项] 文件。
    more 会在最下面用百分数显示已经阅读了多少。
    可以用空格或者回车键向下翻页,按q键退出。
    more man.txt

    3) head

    head 用于查看纯文本文档的前N行,格式:head [选项] [文件]。
    -n 用于指定多上行,后面跟具体数字。如
    head -n 10 man.txt
    在这里插入图片描述

    4) tail

    tail 用于查看纯文本文档的后N行或持续刷新内容,格式为: tail [参数] [文件]。
    tail -n 10 man.txt #可查看man.txt的后10行内容。
    tail的强悍功能是可以持续刷新一个文件的内容。
    tail -f man.txt #可以实时查看man.txt内容

    5) tr

    tr 用于替换文本文件中的字符,格式为:tr [原始字符] [目标文件]。
    tr [a-z] [A-Z] #将小写替换为大写

    [root@RHEL Desktop]# tr [a-z] [A-Z]
    i love you     #这行是输入
    I LOVE YOU    #这行是打印,ctrl +c 退出
    

    6) wc

    wc用于统计文本的行数,字数,字节数,格式为: wc [参数] 文本。
    -l :显示行数。
    -w:显示单词数。
    -c :显示字节数。

    [root@RHEL Desktop]# wc -lwc man.txt
      728  4880 37341 man.txt
    

    7) stat

    stat 用于查看文件的具体存储信息和时间等信息,格式为:stat 文件名。
    该命令会显示出文件的三种状态(已加粗):access ,Modify,Change。
    Access: 文件访问时间,也叫atime.
    Modify: 文件修改时间,也叫mtime.
    Change: 文件权限修改时间,也叫ctime.
    在这里插入图片描述

    8) cut

    cut用于按“列”提取出文本字符,格式为:cut [参数] 文本。
    -f:设置需要看的列数。可以是单个,也可是范围。
    -d:设置间隔符号。

    #查询passwd的1到3和第6列的数据,分隔符为:#
    [root@RHEL ~]# cut -d : -f 1-3,6 /etc/passwd   
    root:x:0:/root
    bin:x:1:/bin
    daemon:x:2:/sbin
    adm:x:3:/var/adm
    lp:x:4:/var/spool/lpd
    

    9) diff

    diff用于比较多个文本文件的差异,格式为:diff [参数] 文件。
    –brief:用于确认两个文件是否相同,只输出结果。
    -c 详细比较出多个文件的差异之处,输出具体的差异之处。

    [root@RHEL Desktop]# diff --brief test.txt test2.txt
    Files test.txt and test2.txt differ
    [root@RHEL Desktop]# diff -c test.txt test2.txt
    *** test.txt	2019-08-26 01:49:31.318430043 -0400
    --- test2.txt	2019-08-26 01:50:16.518435344 -0400
    ***************
    *** 1,5 ****
    ! i
      love
    ! you
      !
    - 
    --- 1,6 ----
    ! I
    ! 
      love
    ! yoU
    ! too
      !
    
    

    上面可以看出,前面有!表示不一样。

    7 文件目录管理命令

    1) touch

    touch用于创建空白文件或设置文件的时间,格式为:touch [选项] [文件]。
    touch 简单用法是创建空白文件。
    touch 的困难操作是 修改文件的时间。
    在这里插入图片描述
    [root@RHEL7 Desktop]# touch -d "2019-10-01 22:30" test.txt

    2) mkdir

    mkdir 用于创建空白的目录,格式为:mkdir [选项] 目录。
    -p 参数来递归创建出具有嵌套层关系的文件目录。

    [root@RHEL Desktop]# mkdir -p a/b/c

    3) cp

    cp 命令用于复制文件或目录, 格式为:cp [选项] 源文件 目标文件。
    有三种情况:

    • 如果目标文件是目录,则会把源文件复制到该目录文件中。
    • 如果目标文件也是普通文件,则会询问是否覆盖它。
    • 如果目标文件不存在,则执行正常的操作。
      在这里插入图片描述
    [root@RHEL Desktop]# cp test.txt a/b
    [root@RHEL Desktop]# cp test.txt test2.txt
    cp: overwrite ‘test2.txt’? y    #这里需要输入y,直接按enter无用。
    [root@RHEL Desktop]# cat test.txt test2.txt
    

    4) mv

    mv用来剪切文件或者将文件重命名。格式为:mv [选项] 源文件 [目标文件|目标路径]。
    在同一个目录对同一个文件进行剪切,则是对该文件进行重命名。
    [root@linuxprobe ~]# mv x.log linux.log
    ## 将x.log重命名为linux.log

    5) rm

    rm用于删除文件或目录,格式为:rm [选项] 文件。
    -f 用于强制删除。
    -r 用于删除
    [root@RHEL Desktop]# rm -rf a/b/

    6) dd

    dd命令用于按照指定大小和个数的数据块来复制文件和转换文件,格式为 dd [参数]。
    dd命令比较重要且有特色,可以让用户按照指定大小和个数的数据块来复制文件的内容。
    linux 系统中的/dev/zero 设备文件,不会占用系统存储空间,却可以提供无穷的数据,所以可以作为dd命令的输入文件或测试文件。
    在这里插入图片描述

    [root@RHEL ~]# dd if=/dev/zero of=mytest.txt count=1 bs=512M
    1+0 records in
    1+0 records out
    536870912 bytes (537 MB) copied, 9.53711 s, 56.3 MB/s
    

    linux系统下还可以直接用dd命令来压制光盘镜像文件,是它变成一个可立即执行的iso镜像。

    [root@RHEL ~]# dd if=/dev/zero of=mytest.txt count=1 bs=512M
    1+0 records in
    1+0 records out
    536870912 bytes (537 MB) copied, 9.53711 s, 56.3 MB/s
    
    

    7) file

    file 用于查看文件的类型,格式为 file 文件名。

    [root@RHEL Desktop]# file test.txt
    test.txt: ASCII text
    

    8 打包压缩或搜索命令

    1) tar

    tar用于对文件进行打包压缩或者解压, 格式为:tar [选项] [文件]。
    可以用来生成或解压.tar 或.tar.gz 或.tar.bz2 格式文件。
    在这里插入图片描述
    比较常用的参数为 c ,x ,z, j ,v ,C, f,其中f必须放到最后来指定目标名称。
    “tar -czvf 压缩包名.tar.gz 待压缩文件|目录” 来打包文件。
    "tar -xzvf filename.tar.gz " 来解压缩文件。也可以指定文件夹。

    [root@linuxprobe ~]# tar -czvf etc.tar.gz /etc   ##压缩整个etc文件夹
    [root@linuxprobe ~]# tar xzvf etc.tar.gz -C /root/etc  ##将压缩包解压到指定的目录
    

    2)grep

    grep用于在文本中执行关键词搜索,并显示匹配的结果,格式为:grep [选项] [文件]。
    在这里插入图片描述
    -n 用来显示搜索到的信息的行号。
    -v 用于反选,即没有包含的信息。

    [root@RHEL ~]# grep -n /sbin/nologin /etc/passwd   ##在/etc/passwd中查找包含 /sbin/nologin 的行,并显示行号
    2:bin:x:1:1:bin:/bin:/sbin/nologin
    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4:adm:x:3:4:adm:/var/adm:/sbin/nologin
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    #############################################
    [root@RHEL ~]# grep -nv /sbin/nologin /etc/passwd  #和上一个搜索结果相反,即不包含 /sbin/nologin
    1:root:x:0:0:root:/root:/bin/bash
    6:sync:x:5:0:sync:/sbin:/bin/sync
    7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    8:halt:x:7:0:halt:/sbin:/sbin/halt
    38:felix:x:1000:1000:felix:/home/felix:/bin/bash
    
    

    3) find

    find用于按照指定条件查找文件,格式为 find [路径] 寻找条件 操作。
    在这里插入图片描述在这里插入图片描述
    其中 -exec 参数比较重要,它是把find的结果交给其他命令做进一步处理。其中find结果存在{}中, ;在最后结束时必须用的。

    [root@linuxprobe ~]# find /etc -name "host*" -print  # 在etc下查找名字包含host的文件或文件夹
    /etc/avahi/hosts
    /etc/host.conf
    /etc/hosts
    ######################
    [root@linuxprobe ~]# find / -perm -4000 -print   ##查找权限为SUID 的文件
    /usr/bin/fusermount 
    /usr/bin/su
    /usr/bin/umount
    #################
    #在整个系统中查找归属linuxprobe 的文件并复制到/root/findresults 目录下。如果在当前目录中查找则可以使用.代表当前目录。
    [root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ ; 
    
    #############
    [root@RHEL Desktop]# find .  -user root -exec cp -a {} a/ ;  
    cp: cannot copy a directory, ‘.’, into itself, ‘a/.’
    cp: cannot copy a directory, ‘./a’, into itself, ‘a/a’
    cp: ‘./a/linucprobe’ and ‘a/linucprobe’ are the same file
    
    
  • 相关阅读:
    多线程执行有返回值有参数的方法
    当连续进行多个请求,并且请求的url地址相同时。放弃前面的所有请求,只执行最后一次请求。
    防止重复发送Ajax请求的解决方案
    多行文本溢出显示省略号
    h5 文件跨域上传
    完美解决 IOS系统safari5.0 浏览器页面布局iframe滚动条失效问题,iossafari5.0
    CSS3 修改和去除移动端点击事件出现的背景框 (tap-highlight-color)
    去除img之间的空白
    手机上点击a标签是出现阴影解决办法
    idea通过maven构建springMVC+mybatis项目
  • 原文地址:https://www.cnblogs.com/fhyfhy/p/11760985.html
Copyright © 2011-2022 走看看