1.useradd 添加用户

   useradd srpihot                                   创建srpihot用户
   useradd -u 555 srpihot                        创建srpihot用户,分配UID=555
   useradd -g user1 srpihot                     创建srpihot用户,分配到用户组user1里
   useradd -d ~/etc srpihot                     创建srpioht用户,并且分配家目录

2.passwd 修改密码

    passwd srpihot                                   设置srpihot用户密码(仅root用户可用)
    passwd                                               修改当前密码

3.usermod 用户修改

    usermod  -d  /home/new -m srpihot    给srpihot用户重新设置家目录
    usermod  -L  srpihot                              冻结srpihot用户
    usermod  -U srpihot                              解锁srpihot用户

4.usedel 用户删除

    userdel srpihot                                       删除srpihot用户
    userdel -r srpihot                                   删除srpihot用户所有信息(家目录、邮件等)

5.groupadd 增加用户组

    groupadd srpihot                                  增加srpihot用户组

6.groupdel 删除用户组

     groupdel srpihot                                  删除srpihot用户组

7.users、who、w 查看用户信息

     users                                                     查看当前存在那些用户
     who                                                       输出信息更多
     w                                                           输出信息最多

     w命令每行
     1.登陆的用户名
     2.用户登陆终端
     3.如果从网络登陆则会显示ip
     4.用户登陆时间
     5.用户闲置时间
     6.与终端相关当前所有运行进程消耗的cpu时间总量
     7.当前what列所对应的进程所消耗的cpu时间总量
     8.用户当前运行的进程

8.su、sudo 切换用户

     su                                                          普通用户切换到root
     su -                                                       普通用户切换到root用户 并且会改变用户环境
     su srpihot                                              切换到srpihot用户
     visudo                                                   修改sudo文件 添加其他用户
     sudo passwd user user1                        修改user1的密码

9.at 指定单一时刻执行任务

      at now + 30 minutes                            指定30min后的任务
    at> /sbin/shutdown -h now
    at> <EOT>                                             (CTRL + D)停止输入
                                                                    关机
      at 00:00 2019-03-25                             指定2019-3-25日00:00时的任务
      atq                                                        查看现在的at列表
      atrm   5                                                  删除5号作业

10.cron 周期性执行任务

      service cron strat                                  启动
      service cron status                                正常
      crontab -e                                            进入编辑模式
      *****     service httpd restart                 设置每分钟进行重启http服务
      第一个* 代表分钟      * 或者 */1都是一分钟一次
      第二个* 代表小时      *或者*/1 一小时一次
      第三个*代表日期       1 每个月的第一天重启
      第四个*代表月份        12 每年的12月份重启
      第五个*代表星期         0代表星期日 1~6代表星期一到星期六
      * 6 1 * * service httpd restart             每个月的1号6点重启http服务
      crontab -l                 查看设置任务的列表
      crontab -r                 删除列表
      crontab -u john -l     查看john的任务列表

11.pwd 查看当前目录

12.touch 创建文件

      touch 1.txt 创建1.txt

13.rm 删除文件

      rm 1.txt 删除文件

14.mv 移动文件

      mv 1.txt /temp                                      移动1.txt到/temp文件夹下
      mv 1.txt 1.doc                                       重命名1.txt为1.doc
      mv 1.txt /temp/1.doc                            移动1.txt到/temp文件夹下并重命名为1.doc

15.cat 查看文件

      cat 1.txt                                                  查看1.txt文件
      cat -n 1.txt                                             查看1.txt文件时前面显示行号

16.head 查看文件头

      head 1.txt                                              默认显示文件前10行
      head -n 20 1.txt                                     设置显示文件前20行

17.tail 查看文件尾

      tail 1.txt                                                默认显示文件后10行
      tail -n 20 1.txt                                      设置显示文件后20行
      tail -f  /var/log/messages                     如果有新内容写入时会显示新内容

18.cd 进入目录

19.mkdir 创建目录

        mkdir -p kali/sph/srpihot                  一次性创建目录

20.rmdir 或者 rm 删除目录

        rmdir /sph                                          删除sph空目录,sph里如果有东西则删除失败
        rm -r sph/                                           删除sph目录及内所有目录 但会有提示
        rm -rf                                                                                           不会提示
        rm -rf /                                               删除所有系统文件

