23 02 2021

一、Linux常用命令

一、linux命令的格式

        1、命令  [选项]  [参数]  (选项是调整命令的功能,参数是这个命令操作的对象)

             ls     -al    anaconda-ks.cfg(参数)  文件、目录、进程可以作为参数

             ls  list    显示目录下内容

             ls  -a       显示所有文件(包含隐藏文件)

             ls  -al      长格式显示所有文件

             ls  -h      文件大小显示为常见大小单位    B   KB  MB

             ls  -d      显示目录本身,而不是里面的子文件

             ls  -i +文件名      显示文件的inode号

             图片.png

             ls  -l     长格式显示 

             -rw-------    1   root    root    1190    08-10 23:37     anaconda-ks.cfg

             第一项:     权限位 

             第二项:     1      引用计数(对没目录来说代表目录下的子目录,对文件没什么毛用)

             第三项:     root       所有者

             第四项:     root    属组

             第五项:     大小

             第六项        最后一次修改时间

             第七项        文件名

   2、提示符 

     [root@localhost src]#

     [当前登录用户@主机名 当前所在目录]#  

     #  超级用户   

     $  普通用户

     用户家目录   管理员家目录 /root      普通用户家目录 /home/用户名

二、目录操作命令

         1、cd    切换所在目录       列:cd /home

       相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。    root]#cd  ../usr/local/src

                     绝对路径:cd  /usr/local/src     从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置

                   cd 或者cd  ~       进入当前用户的家目录     超级用户 /root       普通用户 /home/aa/

                   cd  -        进入上次目录

                   cd  ..        进入上一级目录

                   cd  .         进入当前目录

         2、pwd    显示当前所在目录      

         3、linux常见目录 

            /                         根目录

            /bin                    命令保存目录(普通用户就可以读取的命令)

            /boot                  启动目录 ,启动相关文件

            /dev                    设备文件保存目录

            /etc                     配置文件保存目录

            /home                 普通用户的家目录

            /lib                      系统库保存目录

            /mnt                    系统挂载目录

            /media                 挂载目录   

            /root                    超级用户的家目录

            /tmp                     临时目录

            /sbin                    命令保存目录(超级用户才能使用的目录)  

            /proc                    直接写入内存的 (内存沾满之后会死机,重启会消失,不要随便动内存)

            /sys                      直接写入内存的

            /usr                      系统软件资源目录

                  /usr/bin/        系统命令(普通用户)

                  /usr/sbin/       系统命令(超级用户)

            /var                       系统相关文档内容

                  /var/log          系统日志位置

                  /var/spool/mail/    系统默认邮箱位置

                  /var/lib/mysql/       默认安装的musql库文件目录 

          4、建立目录

            mkdir  目录名

            mkdir  -p   11/22/33              递归创建目录 

          5、删除目录

            rmdir         目录名           (只能删除空目录)

            rm             文件名              删除文件

            rm  -rf       目录                (删除文件和目录)  

                   -r        递归 删除目录

                   -f        强制

           6、tree       目录名    显示指定目录下所有内容的目录树

三、文件操作命令

            1、创建空文件或修改文件时间

                touch        文件名

            2、删除文件

                rm  -rf      文件名

                       -r       删除目录

                       -f       强制

             3、cat   文件名        查看文件内容;从头到尾

                  cat  -n   文件名     列出行号

                  空格向下翻页,b向上翻页,q退出 

                  linux本机  shift+PageUp 向上翻页,shift+PageDown 向下翻页 

             4、more     文件名       分屏显示文件内容

             5、head     文件名       显示文件头

                    head  -n  行数     文件名        显示指定文件头几行

                    head  -n  20        test1          显示文件头20行

                    head  -20            test1          显示文件头20行

              6、tail        文件名      显示文件尾

                     tail    -f   文件名          监听文件尾,不退出

                    快捷键

                    ctrl + c    强制终止

                    ctrl + l     清屏

                    ctrl + u    光标所在删除到行首

                    ctrl + y    粘贴删除的内容

                    ctrl + a    光标移动到行首

                    ctrl + e     光标移动到行尾

                7、链接文件(类似于windows的快捷方式)

                    ln  -s  原文件   目标文件     文件名都必须写绝对路径

                    ln  -s  /root/mymulu/test1      /tmp/bols

                    图片.png

                    更改原文件软链接数据也更改,更改软链接原文件数据也一样更改,删除原文件软链接打不开,删除软链接原文件不影响。

                    图片.png   

