置顶
【原创】 Linux 用户管理和服务管理
11 03 2021

五、Linux用户管理和服务管理

一、用户管理命令

        摘要:

                用户信息文件: /etc/passwd

                        user1:x:500:500::/home/user1:/bin/bash

                        图片.png

                        第一列:用户名

                        第二例:密码位(x代表设置了密码)

                        第三列:UID                用户ID

                                0:                       超级用户

                                1-499:                系统用户(伪用户,不允许登录linux,绝对不允许删除,是用来启动linux服务或者命令或者程序的)

                                >500:                 普通用户        (默认500-60000)

                        第四列:GID                 初始组ID

                        第五列:用户说明

                        第六列:家目录

                        第七列:用户登录之后的权限

                                    /bin/bash

                        

                        影子文件:        /etc/shadow        (用户密码保存文件,权限000,root也要wq!才能保存)

                        组信息文件:    /etc/group

                            sc : x : 500 :

                            组名:组密码位:组ID:组中附加用户

                        图片.png

                        windows创建的用户都在user组

                        图片.png

                    

                    图片.png

                       


        1、添加用户

            useradd    用户名    添加用户

            useradd    选项    用户名

            选项:

                    -g    组名    指定初始组                不要手工指定

                    -G    组名    指定附加组,把用户加入组,使用附加组

                    -c     说明     添加说明

                    -d     目录    手工指定家目录,目录不需要事先建立

                    -s     /bin/bash    手工指定用户登录之后的权限

                    -u    uid:        指定UID

                    

                    图片.png

                

                    useradd    -g    aa    bb        添加bb用户,同时指定初始组为aa

                    useradd     -G    user1    aa         添加用户aa,指定附加组为user1

                   

                    gpasswd    -a    用户名    组名    

                    useradd     -g    组名    用户名

                    

                    user1:

                    初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组

                    附加组:每个用户可以属于多个附加组,要把用户加入组都是加入附加组

        2、设定密码

                    passwd    用户名

                    passwd                    改变当前用户密码

                    passwd    user1        改变user1用户密码

        3、删除用户

                    userdel    -r    用户名            -r连带家目录一起删除

        4、添加组

                    groupadd    组名

        5、删除组

                    groupdel    组名        注意:组中没有初始用户

        6、把已经存在的用户加入组

                     gpasswd    -a    用户名    组名            把用户加入组

                     图片.png

                     gpasswd    -d    用户名    组名            把用户从组中删除 

二、用户相关命令

        1、id    用户名            显示用户的UID,初始组合附加组

                     图片.png                                              

        2、su    -    用户名        切换用户身份            - 连带环境变量一起切换  

             env    查看Linux操作环境        

三、ACL权限    用来解决用户对文件身份不足的问题       

        举例:/work          项目提交目录

                所有者、所属组有提交更改创建权限,其他人无任何权限

                leigong --> 所有者

                lggroup --> 所属组

                /work/      权限 770

        操作:

                mkdir    /work

                chmod    770    /work/

                useradd     leigong

                groupadd    lggroup

                gpasswd    -a     leigong    lggroup   (所有者加入组)

                将所有者leigong加入到lggroup组中

                gpasswd    -a    user1    lggroup      (用户user1加入组)

                将用户user1加入到lggroup组中

                chown    leigong:lggroup    /work

                ll    -d    /work/

                图片.png  

        1、getfacl    文件名    查询文件的acl权限

        2、setfacl    选项    文件名    设定acl权限

                            -m                   设定权限

                            -b                    删除权限

               图片.png   

              班主任以5权限进到了work目录

               图片.png

             删除facl权限

             图片.png  

             

               setfacl    -m    u:用户名:权限    文件名

               setfacl    -m    g:组名:权限        文件名

                

                setfacl    -m    u:aa:rwx    /test            给test目录赋予aa是读写执行的facl权限

                setfacl    -m    u:cc:rx    -R    soft/        递归赋予acl权限,只能赋予目录

                -R    递归

                setfacl    -b    /test                                删除acl权限

                setfacl    -x    u:用户名    文件名             删除指定用户的ACL权限      

        3、setfacl    -m d:u:bzr:5    -R    /work/        acl设置默认权限   d(default) 

                图片.png          

                

                图片.png

                注意:默认权限只能设置目录

                注意:如果给目录赋予acl权限,两条命令都要输入

                setfacl    -m    u:用户名:rx    -R  文件名            只对已经存在的文件生效       

                setfacl    -m    d:u:bzr:rx    -R    文件名            只对未来要新建的文件有效 