21.cp 复制文件

       cp 1.txt /srpihot/2.txt                           复制1.txt到srpihot目录下重命名为2.txt
       cp -r temp temp1                                 复制temp目录

22.权限

        ls -al                                                   查看文件或目录的权限
        lsattr  1.txt                                          查看文件隐藏属性
        chattr                                                 改变文件隐藏属性
                   -a                                               root用户不能删除,可以在文件底添加新内容
                    -i                                               root用户无法修改
         chmod                                               改变文件权限
                  u+r                                            用户添加可读权限
                  u+w                                           用户添加可写权限
                  u-x                                             用户取消执行权限
                  u+rwx
                  u=rwx                                        用户添加读写执行权限
       exp:  chmod u=rwx shutdown.sh
          u  当前用户   g 当前用户组   o 其他人
            chmod -R 754 shutdown.sh            
          r=4    w=2   x=1  
           7=4+2+1   5=4+1  4=4
         chown                                                改变文件用户和用户组
            chown john a.txt                              改变用户
            chown :john a.txt                             改变用户组
            chown john:john a.txt                      改变用户和用户组
            chown -R john:john a                      改变目录的用户和用户组
          chgrp                                                改变文件的用户组
             chgrp john b.txt                              改变用户组
              chgrp -R john b                              改变目录的用户组
           文件特殊属性学明白后补录

23.file 输出文件更多信息

24.find 一般查找

          find  PATH -name FILENAME  根据文件名查找
                            -perm                    根据文件权限查找
                            -user username     根据文件的用户名查找
                            -mtime  -n/+n  查找n天内/n天前更改过的文件
                            -atime    -n/+n  查找n天内/n天前访问过的文件
                            -ctime    -n/+n  查找n天内/n天前创建的文件
                            -newer  filename 查找更改时间比filename新的文件
                            -type     b/d/c/p/l/f/s    查找块/目录/字符/管道/链接/普通/套接字文件
                            -size                   根据文件大小查找
                             -depth n            最大查找目录深度为n
             exp:find / -name *.conf

25.locate 数据库查找

          updatedb               更新数据库
          locate srpihot.txt     查找srpihot.txt 文件
          如果没有就更新一下数据库,数据库是记录文件数据库。

26.which/whereis 查找执行文件

          which passwd
          whereis passwd

27.文件压缩和打包

         gzip/gunzip                            用于单个文件压缩
              gzip install.log                    压缩文件
              gunzip install.log.gz           解压文件
         tar                                          多用于多个文件合并压缩
              tar -zcvf sph.tgz /sph         压缩sph目录
              tar -zxvf sph.tgz -C /tmp   解压到tmp目录下
        bzip2
              bzip2 install.log                 压缩文件
              bzip2 -d install.log.bz2      解压文件
         cpio
              find /etc -name *.conf |  cpio -covB > /tmp/conf.cpio     备份
              cpio  -icdvu < /tmp/conf.cpio                                          还原

28.grep 搜索文本

        grep -i  'sph' sph.txt                   不区分大小写
                -c                                        统计包含匹配的行数
                -n                                       输出行数
                -v                                        反向匹配

29.sort 排序

         sort -ntkr 文件名
                 -n                                      按照数字排序
                 -t                                       指定分隔符
                 -k                                      指定第几列
                 -r                                       反向排列
         sort -t ":" -k 2                            以:为间隔符 以第二列参数进行排列

30.uniq 删除重复内容

          uniq -ic
                   -i                                      忽略大小写    
                   -c                                     计算重复行数
          uniq删除是相近几行重复的内容,所以与sort搭配使用
                exp: cat uniq.txt | sort | uniq -ic

31.cut 截取文本

         cut  -fcd
              -f 指定的列  -d  '分隔符'
              -c 指定的列中的字符
         exp: cut -f1,3-5 -d ':'               截取第1列,第3到第5列的文本
                   cut -c3-5                          截取每一行第3到第5个字符

32.tr 文本转换

          tr  -d
          tr  '[a-z]'   '[A-Z]'                        大小写转换
          tr    -d  ':'                                     删除文本的:号

33.paste 文本合并

          paste a.txt b.txt                           合并
          paste -d : a.txt b.txt                     合并 间隔符是:

34.split 分割大文件

          split -l 500 a.txt small                a.txt以按照500行分割成small1.txt small2.txt等文件
          split -b 64m big_bin small_bin_  big_bin以分为多个64m的small_bin_xx等文件

35.ifconfig 检查配置网卡

          ifconfig eth0 192.168.159.130 netmask 255.255.255.0
          ifconfig eth0 192.168.159.130/24                                                       修改ip地址及其子网掩码
          ifconfig eth0 192.168.125.130 broadcast 192.168.159.255 netmask 255.255.255.0
          ifconfig eth0 down                       关闭eth0网卡( ifdown eth0 )
          ifconfig eth0 up                            启动eth0网卡( ifup eth0 )
          ifconfig -a                                     显示所有网卡

36.route 路由和网关设置

          route add default gw 192.168.159.2    添加网关
          route del  default gw 192.168.159.2    删除网关 route del default 简写
          route -n                                                查看系统当前的路由表

37.ping 网络测试

          ping -ciw
                   -c                                                指定ping的次数
                   -i                                                 指定ping的发送间隔
                   -w                                               如果无回应,则会在超过时间后退出

38.host 查询DNS记录

          host www.baidu.com

39.ps 静态进程查看

           -Aaxu
           -ljf
                 -A/-e                                            显示所有进程
                 -a                                                 显示现行终端机下的所有进程,包括其他用户的进程
                 -x                                                 以用户为主的进程状态
                 -u                                                 通常与 a 这个参数一起使用,可列出较完整信息
           -l                                                        较长、较详细的将该PID 的的信息列出
           -j                                                         工作的格式
           -f                                                        做一个更为完整的输出
        ps -aux
        ps  -l
        ps  -ef  

           STAT:该程序目前的状态,主要的状态有:
                      R :该程序目前正在运作,或者是可被运作;
                      S :该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。
                      T :该程序目前正在侦测或者是停止了;
                      Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

40.top 动态进程查看

           快捷键:
                  b: 高亮
                  y: 行高亮(默认关)
                  x: 列高亮(默认开)
                  s: 设置更新时间(默认3秒)
                  k: kill
                  c: cmd name/line
                  O:进入排序选择页
                  P:按照CPU使用率排序
                  M:按照空间使用率
                  N:按照PID排序
                  T:按照cpu使用时间排序
                  R:可以重新定义一个进程

41.kill killall 进程终止

           kill -lapsu PID
                      -l                                   信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
                     -a                                   当处理当前进程时,不限制命令名和进程号的对应关系
                     -p                                   指定kill 命令只打印相关进程的进程号,而不发送任何信号
                     -s                                    指定发送信号
                     -u                                   指定用户
           tips:快速查找http的PID  pidof httpd

            killall  服务名
           killall httpd    终止http服务

42.lsof

           lsof   /filepath/file                      查看谁正在使用某个文件
           lsof +D /filepath/filepath2/       递归查看某个目录的文件信息那个被打开
           备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
           lsof | grep ‘/filepath/filepath2/' 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
           lsof  -u username                       列出某个用户打开的文件信息
           lsof -c mysql                               列出某个程序所打开的文件信息
           备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了
           lsof -c mysql -c apache               列出多个程序多打开的文件信息
           lsof -u test -c mysql                    列出某个用户以及某个程序所打开的文件信息
           lsof   -u ^root                             列出除了某个用户外的被打开的文件信息
           备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
           lsof -p 1                                      通过某个进程号显示该进行打开的文件
           lsof -p 123,456,789                    列出多个进程号对应的文件信息
           lsof -p ^1                                   列出除了某个进程号,其他进程号所打开的文件信息
           lsof -i                                          列出所有的网络连接
           lsof  -i tcp                                   列出所有tcp 网络连接信息
           lsof  -i udp                                  列出所有udp网络连接信息
           lsof -i :3306                                列出谁在使用某个端口
           lsof -i udp:55                              列出谁在使用某个特定的udp端口
           lsof -i tcp:80                               特定的tcp端口
           lsof  -a -u test -i                          列出某个用户的所有活跃的网络端口
           lsof -N                                         列出所有网络文件系统
           lsof -u                                         域名socket文件
           lsof -g 5555                                某个用户组所打开的文件信息
           lsof -d description(like 2)            根据文件描述列出对应的文件信息
           lsof -d 2-3                                   根据文件描述范围列出文件信息

43.调整线程优先级

           nice -n -10 ./job.sh
           renice -10 -p 5555

在祖国东南角在读大二软工Coder,希望成为一名Hacker and AIer。