四、文件和目录都能操作的命令

           1、rm删除        删除文件或目录        

            2、cp复制

                cp     原文件    目标位置

                        -r    复制目录

                        -p    连带文件属性复制

                        -d    若原文件是链接文件,则复制链接属性

                        -a    相当于    -pdr

                cp  -a  /root/mymulu/test2     /tmp/t2

            3、mv     剪切或改名

                    mv    原文件    目标位置

                    mv  /root/mymulu  /tmp/mymulu         剪切

                    mv  /root/mymulu  /root/my1                原文件位置和目标文件位置在同一个目录下就是改名

五、权限管理

            1、权限位 

                -rw-r--r--.     1     root    root     11    Mar 2 13:36      test2

                权限位十位:

                    第一位:文件类型,(-  普通文件;d 目录文件;l  链接文件;c  设备字符文件  )

                    第二位到第十位(共九位权限位)

                    九位    属主权限u(user)      属组权限g(group)        其他人权限o(other)

                     r            读          4

                        w           写             2

                        x            执行          1

                    

                图片.png

            2、chmod     修改权限

                    chmod     u+x    test1        test1文件的属主加上执行权限

                    chmod     u-x    test1

                    chmod     g+w ,o+w    test1

                    chmod     u=rwx    test1

                    chmod     755     test1

                    chmod     644     test1    

                                     777      绝对不允许在服务器给目录赋予777权限   

            3、权限的意义

                    3.1、权限对文件的含义

                        r:读取文件内容                           对应命令: cat    more    head    tail

                        w:编辑、新增、修改文件内容(不包含删除文件内容)    对应命令: vi、echo        

                        x:可执行     对文件来说最高权限是执行权限

                        给hello.sh文件赋予755权限,并且执行它

                        图片.png

                        执行文件两种方式,1、绝对路径方式            2、相对路径方式

                        图片.png

                     3.2、权限对目录的含义

                        r:可以查询目录下文件名            对应命令:ls

                        w:具有修改目录结构的权限。如新建文件和目录,删除此目录下得文件和目录,重命名此目录下得文件和目录,剪切, 对应命令:touch      rm    mv     cp ,对目录来说最高权限是写权限

                        x:可以进入目录       对应命令:cd

                        目录可用权限: (必须要有查看权限和进入目录权限)

                        0        最小权限

                        5        基本权限

                        7        最大权限

            4、属主和属组命令   chown

                    chown      用户名      文件名            改变文件属主

                    chown      user1       aa1                 user1用户必须存在

                    chown      user1:user1     aa1         改变属主的同时改变属组

                    useradd    用户名            添加用户      (在添加用户的时候默认会添加一个和用户名一样的组)

                    passwd     用户名            设定用户密码  

六、帮助命令

               1、man   命令                    查看命令的帮助

                    man   ls

               2、命令  --help     

                    touch     --help         查看命令的常见选项  