四、输出重定向和多命令顺序执行

        1、输出重定向        (把应该输出到屏幕的输出,重定向到文件)

                >    覆盖的方式写进文件

                >>    追加的方式写进文件

                ls    >    aa    覆盖到aa

                ls    >>    aa    追加到aa

                ls    fdhfjsolk    2>>aa    错误信息记录到aa文件        2    错误信息        注意:错误输出,不能有空格

                图片.png    

               掌握:

                       ls    >>    aa    2>&1                        错误和正确都可以输入到aa,可以追加,  2&1把标准错误重定向到标准正确输出

                       ls    >>    aa    2>>/tmp/bb          正确信息输入aa,错误信息输入bb

五、服务和进程管理

        进程管理三个主要任务:

                判断服务器健康状态        正常、非法            top

                查看所有正在运行的进程            ps    pstree

                强制终止进程            kill    pkill

                服务器合理资源范围            70/90:内存占用不超过70%,CPU占用不超过90% 

                      

        一、进程查看      

            1、ps    aux        查看当前系统所有运行的进程     

                    -a    显示前台所有进程

                    -u    显示用户名

                    -x    显示后台进程

            服务器遵循70/90原则,即内存占用率不超过70%,CPU占有率不超过90% !!!


图片.png

                    user:        用户名

                    PID:         进程ID                PID=1的进程永远是/sbin/init    系统启动的第一个进程

                    %CPU:        CPU占用百分比

                    %MEM:       内存占用百分比  

                    VSZ:            虚拟内存占用量        KB

                    RSS:          固定内存占用量

                    TTY:           登录终端     tty1-7本地终端        1-6字符,7图形;pts/0 - 255    远程终端

                    STAT:        进程状态    S:睡眠    D:不可唤醒    R:运行    T:停止    Z:僵死    W:进入内存交换    X:死掉的进程    <:高优先级    N:低优先级    L:被锁进内存    s:含子进程    +:位于后台    l:多线程      

                    START:       进程触发时间

                    TIME:         占用CPU时间

                    COMMAND:    进程本身

         2、pstree    查看进程树

                pstree    -p    查看进程树(包括inode号)

                图片.png

         3、top

                图片.png

            

             第一行:系统当前时间    系统持续时间    登录用户数量    1,5,15分钟之前的平均负载

             第二行:进程总数         进程总数125个,1个运行,124个休眠

             第三行:CPU占用率            %id空闲辈分比

             第四行:内存使用    总共        使用        空闲        缓存

             第五行:swap使用 

             可通过1,5,15分钟之前的平均负载、CPU空闲率、内存空闲率判断服务器的基本压力

             操作命令:

                    M:内存排序

                    P: CPU排序

                    q: 退出

        4、进程管理    终止进程     (没事别老杀进程,apache、mysql等进程都有启动终止命令)

                kill    信号    PID        结束单个进程

                        -9    强制

                killall    -9    进程名        结束一类进程

                pkill     -9    进程名         结束一类进程   


                w     判断登录用户            

                图片.png

                pkill    -9    -t    终端号        把某个终端登录的用户踢出去(只有超级用户才能提其他用户)

                pkill    -9    -t    pts/0            把user1用户踢下去,踢完之后user1用户连接状态变成了红色

                图片.png     

六、Linux服务管理

        默认情况下,所有的服务管理命令(如:service、ntsysv、chkconfig)都不能识别源码包安装的服务        

        一、分类

            RPM包安装的服务

            1、独立的服务  (独立服务放在内存,直接响应速度快;缺点占内存)

                    启动:

                        A:service    服务名    start|stop|restart

                        B:/etc/rc.d/init.d/服务名    start      标准启动

                    自启动:

                        A:chkconfig    --level    2345(开机级别)    httpd    on|off

                        B:vi    /etc/rc.local  

                                    /etc/rc.d/init.d/httpd start   (建议用第二个)

            2、基于xinnetd的服务   (xinetd服务自己占内存,它管理的服务部占内存,缺点慢;;用得越来越少)

                图片.png

              

                ntsysv

                源码包安装的的服务

                    启动

                        /usr/local/apache2/bin/apachectl    start

                    自启动

                        vi    /etc/rc.local

                              /usr/local/apache2/bin/apachectl    start              

        二、系统默认安装的服务

                1、确定服务分类

                     chkconfig    --list        查看RPM包安装的服务的自启动状态

                        运行级别:0-6

                        0        关机

                        1        单用户模式

                        2        不完全多用户,不包含NFS服务

                        3        完全多用户,字符界面

                        4        未分配

                        5        图形界面

                        6        重启                           

                        

                        init    0        关机

                        init    6        重启

            







置顶
【原创】 Linux IP配置
06 03 2021

三、Linux IP地址配置

一、IP地址配置

        1、配置IP

                执行 setup

                选择网络配置

                图片.png

                选择设备配置

                图片.png

                选择eth0 --> 回车

                图片.png

                配置IP

                图片.png

               Ok-->Save-->Save&Quit-->Quit

                重启网络配置    service    network    restart

        2、启用网卡

                 vi    /etc/sysconfig/network-scripts/ifcfg-eth0

                 ONBOOT=no        修改为        ONBOOT=yes

                 图片.png   

                 重启网络配置    service    network    restart    

        3、修改虚拟机网络连接方式(只针对虚拟机生效)           

               把虚拟机网络连接方式选择桥接

               桥接.png

              

        4、选择桥接到哪一块网卡

                编辑---虚拟网络编辑器---桥接到有线网卡

                图片.png

        5、UUID(唯一识别符)(只针对刻录镜像)

                如果执行以上重启网络,最后一行失败,执行以下

                vi    /etc/sysconfig/network-scripts/ifcfg-eth0

                5.1、删除mac地址行重启一下就会换算UUID ,不要删除UUID  会导致无法连接

                   图片.png

               5.2、删除UUID绑定文件

                rm -rf /etc/udev/rules.d/70-persistent-net.rules

               5.3、重启   reboot  


置顶
【原创】 Linux 软件安装
06 03 2021

四、Linux 软件安装

