美文网首页
Linux学习笔记(二、Linux常用命令)

Linux学习笔记(二、Linux常用命令)

作者: 鲁克巴克诗 | 来源:发表于2017-06-03 22:24 被阅读118次

    一、命令基本格式

    • 命令提示符

    当登录linux系统时,最常见的命令就是:
    ** [root@bogon ~]#**
    其中:

    root:当前登录用户
    bogon:主机名(一般情况应该是localhost)
    ~:当前所在目录(家目录pwd 查看家目录)管理员是/root   普通用户是/home/user1   
    #:超级用户的提示符(普通用户的提示符是$)
    

    关于为什么我的主机是bogon,参考:linux主机名被更改为bogon原理分析

    • 命令格式
      命令 [选项] [参数]
      注意:个别命令使用不遵循此格式。当有多个选项时,可以写在一起。简化选项(-a)== 完整选项(--all)。

    • 查询目录中的内容:ls
      ls [选项] [文件或目录]
      选项:

    -a 显示所有文件,包括隐藏文件
    -l 显示详细信息
    -d 查看目录属性
    -h 人性化显示文件大小
    -i 显示inode(索引点、信息节点)
    
    • 其中,输入ls -l命令显示详细信息(也可以简写成ll),显示如图:


      Paste_Image.png
      • -rw-r--r--

        1. -文件类型(Linux通过权限位第一个来判断文件类型,共有7种,其中常用的有三种:- 代表文件、 d 代表目录 、l代表软链接文件)
        2. 除第一位判断文件类型,余下9位,每3位为一组,他们有不同的权限,这些组依次代表: rw-(u 所有者) r--(g 所属组) r--(o 其他人)
        3. r读 w写 x执行
          那么大白话翻译就是:这个文件的所有者有读写权限。所属组和其他人只有读权限。
      • .(-rw-r--r--后边的点)代表ACL权限。(暂时没有官方资料证明)

      • 数字1(点后边的数字)代表这个文件个数,如果是目录类型,就会显示它包含多少个文件。如果是文件,就只是1。

      • 第一个root,代表文件所有者

      • 第二个root,代表所属组

      • 第二个root后边的数字,代表文件大小,单位是字节。当然,我们平常习惯看的是kb、mb这样的。可以在-l后面加个h,h代表human,意为人性化显示文件大小。


        Paste_Image.png
      • 后边的【6月 2 05:20】代表最后一次修改时间。

      • 最后一列是文件名称

    • 输入ls -a命令查看所有文件


      Paste_Image.png
      • 其中以点(.)开头的代表隐藏文件
    • 输入ls -d表示显示目录自身的属性,而不是目录中的内容,可以和-l连写,写成ls -ld,代表显示当前目录详细信息和属性


      Paste_Image.png
    • ls -i显示当前目录或文件的索引


      Paste_Image.png
    • -h命令其实前边例子用过了,人性化显示文件大小,但是我发现只用-h是没有作用的,需要和-l连写


      Paste_Image.png

      当然也可以简写成


      Paste_Image.png
      上图例子是把 -l -d -h连写在一起了,意思是显示当前目录的详细信息和属性并且人性化显示大小。
    最后说一下linux下文件的一些文件颜色的含义:
    绿色---->代表可执行文件,(绿色代表通行证的意思)
    红色---->代表压缩文件
    深蓝色---->代表目录
    浅蓝色----->代表链接文件
    灰色---->代表其它的一些文件
    

    二、文件处理命令

    • 目录处理命令
      • 建立目录:mkdir
    mkdir [-p] [目录名]
    -p 递归创建(同时创建下一层目录) 如:mkdir -p main/sub 就会先创建main目录然后在它下边创建sub目录,必须加-p,否则报错。
    命令英文原意:make directories
    
    Paste_Image.png
    Paste_Image.png
    Paste_Image.png
    Paste_Image.png
    * 切换目录命令:cd [目录名]   命令英文原意:change directory
      * 简化操作
    
    cd ~ 或者 cd 都是进入当前用户的家目录
    cd - 进入上次目录
    cd .. 进入上一级目录
    cd . 进入当前目录
    

    Linux的清屏快捷键:Ctrl+L


    Paste_Image.png
    Paste_Image.png
    Paste_Image.png

    * 相对路径:参照当前所在目录进行查找


    Paste_Image.png
    * 绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置。
    Paste_Image.png
    * 当输入cd 后不知道后面是什么文件时,可以摁Tab键,会显示此目录下一层文件。输入cd后,只记得目录首字母也可以摁Tab键,会自动补全。忘记命令时也可以摁Tab帮助。
    目录提示补全:
    Paste_Image.png

    命令提示补全:


    Paste_Image.png
    * 查询所在目录位置:pwd 命令英文原意:print working directory
    
    Paste_Image.png
    * 删除空目录:rmdir
    
    rmdir [目录名] 命令英文原意:remove empty directories
    
    Paste_Image.png
    * 删除文件或目录:rm
    
    rm [-rf] [文件或目录]  命令英文原意:remove
    选项:
    -r 删除目录(如果不写,默认是文件。如果确定删的是目录,就一定加上-r)
    -f 强制(不强制,会提示“是否删除”,如果某目录下文件很多,就会每删一个问一遍。)
    因为删除的权限很大,所以一定不要执行【rm -rf /】。这会导致Linux自杀!!!【/】是根目录,删除根目录,除非你疯了!
    
    Paste_Image.png
    • 复制文件或目录:cp
    cp [选项] [原文件或目录] [目标目录]   命令英文原意:copy
    选项:
    -r 复制目录(不加-r 复制文件)
    -p 连带文件属性复制
    -d 若原文件是链接文件,则复制链接属性
    -a 相当于-pdr,就是把上边三个选项连写
    

    将install.log复制到main/sub1目录下:


    Paste_Image.png

    将install.log复制到main/sub1目录下的同时更换一个新文件名:


    Paste_Image.png
    复制main目录到main2目录下:
    Paste_Image.png

    上边例子,复制了install.log文件到main/sub1目录下,现在查看两份文件的详细信息,发现时间是不一致的。工作中有一种特殊情况,需要我们保留原文件的最后一次修改时间。


    Paste_Image.png
    使用-p选项可以将原文件属性同时复制
    Paste_Image.png
    使用-a选项可以同时复制文件或者目录及其属性
    Paste_Image.png
    • 剪切或改名命令:mv
    mv [原文件或目录] [目标目录]    命令英文原意:move
    

    剪切main/anaconda-ks.cfg文件到main2目录中(只要是不同目录 就代表执行的是剪切)


    Paste_Image.png

    创建abc文件,并使用mv命令更改其名称(只要是同一层目录,即认为是改名)


    Paste_Image.png
    • 常用目录的作用


      Paste_Image.png
        * / 根目录
        * /bin 命令保存目录(普通用户就可以读取的命令)
        * /boot 启动目录。启动相关文件
        * /dev 设备文件保存目录(不要轻易去动)
        * /etc 配置文件保存目录
        * /home 普通用户的家目录
        * /lib 系统库保存目录(函数库)
        * /mnt 系统挂载目录(因为老式的linux版本,是没有media和misc目录的,所以建议将media和misc都写在mnt下)
        * /media 挂载目录
        * /root 超级用户的家目录
        * /tmp 临时目录
        * /sbin 命令保存目录(超级用户才能使用的目录)
        * /proc 伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
        * /sys 和/proc一样,都是保存内存的过载点
        * /usr 系统软件资源目录
              /usr/bin 系统目录(普通用户)
              /usr/sbin 系统命令(超级用户)
        * /var 系统相关文档内容
    

    关于【/proc】目录,可阅读这篇文章:Linux下/proc目录简介
    根目录下的bin和sbin,uer目录下的bin和sbin都是用来保存系统命令的。其中sbin目录下的命令只有root用户可以执行。

    Paste_Image.png
    • 链接命令:ln
    ln [-s] [原文件] [目标文件]  命令英文原意:link
    功能描述:生成链接文件
    选项:
            -s 创建软链接(不加默认创建硬链接)
    
    * **硬链接**就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。
    
        硬链接特征:
          1. 拥有相同的i节点和存储block块,可以看作是同一个文件
          2. 可通过i节点识别
          3. 不能跨分区
          4. 不能针对目录使用
    
    Paste_Image.png

    未删除newinstall.log这个硬链接之前呢,查查他们的i节点是否一致,发现是一样的,更加说明,他们虽然看似两个不同的文件,但是实质上都链接着同一个文件。


    Paste_Image.png
    • 软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
      特别注意:ln -s [一定要写原文件的绝对路径,如果不写则表示原文件的软链接也在这个路径] [目标文件]
        软链接特征:
          1. 类似Windows的快捷方式
          2. 软链接拥有自己的i节点和block块,但数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
          3. lrwxrwxrwx: l代表软链接类型  软连接的文件权限为rwxrwxrwx,但实际权限要看它所包含的另一个文件的权限
          4. 修改任意文件,另一个都改变
          5. 删除原文件,软链接不能使用
    

    正确的姿势:


    Paste_Image.png

    错误的姿势:


    Paste_Image.png
    原文件不写绝对路径,则代表软连接也是此目录:
    Paste_Image.png

    三、文件搜索命令

    • 文件搜索命令 locate(优点速度快,缺点只能使用文件名搜索)
            * locate 文件名(文件名如果不是绝对路径的话,默认会从根目录查找)
              会在后台数据库中按文件名搜索,所以搜索速度很快。
            * /var/lib/mlocate(可通过【locate locate】命令找到这个数据库)
              #locate命令所搜索的后台数据库(正常是一天会更新一次,导致如果创建了新文件,会搜索不到)
            * updatedb(强制更新/var/lib/mlocate,这样即使新创建的文件,也能搜索到了)
    
    Paste_Image.png

    下面做个实验:
    在/tmp/目录下创建一个test1.abc的文件,然后使用locate搜索它,结果肯定是找不到,然后使用强制更新,发现还是找不到???这是为什么呢?


    Paste_Image.png

    切换到【/etc/updatedb.conf】配置文件:


    Paste_Image.png
    其中:
        1. PRUNE_BIND_MOUNTS = "yes" 意为开启搜索限制,会在执行locate命令时根据这个配置去搜索
        2. PRUNEFS = "……" 意为搜索时忽略的文件系统
        3. PRUNENAMES = "……" 意为搜索时忽略的文件类型
        4. PRUNEPATHS =  "……" 意为搜索时忽略的目录(路径)
    

    知道了上述知识,/tmp/下创建的test1.abc为什么找不到就不难理解了,因为根本就是故意忽略不去搜索这个目录了嘛!

    • 命令搜索命令whereis 与which
      • 搜索命令的命令whereis
    whereis [选项] 命令名 
    搜索系统命令所在路径及帮助文档所在位置
    选项:
          -b:只查找可执行文件
          -m:只查找帮助文件
    
    Paste_Image.png
      * 搜索命令的命令which
    
    which  命令名 
    搜索系统命令所在路径及别名。但不是所有命令都有别名。
    
    Paste_Image.png

    --color=auto,意思是ls的查询结果自动显示各自的颜色。
    注意:实际上,并不是所有命令都可以查到的,例如:cd 切换目录命令。这是为什么呢?因为cd命令是shell自带命令,不需要独立的执行文件。


    Paste_Image.png
      * PATH环境变量
        * PATH环境变量:定义的是系统搜索命令的路径。
    
    Paste_Image.png
    注:echo是输出命令。
    实际上我们每输入一个命令,都会去PATH环境变量存储的路径里找。每个路径以冒号分割。
    如果输入的命令在PATH里找不到呢,就会报如下信息:
    Paste_Image.png
    • 文件搜索命令find(遍历全部,速度慢)
      • find命令
    find [搜索范围] [选项] [搜索条件]
    如果使用find命令搜索,条件是按名称,则名称一定要写得准确度到达百分之百。否则不会搜出来!
    当然如果忘记名称具体内容了,可以使用通配符,结果会与通配符完全匹配才显示。
    选项:
    -name 按名称区分大小写搜索
    -iname 按名称不区分大小写搜索
    -user 按照所有者搜索
    -nouser 查找没有所有者的文件
    -atime +10 10天前文件访问时间
    -ctime 10  10天当天改变文件属性时间
    -mtime -10 10天内修改文件内容时间
    #以上三条选项后缀天数可以随意改变。
    -inum 查询符合i节点的文件
    -size 查询符合文件大小的文件(后缀参数+代表大于 -代表小雨,例如 +25k代表大于25k的为文件)
    -size 复杂化,例如:find /root -size +20k -a -size  -50k 意思为:在/root目录下查询文件大小为大约20k且小于50k的为文件 。
                -a  and 逻辑与,两个条件都满足
                -o  or  逻辑或,两个条件满足其中之一即可
    -size 更加复杂,例如:find /root -size +20k -a -size -50k -exec ls -lh {} \; 
    意思为:在/root目录下查询文件大小为大约20k且小于50k的为文件并且显示详细信息 。
    其中 -exec ls -lh {} \; 对搜索结果执行详细展示操作。固定格式为:-exec 要执行的命令 {} \; 注意空格!!
    
    * Linux中的通配符
    ```
     *  匹配任意内容
    

    ? 匹配任意一个字符
    [] 匹配任意一个中括号内的字符
    ```
    匹配 *:


    Paste_Image.png

    匹配 ? :


    Paste_Image.png
    匹配 [] 内任意字符:
    Paste_Image.png
    使用选项【-iname】不区分大小写搜索文件
    Paste_Image.png
    查询有所有者的文件
    Paste_Image.png

    查询没有所有者的文件,这样的文件除了proc和sys目录下和U盘文件之外,都是linux的垃圾文件,直接删除即可。


    Paste_Image.png
    查询/var/log目录下10天以前是否有修改过内容的log文件
    Paste_Image.png
    查询大于25k的文件。此处注意千字节要小写的k,兆字节要大写的M。
    Paste_Image.png
    查询符合i节点的文件
    Paste_Image.png
    查询/root目录下文件大小大于2k且小于10k的文件并显示结果的详细信息!
    Paste_Image.png
    • 字符串搜索命令grep
    grep [选项] 字符串  文件名
    在文件当中匹配符合条件的字符串,并将字符串所在的行一起显示出来
    选项:
            -i 忽略大小写
            -v 排除指定字符串 
    

    这个命令比较简单,就不做太多例子了。


    Paste_Image.png
    • find命令与grep命令的区别
      • find命令:在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。范围是系统中。
      • grep命令:在文件的那个中搜索符合条件的字符串。如果需要匹配则使用正则表达式匹配,正则表达式包含匹配,即结果中包含符合条件字符串,就会显示整行。范围是一个文件中。

    四、帮助命令

    • 帮助命令 man(manual)
    man 命令(不包含shell内部命令)
    获取指定命令的帮助
    

    例如,获取ls命令的帮助

    Paste_Image.png

    下面搜索以下man的man帮助:


    Paste_Image.png
    Paste_Image.png
    会发现man这个命令有以下级别,其中:
    1. 查看用户命令帮助
    2. 查看可被内核调用的函数的帮助
    3. 查看函数和函数库的帮助
    4. 查看设备和特殊文件的帮助(主要是/dev目录的文件)
    5. 查看配置文件的帮助
    6. 查看游戏的帮助
    7. 查看其他杂项的帮助
    8. 查看系统管理员可用命令的帮助
    
    • 查看命令拥有哪个级别的帮助

    • man -f 命令 相当于 whatis 命令


      Paste_Image.png

      举个例子:查询passwd命令的级别,发现它有两个级别1和5,如果直接输入man passwd的话,默认会进入最小级别。


      Paste_Image.png
    • man [级别] 命令
      查看命令指定的级别的帮助文档


      Paste_Image.png
    • 查看和命令相关的所有帮助

    man -k 命令 相当于 apropos 命令
    

    会查找到所有包含指定命令的命令的帮助信息


    Paste_Image.png

    使用apropos查询


    Paste_Image.png
    • 其他帮助命令
      • 选项帮助
    命令 --help
    获取命令选项的帮助
    
    Paste_Image.png

    实际很长,下图只是部分截图:


    Paste_Image.png
    • shell内部命令帮助
    help shell内部命令
    获取shell内部命令的帮助
    怎么区分是否是shell的内部命令呢?
    使用【whereis 命令】可以区分,只要没有找到bin目录,即代表这个命令属于shell自带命令
    
    Paste_Image.png

    通过whereis找不到命令的执行文件,即代表它是shell内部命令,使用【help 命令】的方式找它的帮助


    Paste_Image.png
    • 详细命令帮助info
    info 命令
    操作:
    -回车 → 进入子帮助页面(带有*号标记)
    -u    → 进入上层页面
    -n    → 进入下一个帮助小节
    -p    → 进入上一个帮助小节
    -q    → 退出
    

    info这个命令,打开后是一个整体的大文档,包含了所有的命令。
    具体可参考这篇文章:重拾简单的linux指令之info

    五、压缩与解压缩命令

    .zip格式压缩(与windows互通,是同一种压缩)

    zip 压缩文件名 源文件
      压缩文件
    
    zip -r 压缩文件名 源目录
      压缩目录
    

    压缩文件:


    Paste_Image.png

    压缩目录:


    Paste_Image.png

    .zip格式解压缩(与windows互通,是同一种压缩)

    unzip 压缩文件
    解压缩.zip文件
    
    Paste_Image.png

    .gz格式压缩(可以被windows的压缩软件解压缩)

    gzip 源文件
    压缩为.gz格式的压缩文件,源文件会消失
    
    gzip -c 源文件 > 压缩文件
    压缩为.gz格式,源文件保留
    
    gzip -r 目录
    压缩目录下的所有文件,但是不能压缩目录
    
    Paste_Image.png

    .gz格式解压缩

    gzip -d 压缩文件
    解压缩文件
    
    gunzip  压缩文件
    解压缩文件
    
    Paste_Image.png

    解压缩目录,加-r


    Paste_Image.png

    .bz2格式压缩

    注意:bzip2命令不能压缩目录

    bzip2 源文件
    压缩为.bz2格式,不保留源文件
    
    bzip2 -k 源文件
    压缩为.bz2格式,保留源文件
    
    Paste_Image.png

    .bz2格式解压缩

    bzip2 -d 压缩文件
    解压缩 -k 保留压缩文件
    
    bunzip2  压缩文件
    解压缩 -k 保留压缩文件
    
    Paste_Image.png

    打包命令tar

    tar -cvf 打包文件名 源文件
    选项:
         -c 打包
         -v 显示过程
         -f 指定打包后的文件名
    
    Paste_Image.png

    解打包命令

    tar -xvf 打包文件名 
    选项:
         -x 解打包 
    

    我发现,这个解打包命令,在解了之后,如果目录上存在同名文件是不提示直接覆盖的。导致我第一次解完都没看到效果。后来删掉了原文件,再次解包,才能看出效果。


    Paste_Image.png

    .tar.gz压缩格式

    其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

    tar -zcvf 压缩包名.tar.gz 源文件
    选项:
        -z 压缩为.tar.gz格式
    
    tar -ztvf 压缩包名.tar.gz 
    选项:
        -t 不解压.tar.gz格式文件,只是查看内容(.tar.bz2也通用)
    
    tar -zxvf 压缩包名.tar.gz 
    选项:
        -x  解压缩.tar.gz格式
    

    压缩和解压缩.tar.gz格式文件:


    Paste_Image.png

    .tar.bz2压缩格式

    其实.tar.bz2格式是先打包为.tar格式,再压缩为.bz2格式

    tar -jcvf 压缩包名.tar.bz2源文件
    选项:
        -j 压缩为.tar.bz2格式
    
    tar -jxvf 压缩包名.tar.bz2 [-C 目标路径] 
    选项:
        -j  解压缩.tar.bz2格式
       [-C 目标路径] 解压到指定路径,不写这项则认为当前路径。(.tar.gz也通用)
        
    

    压缩和解压缩.tar.bz2格式文件:


    Paste_Image.png

    将压缩文件压缩到指定目录:


    Paste_Image.png

    将当前文件压缩到指定路径:


    Paste_Image.png
    将压缩文件解压到指定路径:
    Paste_Image.png

    多个文件合并压缩:


    Paste_Image.png
    不解压只查看压缩文件内容:
    Paste_Image.png

    六、关机与重启命令

    1. shutdown命令 (更安全,会在关机时保存信息)

    shutdown [选项] 时间 [&]
    选项:
        -c 取消前一个关机命令
        -h 关机
        -r 重启
    时间:
        now  代表当前时间
        xx:xx 几点积分
    &:
        把这条命令放入计算机后台执行(记得敲回车才能再次回到终端)。
        不加的话,只要设定了时间,没到指定时间之前,系统就会锁住。(如果锁住,使用ctrl+c解锁,可以再重新输入一条加了&命令)
    

    设置关机命令,完成后页面被锁住,不能操作。(真实场景,避免使用关机命令,因为服务器一般都不在公司里,一旦关了机,开机可不能通过命令远程操作哦。)


    Paste_Image.png

    这时按Ctrl+C可以取消此命令:


    Paste_Image.png
    这时,再输入关机命令并在后边+&,即将此任务放入后台,并回车,就可调出熟悉的[root@localhost ~]# :
    Paste_Image.png

    取消关机命令:


    Paste_Image.png

    2. 其他关机命令 (不够安全,关机时有可能不保存信息)

    • halt
    • poweroff
    • init 0

    3. 其他重启命令

    • reboot
    • init 6

    4. 系统运行级别

    • 0 关机
    • 1 单用户(一般操作忘记密码 参考:linux单用户模式
    • 2 不完全多用户,不含NFS服务(NFS用户共享服务)
    • 3 完全多用户(包含NFS服务)
    • 4 未匹配
    • 5 图形界面(前提是给系统装了图形界面才能启动)
    • 6 重启

    5. 查看系统运行级别

    runlevel 
    
    Paste_Image.png

    其中:
    前一个N代表之前的运行级别是Null 后边的3,代表当前的运行级别是3。

    6. 修改系统默认运行级别
    使用cat /etc/inittab命令,查看inittab内容:

    Paste_Image.png

    7. 退出登录命令

    logout
    

    七、其他常用命令

    挂载命令

    在Linux当中,将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。

    ** 1. 查询与自动挂载**

    mount 
    查询系统中已经挂载的设备
    
    Paste_Image.png

    为了更容易理解,解说第一条:

    /dev/sda5 on / type ext4 (rw)  
    代表第一块(SCSI or SATA 接口)硬盘的第一个逻辑分区挂载在根分区,它的文件系统是ext4,权限是读写。
    /dev/sda5:第一块(SCSI or SATA 接口)硬盘的第一个逻辑分区
    

    那么是不是呢?切换到根目录下的dev目录使用find命令搜索:


    Paste_Image.png
    【.】:代表当前目录,此处为dev目录
    【sda】:代表整个硬盘
    【sda1~5】:代表分区1~5。由此可见,并不是所有的分区都挂载。mount查询的已经挂载设备中只看到了sda1、3和5。
    

    为什么说sda5是第一个逻辑分区,请看下图


    Paste_Image.png
    mount -a
    依据配置文件/etc/fstab的内容,自动挂载
    

    打开/etc/fstab文件,有以下内容:


    Paste_Image.png

    虽然看不懂特别多,但大致意思是能看明白的,对吧。这就和我们之前查到的已经挂载的设备联接上了。
    只要执行mount -a就可以根据/etc/fstab内容实现自动挂载。

    ** 2. 挂载命令格式**

    mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
    选项:
          -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4(centos 6+)、iso9660(光盘的默认文件系统)等文件系统
          -o 特殊选项:可以指定挂载的额外选项
    

    特殊选项:


    Paste_Image.png

    做个实验,测试exec/noexec选项:

    1. 使用vi命令创建一个hello.sh文件
      关于vi,参考:vi/vim基本使用方法

    2. 假如我会写脚本了,写了个hello world,每个程序员的第一步,首先向世界打个招呼_

     #!/bin/bash
    //是指此脚本使用/bin/bash来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
    
    Paste_Image.png
    1. 切换到home目录,可以看到新创建的hello.sh文件:


      Paste_Image.png
    2. 给hello.sh设置执行权限 chmod 755 hello.sh,发现权限的确增加了x,并且文件名称变成鲜明的绿色~


      Paste_Image.png
    3. 直接输入它的路径,就可以直接执行文件中脚本,so输出了可爱可亲的,“hello world”,我说hello,记得给我回world~哈哈


      Paste_Image.png
    4. 重点来了,对/home目录执行了重新挂载并不允许执行其内部的可执行文件的特殊选项,直接导致我们刚才新建的hello.sh文件,无法打开,因为木有权限了大门都锁上了,门里的小盒子还能打开吗?当然是不行的!当然对root用户是有办法打开的,但现在重点不再此哦~

      Paste_Image.png
    5. 这样太危险了,还是恢复会来吧~


      Paste_Image.png

    ** 3. 挂载光盘**

    mkdir /mnt/cdrom
    建立挂载点
    mount -t iso9660 /dev/cdrom /mnt/cdrom/
    挂载光盘
    or
    mount /dev/sr0 /mnt/cdrom/
    系统默认知道/dev/sr0是光盘,所以文件系统iso9660也可以省略。
    /dev/cdrom是/dev/sr0的软链接,建议写/dev/sr0,因为软链接需要系统完全启动才生效,如果遇到故障,为了保险还是使用/dev/sr0更好。
    
    
    Paste_Image.png

    出现一行提示,并不是报错!因为设备挂载后默认是rw权限,但光盘是不能写入的,所以只有读权限。


    Paste_Image.png

    切换到挂载点,查看是否有文件:


    Paste_Image.png

    ** 4. 卸载命令**

    umount 设备文件名或挂载点
    
    Paste_Image.png

    ** 5. 挂载U盘**

    fdisk -l
    查看U盘设备文件名
    mount -t vfat /dev/sdb1 /mnt/usb/
    挂载U盘
        vfat 文件系统fat32
        /dev/sdb1 不是固定的,需要fdisk -l查到U盘的设备文件名才能确定
    
    注意:Linux默认是不支持NTFS文件系统的。
    

    挂载命令用户登录查看和用户交互命令

    • 查看登录用户信息
      w [用户名]
      不写用户名,代表查看当前登录的所有用户信息。
      写了用户名,只查看指定的这个用户信息
      命令输出:
        * USER:登录的用户
        * TTY:登陆终端
        * FROM:从哪个IP地址登录
        * LOGIN@:登录时间
        * IDLE:用户闲置时间
        JCPU:指的是所有和该终端连接的所有进程占用时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用时间。
        * PCPU:指当前进程所占用时间
        * WHAT:当前正在运行的命令
    
    Paste_Image.png
      who
      命令输出:
        * 登录的用户
        * 登陆终端
        * 登录时间
        * 从哪个IP地址登录
    
    Paste_Image.png
    • 查看当前登录和过去登录的用户信息
      last
      last命令默认读取/var/log/wtmp文件数据
      命令输出:
        * 登录的用户
        * 登陆终端
        * 登陆IP
        * 登录时间
        * 退出时间(在线时间)
    

    这个数据很长,截个开头意思意思。这个日志还是很重要的,可以查看服务器是否被入侵。

    Paste_Image.png
    • 查看所有用户的最后依次登陆时间
      lastlog
      last命令默认读取/var/log/lastlog文件内容
      命令输出:
        * 登录的用户
        * 登陆终端
        * 登陆IP
        * 最后一次登录时间
    
    Paste_Image.png

    相关文章

      网友评论

          本文标题:Linux学习笔记(二、Linux常用命令)

          本文链接:https://www.haomeiwen.com/subject/zlopfxtx.html