七、查找命令

               1、whereis   命令名           查找命令的命令,同时看到帮助文档的位置

                它在哪?

                图片.png

                它是干嘛的

                图片.png

                2、find           搜索命令

                按照“文件名”查找    -name

                find    查找位置    选项            文件名

                find     /               -name        abc                按照文件名查找

                图片.png

                图片.png

                按照“用户”查找    -user

                find    .    -user    root           查找当前目录所有者是root的文件

                find    .    -group    root        查找当前目录所属组是root的文件

                find    /    -nouser                 查找/目录下没有属主的文件

                Linux中没有所有者的文件,以下两种是正常的:

                    1、外来文件(U盘、光盘)

                    2、极少内核产生的文件

                    /proc          /sys          /mnt/cdrom/  除了这三个目录     


                通配符:

                    *        匹配任意内容

                    ?        匹配任意一个内容

                    []        匹配任意一个中括号里面的内容

                正则:

                    *        前一个字符匹配任意多次

                    .         匹配任意一个字符

                    .*        匹配任意内容

                    ?        前一个字符匹配0次或1次

                    []        匹配中括号内任意一个字符

                    通配符:用来匹配查找文件名,通配符是完全匹配,必须一模一样(用来匹配字符串),完全匹配(find查找)

                    正则:    用来匹配文件里的内容,是包含匹配(grep查找)

                按照“文件大小”查找    -size

                -size    按照文件大小查找    +50k,大于50k,-50k,小于50k,50k,等于50k      k(千字节必须小写),M(兆字节必须大写)

       -size       n[cwbkMG](选项)

                  File uses n units of space.  The following suffixes can be used: 文件使用n个空间单位。可以使用以下后缀:

                      ‘b’    for 512-byte blocks (this is the default if no suffix is used)  b是选项默认的,不加单位则按照512字节作为一个数据块搜索

                      ‘c’    for bytes        按照字节搜索

                        图片.png

                      ‘w’    for two-byte words         双字节,按照一个字搜索

                      ‘k’    for Kilobytes (units of 1024 bytes)        “k”表示千字节(1024字节的单位)按照千字节搜索

                      ‘M’    for Megabytes (units of 1048576 bytes) “M”表示兆字节(单位为1048576字节)按照兆字节搜索

                      ‘G’    for Gigabytes (units of 1073741824 bytes)  “G”表示千兆字节(单位为1073741824字节)按照千兆字节搜索              


                     find    .    -size    -1k        在当前目录查找小于1k字节的文件

                    图片.png

            

                    按照“文件类型”查找    -type

                    -type      类型        按照文件类型查找     f:普通文件    d:目录    l:链接文件

                    find     .     -type      f

                    find     .     -type      d

                    按照“权限”查找    -perm

                    find    .    -perm    644       

                    按照“文件名不区分大小写”查找     -iname    

                    find    .    -iname   abc

                    图片.png 

                    按照“i接点”查找    -inum

                    find    .    -inum   786119    知道i节点去查找文件名

                    图片.png    

                    ls -i   知道文件名去查找i节点

                    图片.png

                    按照“修改时间”查找    -mtime

                    -10,10天内;+10,10天前;10,第10天

                    在查找出的结果中,直接进行命令操作

                    图片.png

                    长格式显示1天内m2目录下面创建的文件和目录

                    图片.png

                 3、grep    "字符串"    文件名        查找符合条件的字串   

                        grep    "root"    /etc/passwd

                        grep    -v    "root"    /etc/passwd         -v反向选择(取反),在/etc/passwd  中不存在root 字符的

                4管道符 

                        命令1     |    命令2        命令1的执行结果作为命令2的执行条件  (管道符的作用和-exec的作用一模一样,find命令不支持管道符,所以专门开发了-exec命令)

                        只要加了管道符,不论前面是文件还是内容,全都当做文件内容来处理,使用grep搜索查找

                        netstat -an | grep ESTABLISHED | wc -l       统计正在连接服务器的网络连接数量

                        补充命令:

                        netstat        查看网络状态的命令

                                -t        查看tcp端口   (tcp通信,需要进行三步,A问B你在吗,B答复A我在,A再给B回复我要发数据了,可靠)

                                -u        查看udp端口    (udp,A直接发数据给B,速度快)

                                -l         监听                         

                                -n        以IP和端口号显示,不用域名和服务名显示

                        netstat        -tuln        查看本机开启的服务

                        图片.png

                        netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n           按照连接数量,统计哪个ip地址连接数量多,可以用来屏蔽排除非法攻击