一、软件包安装

        服务器安装原则:最小化安装、使用什么软件安装什么、尽量不卸载

        软件包选择原则:

                如果软件安装之后,是给大量客户端提供访问的,建议源码包安装

                如果软件安装之后,是给本机或者少量用户访问,建议二进制包

        1、软件包分类

                1.1 源码包:

                    优点:开源、自由定制、本机编译,所以效率高

                    缺点:编译时间长,一旦报错,很难解决

              1.2 二进制包:(也叫rpm包)    

                  优点:安装速度快,简易

                    缺点:不再开源、自定义性差、软件效率低、依赖性...

                       a包--->b包--->c包                     树形依赖

                       a包--->b包--->c包--->a包         环形依赖

                       库文件依赖      去 http://www.rpmfind.net   找

        2、rpm安装,两种安装方式(手工RPM命令安装和yum在线安装,yum是二进制的在线安装方式)

                2.1 手工RPM命令安装

                    2.1.1 包命名

                        包名-版本号-发布次数-适合linux系统.适合的硬件平台.rpm

                        E16  --->   RHEL6

                        包全名:操作没有安装的软件包,软件包使用包全名  gvfs-fuse-1.4.3-12.el6.i686.rpm(完整名字是包全名)

                        包名:操作的是已经安装的软件包使用包名  gvfs-fuse(英文是包名)

                    2.1.2 依赖性

                    2.1.3 安装

                        rpm -ivh    包全名(绝对路径)

                            -i 安装    -v 显示详细信息    -h 显示进度

                        安装位置:默认位置       rpm安装最好不要指定安装位置(有卸载命令),源码包一定要指定安装位置(源码包没有卸载命令,直接删除安装目录)

                        rpm -Uvh    包全名

                             -U 升级 

                        启动程序:

                                /etc/rc.d/init.d/httpd restart             其他linux启动命令            

                                service httpd restart                          redhat linux转悠命令,其他Linux没有    

                     2.1.4 卸载

                         rpm  -e  包名

                            在生产服务器不管是安装还是卸载都不允许强制,必须正确解决依赖性

                      2.1.5 查询

                            a:查询软件包是否安装

                                rpm    -q    包名    查询包是否安装

                                rpm    -qa    |    grep    httpd       显示所有安装包

                            b:查询包信息

                                rpm    -qi    包名    查询包的信息        -p 未安装的包

                                图片.png

                                rpm    -qip    包全名    查询没有安装包的信息        -i   information

                                图片.png

                            c:查询软件安装位置

                                rpm    -ql    包名    查询包中文件的安装位置           l -->list   列表的意思

                                rpm    -qlp    包全名    查询没有安装的包,如果安装会安装的位置

                             d:查询系统文件属于哪个包  

                                rpm    -qf    系统文件名

                                图片.png   

                      2.1.6 启动httpd服务

                            service    httpd    start|stop|restart|status            RedHat版本专有命令

                            /etc/rc.d/init.d/httpd start                                    标准启动          

                      2.1.7 网页目录

                            /var/www/html

        3、yum在线安装(前提条件能连网)

                3.1 基本命令

                      yum    -y    install    包名                安装            -y 自动回答yes

                      yum    -y    remove    包名              卸载        当它不存在,不要乱卸载,不知道被谁依赖了,卸载一时爽,一直卸载一直爽,linux系统下再装回去一个软件可就要老命了

                      yum    -y    update    包名               升级

                      yum    list                                        查询所有可以安装的包

                3.2 光盘作为yum源

                     图片.png   

                     3.2.1 cd /etc/yum.repos.d/

                      默认网络yum源生效,在本机不能连网的时候让光盘yum源生效,网络yum源改名

                      图片.png     

                    3.2.2 mount /dev/sr0    /mnt/cdrom

                    

                    3.2.3  vi    /etc/yum.repos.d/

                              baseurl=file:///mnt/cdrom/                指定yum源位置

                              enabled=1                                          yum源文件生效

                              gpgcheck=1                                        rpm验证不生效

                              图片.png  

                             本地光盘yum源起作用

                              图片.png

                              图片.png  

                              pkill    -9    yum-updatesd                  如果yum报错正在升级,执行此命令,强制杀死升级进程

                              yum    -y    install    gcc                     (gcc是C语言编译器,不装gcc,源码包不能安装,并且安装gcc只能rpm方式安装)           

        4、源码包安装

                问题1:是否可以在一台电脑中既安装RPM包Apache,又安装源码包Apache?

                答:可以,安装位置不一样,RPM包默认安装位置,源码包手工指定安装位置,一般    /usr/local/apache2/,只能启动一个80端口。

                问题2:源码包和RPM包如何选择?

                答:如果服务对大量客户端提供访问,建议用源码包,如果服务只给少数人访问,建议RPM包

                问题3:源码包从哪里来?

                答:官方网站下载

                问题3:如何把windows文件拷贝到linux系统中?

                答:1、远程传输工具winscp或者一些其他工具传输到linux

            4.1 使用传输工具把源码包从windows传输到linux系统

            4.2 安装

                4.2.1 解压

                4.2.2 cd    到解压目录

                图片.png

                4.2.3 查看安装文档

                    INSTALL    README

                4.2.4 编译前的装备

                    ./configure  --prefix=/usr/local/apache2

                    功能:

                        1.检测系统环境        生成Makefile

                        2.定义软件选项   

                 图片.png             

                4.2.5 编译  make    clean

                    make

                4.2.6 编译安装 (在这一步之前报错只需要执行make clean就行,这一步报错需要make clean, 并且删除apache2目录重来)

                    make  install

                    报错判断:

                    第一:安装过程是否停止

                    第二:注意 error    warning    no    等错误报警     

             4.3 启动

                    /usr/local/apache2/bin/apachectl    start    

             4.4 删除

                    直接删除安装目录

                

                    RPM包和源码包的区别:

                            启动:

                                RPM包:service    httpd    start|stop|resrart

                                               /etc/rc.d/init.d/httpd start 

                                源码包: /usr/local/apache2/bin/apachectl    start

                            网页:

                                RPM包: /var/www/html/

                                源码包: /usr/local/apache2/logs/

         5.其他

                5.1 date    查看系统时间

                 图片.png

               date    -s    20130310        设定日期

               date    -s    16:20:00          设定时间

               5.2 du -sh 目录名        统计目录大小(统计的文件大小是准确的,包括垃圾文件、缓存等)

                        -s    总和

                        -h    习惯单位

                   图片.png

                 5.3 df    -h     统计分区大小 (统计的分区剩余空间是准确的,统计硬盘容量)

                




置顶
【原创】 Vi编辑器
05 03 2021

二、Vi编辑器使用

一、Vi编辑器简介

        1、vim(vi增强版本)        全屏幕纯文本编辑器(只能写文字,写字符)

            alias   起别名,临时生效,重启会消失

            图片.png

            vi    /root/.bashrc            环境变量配置文件

                   alias    vi='vim'  

二、使用vim

        1、vi模式

                vim    文件名

             图片.png

     按一个字母a,光标会向后面退一格,进入到插入模式,按ESC退出插入模式;按一个字母i,光标在原来位置;按一个字母o,会换到下一行

     命令--->输入    a追加,i:插入,o:打开(会向下换一行)

     命令--->末行    :w(保存)    :q(不保存退出)    :wq(保存退出)    !强制    :q!(任何用户都可以使用)    :wq!(只有root用户才可以使用)       

   2、命令模式操作

    2.1、光标移动   hjkl   (依次左、下、上、右)  

                 :n移动到第几行

                 图片.png 

               

                gg    两个小写的'g'移动到整个文件首

                G     大写'G'移动到整个文件尾

                ^ (shift+6)   或者Home   光标移动到行首

                $ (shift+4)    或者End  光标移动到行尾

              2.2、删除字母

      x删除单个字母,nx删除n个字母

     2.3、删除整行、剪切

      dd删除单行

       ndd删除多行

      p 小p粘贴到光标后面

       P(英文状态shift+p) 大P粘贴到光标前面

      图片.png  

      dG从光标所在删除到文件尾 (删除之后u撤销) 

     2.4、复制

      yy     复制单行 

      nyy    复制多行

     2.5、撤销     

       u    撤销

      ctrl+r    反撤销                 

     2.6、显示行号

      :set nu     显示行号

       :set nonu    不显示行号  

     2.7、颜色开关

      :syntax off     关闭颜色

      :syntax on       打开颜色  

      2.8、显示隐藏符号(非打印字符)

      :set list     显示影藏字符

      :set nolist     关闭隐藏字符

      图片.png

      vi配置文件

      ~/.vimrc    手工建立的vi配置文件

       ~ 登录用的的家目录

      图片.png

      图片.png  

     2.9、查找内容

      /搜索的字符内容      向下查找

      n下一个 下一个     N(shift+n) 上一个 上一个 

      2.10、替换  s

      ^ 行首符  

      :1,10s/lg/leigong/g    替换1行到10行的所有lg为leigong

      :%s/lg/leigong/g      替换整个文件的lg为leigong

      图片.png

        

      图片.png     

      g范围内替换所有,没有加g只替换找到的第一个,后面的就不会管了

      :1,5s/^/#/g        注释1到5行

      :1,5s/^#//g        取消注释

      :1,5s/^/\/\//g       文件头加入//

      图片.png

                                     


置顶
【原创】 Linux常用命令
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


【原创】 Linux系统测试网络带宽
26 03 2020

linux系统下测试带宽


第一步、安装speedtest

在linux操作系统下执行下载命令: wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

第二步、授权

chmod a+rx speedtest.py

mv speedtest.py /usr/local/bin/speedtest

chown root:root /usr/local/bin/speedtest

第三步、使用speedtest命令测速

执行命令:speedtest


测速2.png