zoukankan      html  css  js  c++  java
  • Linux常用命令归类总结

    文件相关

    创建文件

    • touch: touch README.md
    • ">"重定向: echo 'study and share' > README.md
    • vi && vim: vim README.md, vim是vi的升级版,直接用它吧,有些系统装好后只有vi,这里提一下。

    删除文件

    • 删除文件 rm README.md,如果是多个文件你就往后面补文件名。

    • 自信地强制删除:rm -rf README.md, 数据无价,慎用。

    linux最佳文本编辑器vim

    # vim file: 有则打开文件,没则创建文件
    
    # 三种模式: 插入模式(按i进入,或者o下一行)、可视模式(CTRL + V)、命令模式(默认)
    
    # 关于保存: :q 退出、 :q! 退出不保存、 :wq 退出并保存
    

    文件夹的相关操作

    • 创建文件夹:mkdir app

      • -p 创建多层嵌套文件夹,例子mkdir -p a/b/c
    • 删除文件夹:rmdir app, 多层嵌套的话rm -rf app

    • 查看文件夹相关信息:ls app

      • -a: 列举所有文件(包含隐藏的)
      • -l列表形式展示
    • 查看文件夹树结构:tree app

      ⚡ root@ataola ? ~/linux ? mkdir -p a/b/c/d/e/f/g/h
      ⚡ root@ataola ? ~/linux ? tree a     
      a
      `-- b
          `-- c
              `-- d
                  `-- e
                      `-- f
                          `-- g
                              `-- h
      
      7 directories, 0 files
      ⚡root@ataola ? ~/linux ? 
      
    • 进入文件夹:cd app, .表示当前目录,那么返回上一级就是cd ..

    复制、修改、移动、文件(夹)

    • 复制文件(夹): cp file1 file2
      • -r: 复制嵌套文件夹,例如cp -r a b, 其中a的结构是a/b/c,即多层时。
    • 修改和移动:mv app ppa, mv这个命令承载了重命名文件(夹)和拷贝的重任。

    硬链接和软链接

    • 硬链接: ln ataola zjt,占用空间
    • 软链接: ln -s ataola zjt, 相当于快捷方式,不占空间

    压缩与解压缩

    tar

    • 将ataola文件压缩成ataola.tar.gz: tar -czvf ataola.tar.gz ataola
    • 将ataola.tar.gz文件解压缩到当前目录: tar -zxvf ataola.tar.gz
      • -c 创建
      • -z gzip压缩
      • -v显示细节
      • -f 文件
      • -x 解压缩

    zip

    • 压缩: zip ataola.zip ataola
    • 解压:unzip ataola.zip ataola
    • 加密压缩:zip -re ataola.zip ataola

    网络相关

    查看网络信息

    • 查看本机网络信息:ip addr
    • 查看本机网络信息:ifconfig

    网络通信

    • 检测与外界通信是否正常:ping xxx, 例如:ping zhengjiangtao.cn
    • 查看本机相关端口暴露情况:netstat, 推荐使用netstat -tlunp,显示正在监听的tcp和udp信息,清爽一点。
      • -u (udp): 仅显示udp相关选项
      • -n: 显示全名。
      • -l: 仅列出有在 Listen 的服務状态
      • -p: 显示建立相关链接的程序名
    • 查看TCP UDP相关服务 lsof -i

    防火墙

    • 安装:yum install iptables iptables-services -y

    • 开启:service iptables start

    • 关闭:service iptables stop

    • 保存: service iptables save

    • 查看状态:service iptables status

    • 开启某个端口(80为例): iptables -I INPUT -p tcp --dport 80 -j ACCEPT,iptables -I OUTPUT -p tcp --sport 80 -j ACCEPT

    • 关闭某个端口(80为例):iptables -I INPUT -p tcp --dport 80 -j DROP, iptables -I OUTPUT -p tcp --sport 80 -j DROP

      • -I: 将在指定链的指定编号位置插入一个规则
      • -F:清除预设的所有规则
      • -A : 将一个规则添加到链末尾
      • -p tcp: 指定协议为tcp
      • -s: 指定源地址或地址段
      • -j ACCEPT: 允许
      • -j DROP: 拒绝
      • -d: 指定目标地址或地址段
      • -m limit : 限制单位时间访问频率
      • --dport port: 指定目标TCP/IP端口, 如 –dport 80
      • --sport port: 指定来源TCP/IP端口, 如 –dport 80
      • -L -n: 查看防火墙配置信息
      • -L -n --line-number : 显示规则和相应编号
      • -t nat -L: 列出所有NAT链中所有规则
      • INPUT: 处理数据输入包
      • OUTPUT: 处理数据输出包
     ✘ ⚡ root@ataola � ~/tmp � iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
     ⚡ root@ataola � ~/tmp � 
    
    • 屏蔽某IP: 例如:ptables -A INPUT -p tcp -m tcp -s 218.109.192.109 -j DROP
    • 阻止window蠕虫攻击:iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --algo kmp --string "cmd.exe"
    • 防止SYN洪水攻击:iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT

    用户相关

    • 组信息存放位置:/etc/group, 格式:用户组名:密码:用户组ID:组内用户名
    • 添加用户组: groupadd usergroup
      • -g: 自定义组ID, 例如groupadd -g 613 sanguo
    • 修改用户组: groupmod usergroup
      • -g: 修改用户组ID
      • -n: 修改用户组名
    • 删除用户组:groupdel usergroup

    用户

    • 用户信息存放位置:/etc/password,格式:用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell

    • 用户密码存放位置: /etc/shadow

    • 添加用户: useradd user

      • -m: 自动创建家目录

      • -g: 指定用户主组

      • -G: 指定用户附加组

      • -u: 指定用户默认uid

      • -c: 添加注释

      • -s: 指定登录后的shell

      • -d: 指定用户登录时的启动目录

      • -n: 取消建立用户同名称组

      • 修改用户密码: passwd user, root用户可以重置其他用户密码

        [caocao@ataola nginx]$ passwd caocao
        passwd: Only root can specify a user name.
        [caocao@ataola nginx]$ passwd 
        Changing password for user caocao.
        Changing password for caocao.
        (current) UNIX password: 
        New password: 
        Retype new password: 
        Sorry, passwords do not match.
        New password: 
        Retype new password: 
        passwd: all authentication tokens updated successfully.
        [caocao@ataola nginx]$ 
        
        • -l: 锁定口令,即禁用账号。
        • -u: 口令解锁。
        • -d : 使账号无口令。
        • -f: 强迫用户下次登录时修改口令

      我们来实践下,在三国组下创建用户曹操,指定用户uid为1997,登录的shell为/bin/bash

       ⚡ root@ataola � ~/tmp � useradd -m -g sanguo -s /bin/bash -u 1997 caocao
       ⚡ root@ataola � ~/tmp � cat /etc/passwd | grep caocao                   
      caocao:x:1997:613::/home/caocao:/bin/bash
       ⚡ root@ataola � ~/tmp � 
      
    • 删除用户:userdel user

      • -r: 连家目录一起删除
    • 切换用户:su user

       ✘ ⚡ root@ataola � ~/docker/nginx � su caocao    
      [caocao@ataola nginx]$ pwd
      /root/docker/nginx
      [caocao@ataola nginx]$ 
      

    权限问题

    这个地方我纠结了一下,到底是放在文件相关还是用户相关讲,最后我选择这里。对于用户而言,其操作一个文件,有可读可写可执行否这么多种可能对吧,那么我们接下来讨论下。

    对于一个文件而言,其与用户的关系,不外乎所有者(创建者)、组内成员、其他组或者用户,这里root用户时linux最高权限的用户,简言之,没有它干不了的事。

    u g o a
    所有者 同组用户 其他组 所有

    字母表示

    我们来看这样一个例子

     ⚡ root@ataola � ~ � ls -l /home/caocao
    total 4
    -rw-r--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
     ⚡ root@ataola � ~ � 
    

    单独把b前面的这一坨东西拎出来讲:drwxr-xr-x,

    • 第一个字母d,表示它是一个文件夹,而a第一个字母是-,表示它是一个文件
    • 第一组rwx, 表示其创建者caocao拥有可读可写可执行的权限
    • 第二组r-x: 表示其所在sanguo组其他用户有可读可执行的权限
    • 第三组r-x: 表示其他组或者用户有可读可执行的权限

    实践一下

    • 对于a文件给同组用户增加可写可执行权限, chmod g+wx a

      [caocao@ataola ~]$ ls -l
      total 4
      -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
      drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
      [caocao@ataola ~]$ chmod g+wx a
      [caocao@ataola ~]$ ls -l
      total 4
      -rwxrwxr-- 1 caocao sanguo    0 Jul 18 18:16 a
      drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
      [caocao@ataola ~]$ 
      
    • 之后曹操有点小情绪,决定移除同组的可执权限chmod u-x a

      [caocao@ataola ~]$ chmod g-x a
      [caocao@ataola ~]$ ls -l
      total 4
      -rwxrw-r-- 1 caocao sanguo    0 Jul 18 18:16 a
      drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
      [caocao@ataola ~]$ 
      
    • 再之后,曹操他疯了,他决定移除自己的可写可执行权限chmod u-wx a

      [caocao@ataola ~]$ chmod u-wx a
      [caocao@ataola ~]$ ls -l
      total 4
      -r--rw-r-- 1 caocao sanguo    0 Jul 18 18:16 a
      drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
      [caocao@ataola ~]$ 
      

    数字表示

    ​ 除了楼上的字母表示,也是可以用数字进行相关权限设置

    字母与数字的对应关系如下:

    r w x
    4 2 1

    那我们接着实践。

    • 曹操后来又自己给自己治好了,决定收回撤销的a文件的可写可执行的权限,并设置其他人都只可读chmod 744 a

      [caocao@ataola ~]$ chmod 744 a
      [caocao@ataola ~]$ ls -l
      total 4
      -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
      drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
      [caocao@ataola ~]$ 
      
      

    这里的744, 第一个代表所有者,4 + 2 + 1 = 7。 第二个代表所属组 ,第三个代表其他选手。

    更改文件用户组

    这里我们创建一个魏国的group,然后将曹操家目录下的b文件夹归属与魏国这个组chgrp weiguo b, 这里如果加个参数-R的话,其内部的所有文件都会跟着变成魏国这个组,而不是三国,执行这个命令的是root用户。

     ⚡ root@ataola � /home/caocao � ls -l             
    total 4
    -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-xr-x 3 caocao sanguo 4096 Jul 18 18:17 b
     ⚡ root@ataola � /home/caocao � chgrp weiguo b
     ⚡ root@ataola � /home/caocao � ls -l
    total 4
    -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-xr-x 3 caocao weiguo 4096 Jul 18 18:17 b
     ⚡ root@ataola � /home/caocao � 
    
    

    更改文件所属用户

    之后root用户,决定干掉曹操,自己掌管b文件,那么可以这么做chown root b, 相关参数同楼上的chgrp

     ⚡ root@ataola � /home/caocao � chown root b  
     ⚡ root@ataola � /home/caocao � ls -l
    total 4
    -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-xr-x 3 root   weiguo 4096 Jul 18 18:17 b
     ⚡ root@ataola � /home/caocao � ls -l b
    total 4
    drwxr-xr-x 2 caocao sanguo 4096 Jul 18 18:17 c
     ⚡ root@ataola � /home/caocao � 
    

    root用户想了想,狠人做到底,回收了其他人的可读可执行权限chmod o-rx b

     ⚡ root@ataola � /home/caocao � chmod o-rx b
     ⚡ root@ataola � /home/caocao � ls -l
    total 4
    -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-x--- 3 root   weiguo 4096 Jul 18 18:17 b
     ⚡ root@ataola � /home/caocao � 
    

    此时曹操登录后想进入b目录,哈哈,是不可能的了。

    [caocao@ataola ~]$ cd b
    bash: cd: b: Permission denied
    [caocao@ataola ~]$ ls -l
    total 4
    -rwxr--r-- 1 caocao sanguo    0 Jul 18 18:16 a
    drwxr-x--- 3 root   weiguo 4096 Jul 18 18:17 b
    [caocao@ataola ~]$ 
    

    进程相关

    查看进程(ps)

    • a 显示所有进程
    • -a 显示同一终端下的所有程序
    • -A 显示所有进程
    • c 显示进程的真实名称
    • -N 反向选择
    • -e 等于“-A”
    • e 显示环境变量
    • f 显示程序间的关系
    • -H 显示树状结构
    • r 显示当前终端的进程
    • T 显示当前终端的所有程序
    • u 指定用户的所有进程
    • -au 显示较详细的资讯
    • -aux 显示所有包含其他使用者的行程
    • -C<命令> 列出指定命令的状况
    • –lines<行数> 每页显示的行数
    • –width<字符数> 每页显示的字符数
    • –help 显示帮助信息
    • –version 显示版本显示

    例如说我要查看docker的相关信息,你可以这样写ps -aux | grep docker | tail, 因为数据量很大,tail就是只看文件尾部。

    [caocao@ataola ~]$ ps -aux | grep docker | tail
    root     16970  0.0  0.0 264800   428 ?        Sl   May31   0:03 /usr/bin/docker-containerd-shim-current 0e4ef69c19b981163067ec8af0c38b6fa84c380855c22309a884f0a0ed691912 /var/run/docker/libcontainerd/0e4ef69c19b981163067ec8af0c38b6fa84c380855c22309a884f0a0ed691912 /usr/libexec/docker/docker-runc-current
    root     19417  0.0  0.0 188476  1636 ?        Sl   May31   0:04 /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 3307 -container-ip 172.19.0.3 -container-port 3306
    root     19422  0.0  0.0 272996   488 ?        Sl   May31   0:04 /usr/bin/docker-containerd-shim-current 6de60216270a3b6f5bfbe5d94d40fa2449e443eb77b67d4bf005061dd4ff412e /var/run/docker/libcontainerd/6de60216270a3b6f5bfbe5d94d40fa2449e443eb77b67d4bf005061dd4ff412e /usr/libexec/docker/docker-runc-current
    root     22621  0.0  0.1 111092  2000 ?        Sl   Jul14   0:00 /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.3 -container-port 80
    root     22626  0.0  0.0 272996  1732 ?        Sl   Jul14   0:00 /usr/bin/docker-containerd-shim-current 52fca7d70916037e865da9ad1dfbf330e39be4a1a72c3a05ba1d862dff8cb563 /var/run/docker/libcontainerd/52fca7d70916037e865da9ad1dfbf330e39be4a1a72c3a05ba1d862dff8cb563 /usr/libexec/docker/docker-runc-current
    root     29722  0.0  0.0 110036  1108 ?        Sl   May30   0:03 /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 6379 -container-ip 172.20.0.2 -container-port 6379
    root     29727  0.0  0.0 264800   340 ?        Sl   May30   0:03 /usr/bin/docker-containerd-shim-current 5c8daf272042ad0396924e6cd1f3d936e4c5f0280401861983316707c5ab9e75 /var/run/docker/libcontainerd/5c8daf272042ad0396924e6cd1f3d936e4c5f0280401861983316707c5ab9e75 /usr/libexec/docker/docker-runc-current
    root     30185  0.0  0.0 264800   324 ?        Sl   May30   0:03 /usr/bin/docker-containerd-shim-current 5c8daf272042ad0396924e6cd1f3d936e4c5f0280401861983316707c5ab9e75 /var/run/docker/libcontainerd/5c8daf272042ad0396924e6cd1f3d936e4c5f0280401861983316707c5ab9e75 /usr/libexec/docker/docker-runc-current
    root     30607  0.2  1.4 763120 26556 ?        Ssl  May30 186:57 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled --log-driver=journald --signature-verification=false --storage-driver overlay2
    root     30612  0.0  0.2 501356  4432 ?        Ssl  May30  41:51 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --runtime-args --systemd-cgroup=true
    [caocao@ataola ~]$ 
    
    

    当然啦,根据上面的命令参数,你也可以ps -ef | grep mysql,打出mysql的相关信息

    [caocao@ataola ~]$ ps -ef | grep mysql
    1001      3471  3455  0 May30 ?        03:38:23 mysqld --wsrep_start_position=52a382bb-a27b-11ea-867f-c364b5a6fb0a:18
    caocao    5928 16797  0 19:05 pts/0    00:00:00 grep --color=auto mysql
    1001      6247  6231  0 May30 ?        03:38:57 mysqld
    1001      7553  7537  0 May30 ?        03:38:59 mysqld
    1001      8697  8679  0 May30 ?        03:38:07 mysqld
    1001     19439 19422  0 May31 ?        03:33:23 mysqld --wsrep_start_position=52a382bb-a27b-11ea-867f-c364b5a6fb0a:23
    [caocao@ataola ~]$ 
    
    

    杀掉进程(kill)

    根据查看进程得到的最前面的pid,杀掉一个进程是kill xxx, 例如杀掉mysqld的pid为1001的进程kill 1001, 可能运气不好会有杀不掉的情况,kill -9 xxx,强制杀掉,慎用。

    内存CPU和硬盘相关

    内存

    • 粗略 free

      [caocao@ataola ~]$ free
                    total        used        free      shared  buff/cache   available
      Mem:        1882192      454268       69256        2212     1358668     1238236
      Swap:       4194300     1242368     2951932
      [caocao@ataola ~]$ 
      
    • 详细 /proc/meminfo这个文件里面,太长了,这里就显示最后十行意思下

      [caocao@ataola ~]$ tail -10 /proc/meminfo
      AnonHugePages:      4096 kB
      CmaTotal:              0 kB
      CmaFree:               0 kB
      HugePages_Total:       0
      HugePages_Free:        0
      HugePages_Rsvd:        0
      HugePages_Surp:        0
      Hugepagesize:       2048 kB
      DirectMap4k:       88056 kB
      DirectMap2M:     2009088 kB
      [caocao@ataola ~]$ 
      
      

    CPU

    • 查看cpu详细信息: cat /proc/cpuinfo

      [caocao@ataola ~]$ cat /proc/cpuinfo
      processor       : 0
      vendor_id       : GenuineIntel
      cpu family      : 6
      model           : 79
      model name      : Intel(R) Xeon(R) CPU E5-26xx v4
      stepping        : 1
      microcode       : 0x1
      cpu MHz         : 2394.454
      cache size      : 4096 KB
      physical id     : 0
      siblings        : 1
      core id         : 0
      cpu cores       : 1
      apicid          : 0
      initial apicid  : 0
      fpu             : yes
      fpu_exception   : yes
      cpuid level     : 13
      wp              : yes
      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch bmi1 avx2 bmi2 rdseed adx xsaveopt
      bogomips        : 4788.90
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 40 bits physical, 48 bits virtual
      power management:
      
      [caocao@ataola ~]$ 
      
      

    硬盘

    查看硬盘使用情况df

    [caocao@ataola ~]$ df
    Filesystem     1K-blocks     Used Available Use% Mounted on
    devtmpfs          930176        0    930176   0% /dev
    tmpfs             941096       24    941072   1% /dev/shm
    tmpfs             941096     2224    938872   1% /run
    tmpfs             941096        0    941096   0% /sys/fs/cgroup
    /dev/vda1       51473868 14918560  34358064  31% /
    tmpfs             188220        0    188220   0% /run/user/0
    [caocao@ataola ~]$ 
    
    

    综合查看(vmstat)

    [caocao@ataola ~]$ vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     3  0 1242368  85884 103628 1240960    0    0    13    42    5    6  2  3 95  0  0
    [caocao@ataola ~]$ 
    

    实时查看(top)

    top - 19:16:16 up 52 days, 18:17,  3 users,  load average: 0.58, 0.23, 0.25
    Tasks: 149 total,   1 running, 148 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  3.0 us,  3.0 sy,  0.0 ni, 93.6 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
    KiB Mem :  1882192 total,    82052 free,   454844 used,  1345296 buff/cache
    KiB Swap:  4194300 total,  2951932 free,  1242368 used.  1237660 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                      
     6247 1001      20   0 1385620  37224   1844 S  0.7  2.0 218:59.15 mysqld                                                                                                                       
     7553 1001      20   0 1385644  38936   1860 S  0.7  2.1 219:01.83 mysqld                                                                                                                       
    16104 polkitd   20   0 1583856  72124   4756 S  0.7  3.8  28:45.69 mongod                                                                                                                       
     3471 1001      20   0 1414336  28812   2684 S  0.3  1.5 218:25.69 mysqld                                                                                                                       
     7924 root      20   0   35632   3088    720 S  0.3  0.2 116:41.86 redis-server                                                                                                                 
     8249 root      20   0   33464   2096    748 S  0.3  0.1 113:38.97 redis-server                                                                                                                 
     8631 root      20   0   33464   1616    708 S  0.3  0.1 111:53.89 redis-server                                                                                                                 
    10370 root      20   0  160080   8448   1384 S  0.3  0.4  60:37.62 barad_agent                                                                                                                  
    10371 root      20   0  677032   8004   1492 S  0.3  0.4 344:28.10 barad_agent                                                                                                                  
    19439 1001      20   0 1394932  22712   2656 S  0.3  1.2 213:25.65 mysqld         
    

    环境变量相关

    临时

    直接命令行里敲export xxx, 例如

    [caocao@ataola ~]$ export NODE_ENV=production
    [caocao@ataola ~]$ echo $NODE_ENV
    production
    [caocao@ataola ~]$ 
    
    

    setunset也是可以的。

    永久

    • /etc/profile: 对所有用户生效
    • .bashrc | .zshrc | .bash.profile: 对当前用户生效

    问题思考

    如果我把一个组删了,但是这个组里面有用户,是不是意味着他们将成为僵尸用户?

    怎么可能。。。它会提示你先清用户,有用户就删不掉

     ⚡ root@ataola � /home/caocao � groupdel sanguo
    groupdel: cannot remove the primary group of user 'caocao'
     ✘ ⚡ root@ataola � /home/caocao � ls /  
    

    创建用户不指定组,默认行为是什么?

    如果不指定,默认创建一个和用户相同名字的组

    使用useradd 命令,用户有哪些可以解析器shell(-s 后面可以跟哪些选择)?

    /bin/zsh
    /bin/bash
    /sbin/nologin
    

    这里/sbin/nologin就是不让其登录,没有登录权限

    参考文献

    iptables命令:https://wangchujiang.com/linux-command/c/iptables.html

    ps 进程查看器: https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ps.html

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

  • 相关阅读:
    项目准备和启动——项目投标
    项目准备和启动——项目可行性分析
    项目准备和启动——项目建议书
    软件项目管理
    项目管理知识体系
    项目的生命周期
    项目管理基本方法
    什么是项目管理?
    Python基础学习——第一弹
    redis
  • 原文地址:https://www.cnblogs.com/cnroadbridge/p/13337010.html
Copyright © 2011-2022 走看看