八、压缩和解压缩

               1、linux可以识别的常见压缩格式

                .gz                .bz2

                2、常见的压缩和打包命令

                .tar.gz (压缩性能相对较差,但是速度更快)          .tar.bz2  (算法先进,压缩出来结果更小,但是更占用时间)

                linux不靠扩展名区分文件类型,而是靠权限,建议linux系统下压缩包严格区分扩展名

                tar    -zcvf    压缩文件名    源文件

                tar    -zcvf    aa.tar.gz        aa

                         -z        识别.gz格式

                         -j         识别.bz2格式

                         -c        压缩

                         -x        解压缩

                         -v        显示压缩过程

                         -f        指定压缩包名          

                             -t        只查看不解压

                查看不解包

                tar    -ztvf    aa.tar.gz            查看不解包

                tar    -jtvf    aa.tar.bz2

                指定到解压位置

                tar    -jxvf    aa.tar.bz2    -C    /tmp/            

九、关闭和重启命令

               服务器绝对不允许关机,只能重启,并且服务器应该定时重启,保证服务器状态归零

               1、shutdown    -h    now        没有特殊情况,禁止使用此命令

                    shutdown    -h                关机

                    shutdown    -r    now      立即重启     (shutdown     -r  重启,最安全的重启命令,会保存正在运行的服务然后再重启)     

                    shutdown    -r    16:00    16:00重启       -r(reboot)

                    windows设置关机,shutdown    -s    -t    200(秒)

                2、reboot    重启

十、挂载命令

               linux所有存储设备都必须挂载使用,包括硬盘

                挂载:给你的分区找到一个硬件名,创建一个目录,把它连起来

                /dev/sr0<------->cdrom

               1、mount                挂载

                mount    -t    文件系统    设备描述文件    挂载点(已经存在的空目录)

                mount    -t    iso9660     /dev/sr0            /mnt/cdrom/         默认挂载选项

                mount     /dev/sr0         /mnt/cdrom/                                   简写挂载

                光盘挂载

                /dev/sda1                第一个scsi硬盘的第一个分区

                /dev/cdrom            光盘

                /dev/hdc                 光盘        centos5.5

                /dev/sr0                  光盘        centos6.x

                图片.png

                /dev/sr0   设备文件名      /mnt/cdrom/ 才是盘符

                

                mount直接回车,查看当前已经挂载的设备


                2、umount              卸载

                    umount    /mnt/cdrom        强调:退出挂载目录,才能卸载

十一、网络命令

               1、ping    测试网络连通性

                    ping    -c    次数    ip        探测网络通畅

                    图片.png

                2、ifconfig        查询本机网络信息

                    图片.png

                

                 Linux脚本中 #是注释  唯独一句  #!/bin/bsah 不是注释, 标注下面是shell语句开始...


十二、centOs7防火墙操作命令

        1、防火墙开启、关闭、禁用

            (1)设置开机启用防火墙:systemctl enable firewalld.service

            (2)设置开机禁用防火墙:systemctl disable firewalld.service

            (3)启动防火墙:systemctl start firewalld

            (4)关闭防火墙:systemctl stop firewalld

            (5)检查防火墙状态:systemctl status firewalld

        2、使用firewall-cmd 配置端口

            (1)查看防火墙状态:firewall-cmd --state

            (2)重新加载配置:firewall-cmd --reload

            (3)查看开放的端口:firewall-cmd --list-ports

            (4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent

        命令含义:

            –zone #作用域

            –add-port=9200/tcp #添加端口,格式为:端口/通讯协议

            –permanent #永久生效,没有此参数重启后失效

        注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

            (5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent