• Linux 常用基本命令


    1.走近Linux系统

    开机登录

    开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。

    关机

    • 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
    • 关机指令为:shutdown
    sync # 将数据由内存同步到硬盘中。
    shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
    shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
    shutdown –h now # 立马关机
    shutdown –h 20:25 # 系统会在今天20:25关机
    shutdown –h +10 # 十分钟后关机
    shutdown –r now # 系统立马重启
    shutdown –r +10 # 系统十分钟后重启
    reboot # 就是重启,等同于 shutdown –r now
    halt # 关闭系统,等同于shutdown –h now 和 poweroff
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

    系统目录结构

    • 一切皆文件;

    • 根目录 / ,所有的文件都挂载在这个节点下;

    • 登录系统后,在当前命令窗口下输入命令:ls /.

      在这里插入图片描述

    • 树状目录结构:

      在这里插入图片描述

    以下是对这些目录的解释:

    • /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。
    • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)
    • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
    • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
    • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    • /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。(不要动)
    • /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放突然关机的一些文件)
    • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
    • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
    • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
    • /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
    • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    • /srv:该目录存放一些服务启动之后需要提取的数据。
    • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
    • /tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包!
    • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
    • /usr/bin: 系统用户使用的应用程序。
    • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。Super
    • /usr/src: 内核源代码默认的放置目录。
    • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
    • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

    2.常用基本命令

    1.目录管理

    • 绝对路径:路径的写法,由根目录 / 写起,例如:/usr/share/doc这个目录。

    • 相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!

      • cd: 切换目录命令
      • ./: 当前目录
      • cd … : 返回上一级目录

    ls (列出目录!)

    • -a参数:all ,查看全部的文件,包括隐藏文件;

    • -l参数:列出所有的文件,包含文件的属性和权限,没有隐藏文件;

    • 所有Linux可以组合使用!

      在这里插入图片描述

    cd 命令 切换目录

    • cd 目录名(绝对路径都是以 / 开头,相对路径,对于当前目录该如何寻找 …/…/)

      在这里插入图片描述

    pwd 显示当前用户所在的目录!

    • pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

    • pwd [-P]:选项与参数-P,显示出确实的路径,而非使用连结 (link) 路径。

    • 如果是链接,要显示真实地址,可以使用 -P参数。

      在这里插入图片描述

    mkdir 创建一个目录

    mkdir [-mp] 目录名称
    选项与参数:
    -m :配置文件的权限!
    -p :一次创建多级目录
    
    • 1
    • 2
    • 3
    • 4
    # 进入我们用户目录下
    [root@liming /]# cd /home
    # 创建一个 test 文件夹
    [root@liming home]# mkdir test
    # 创建多层级目录
    [root@liming home]# mkdir test1/test2/test3
    mkdir: cannot create directory ‘test1/test2/test3’: No such file or directory
    # 加了这个 -p 的选项,可以自行帮你创建多层目录!
    [root@liming home]# mkdir -p test1/test2/test3
    # 创建权限为 rwx--x--x 的目录
    [root@liming home]# mkdir -m 711 test2
    [root@liming home]# ls -l
    total 16
    drwxr-xr-x 2 root root 4096 Sep 27 13:50 liming
    drwxr-xr-x 2 root root 4096 Sep 27 15:35 test
    drwxr-xr-x 3 root root 4096 Sep 27 15:35 test1
    drwx--x--x 2 root root 4096 Sep 27 15:35 test2
    [root@liming home]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    touch 创建文件

    在这里插入图片描述

    rm 删除文件,文件夹

    • rm [-r -f] 参数1 参数2...参数n
      • -r : 用于删除文件夹
      • -f : 强制删除,不会弹出提示消息

    在这里插入图片描述

    cp (复制文件或目录)

    [root@liming /]# cp [-r] 来源档(source) 目标档(destination)
    
    • 1

    选项与参数:

    • -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
    • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
    • -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
    • -r:递归持续复制,用于复制文件夹;(常用)
    # 找一个有文件的目录
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cd /root
    [root@iZf8z6dzdkqx1n7rawz94oZ ~]# ls
    install.sh
    
    # 复制 root目录下的install.sh 到 home目录下
    [root@iZf8z6dzdkqx1n7rawz94oZ ~]# cd /home
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cp /root/install.sh /home
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
    install.sh  redis  subei  test2  www
    
    # 再次复制,加上-i参数,增加覆盖询问?
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cp -i /root/install.sh /home
    cp: overwrite '/home/install.sh'? y	# n不覆盖,y为覆盖
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    mv (移动文件与文件夹,或修改名称)

    [root@liming /]# mv [-fiu] source destination
    
    • 1

    选项与参数:

    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
    # 复制一个文件到当前目录
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cp /root/install.sh /home
    
    # 创建一个文件夹 test
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# mkdir test
    
    # 将复制过来的文件移动到我们创建的目录,并查看
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# mv install.sh test
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
    redis  subei  test  test2  www
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cd test
    [root@iZf8z6dzdkqx1n7rawz94oZ test]# ls
    install.sh
    
    # 将文件夹重命名,然后再次查看!
    [root@iZf8z6dzdkqx1n7rawz94oZ test]# cd ..
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# mv test mvtest
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
    mvtest  redis  subei  test2  www
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2.基本属性

    文件属性

    • Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

    • 在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

      在这里插入图片描述

    在Linux中第一个字符代表这个文件是文件夹、文件或链接文件等等:

    • 当为[ d ]则是目录;
    • 当为[ - ]则是文件;
    • 若是[ l ]则表示为链接文档 ( link file );
    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

    接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)[ w ]代表可写(write)[ x ]代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。每个文件的属性由左边第一部分的10个字符来确定(如下图):

    在这里插入图片描述

    其中:

    • 第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限
    • 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限
    • 第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限;

    Linux系统按文件所有者文件所有者同组用户其他用户来规定了不同的文件访问权限。

    修改文件属性

    1、chgrp:更改文件属组

    chgrp [-R] 属组名 文件名
    
    • 1
    • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

    2、chown:更改文件属主,也可以同时更改文件属组

    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名
    
    • 1
    • 2

    3、chmod:更改文件9个属性

    chmod [-R] xyz 文件或目录
    
    • 1
    • Linux文件属性有两种设置方法,一种是数字,一种是符号。
    • Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
    • 文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组
      的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
    r:4 	w:2 	x:1
    
    可读可写不可执行 rw- 6
    可读可写不可执行 rwx 7
    
    chomd 777 文件赋予所有用户可读可执行!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.文件内容查看

    Linux系统中使用以下命令来查看文件的内容:

    • cat 由第一行开始显示文件内容;
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写;
    • nl 显示的时候,顺道输出行号;
    • more 一页一页的显示文件内容;
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页;
    • head 只看头几行;
    • tail 只看尾巴几行;

    可以使用man [命令]来查看各个命令的使用文档,如:man cp

    拓展:Linux链接概念

    • Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接(Symbolic Link)。

    • ln命令产生硬链接

    • ln -s创建软连接

    [root@liming /]# cd /home
    [root@liming home]# touch f1 # 创建一个测试文件f1
    [root@liming home]# ls
    f1  liming  test.txt
    [root@liming home]# ln f1 f2 # 创建一个硬链接 f2
    [root@liming home]# ln -s f1 f3 # 创建一个软链接(符号连接) f3
    [root@liming home]# ls -li
    total 4
    1051340 -rw-r--r-- 2 root root    0 Sep 27 16:06 f1
    1051340 -rw-r--r-- 2 root root    0 Sep 27 16:06 f2
    1051341 lrwxrwxrwx 1 root root    2 Sep 27 16:06 f3 -> f1
    1324274 drwxr-xr-x 2 root root 4096 Sep 27 13:50 liming
    1051333 -rw-r--r-- 1 root root    0 Sep 27 15:40 test.txt
    [root@liming home]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 由上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 1051340,然而符号连接文件的 inode 节点不同。
    # echo 字符串输出 >> f1 输出到 f1文件
    [root@liming home]# echo "I am f1 file" >>f1 # 给f1文件中写入一些字符串!
    [root@liming home]# cat f1 # 查看f1
    I am f1 file
    [root@liming home]# cat f2
    I am f1 file
    [root@liming home]# cat f3
    I am f1 file
    [root@liming home]# rm -f f1
    [root@liming home]# cat f2 # f2 硬链接还在
    I am f1 file
    [root@liming home]# cat f3 # f3(软连接、符号连接)快捷方式失效!
    cat: f3: No such file or directory
    [root@liming home]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效

    • 依此您可以做一些相关的测试,可以得到以下全部结论:

      • 删除符号连接f3,对f1,f2无影响;
      • 删除硬连接f2,对f1,f3也无影响;
      • 删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
      • 同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

    4.Vim编辑器

    vim 键盘图:

    在这里插入图片描述

    三种使用模式

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用分别是:

    • 命令模式:用户刚刚启动 vi/vim,便进入了命令模式。
    • 以下是常用的几个命令:
      • i 切换到输入模式,以输入字符。
      • x 删除当前光标所在处的字符。
      • : 切换到底线命令模式,以在最底一行输入命令。

    • 输入模式:在命令模式下按下i就进入了输入模式。
    • 在输入模式中,可以使用以下按键:
      • 字符按键以及Shift组合,输入字符;
      • ENTER,回车键,换行;
      • BACK SPACE,退格键,删除光标前一个字符;
      • DEL,删除键,删除光标后一个字符;
      • 方向键,在文本中移动光标;
      • HOME/END,移动光标到行首/行尾;
      • Page Up/Page Down,上/下翻页;
      • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
      • ESC,退出输入模式,切换到命令模式;

    • 底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式。
    • 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
    • 在底线命令模式中,基本的命令有(已经省略了冒号):
      • q 退出程序;
      • w 保存文件;
    • ESC键可随时退出底线命令模式。
      在这里插入图片描述

    如果你想要使用 vi 来建立一个名为 subei.txt 的文件时,你可以这样做:

    [root@iZf8z6dzdkqx1n7rawz94oZ home]# vim subei.txt
    
    • 1

    然后就会进入文件

    在这里插入图片描述

    按下 i 进入输入模式(也称为编辑模式),开始编辑文字

    这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

    在这里插入图片描述

    按下 ESC 按钮回到一般模式

    好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

    在一般模式中按下 :wq 储存后离开 vim!

    在这里插入图片描述

    OK! 这样我们就成功创建了一个 subei.txt 的文件。

    Vim 按键说明

    第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

    移动光标的方法
    h 或 向左箭头键(←)光标向左移动一个字符
    j 或 向下箭头键(↓)光标向下移动一个字符
    k 或 向上箭头键(↑)光标向上移动一个字符
    l 或 向右箭头键(→)光标向右移动一个字符
    [Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d]屏幕『向下』移动半页
    [Ctrl] + [u]屏幕『向上』移动半页
    +光标移动到非空格符的下一行
    -光标移动到非空格符的上一行
    n< space>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
    0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
    $ 或功能键[End]移动到这一行的最后面字符处(常用)
    H光标移动到这个屏幕的最上方那一行的第一个字符
    M光标移动到这个屏幕的中央那一行的第一个字符
    L光标移动到这个屏幕的最下方那一行的第一个字符
    G移动到这个档案的最后一行(常用)
    nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
    gg移动到这个档案的第一行,相当于 1G 啊!(常用)
    n< Enter>n 为数字。光标向下移动 n 行(常用)
    搜索替换
    /word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
    ?word向光标之上寻找一个字符串名称为 word 的字符串。
    n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
    N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
    删除、复制与粘贴
    x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
    nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
    dd删除游标所在的那一整行(常用)
    nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
    d1G删除光标所在到第一行的所有数据
    dG删除光标所在到最后一行的所有数据
    d$删除游标所在处,到该行的最后一个字符
    d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
    yy复制游标所在的那一行(常用)
    nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
    y1G复制游标所在行到第一行的所有数据
    yG复制游标所在行到最后一行的所有数据
    y0复制光标所在的那个字符到该行行首的所有数据
    y$复制光标所在的那个字符到该行行尾的所有数据
    p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
    J将光标所在行与下一行的数据结合成同一行
    c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
    u复原前一个动作。(常用)
    [Ctrl]+r重做上一个动作。(常用)

    第二部分:一般模式切换到编辑模式的可用的按钮说明

    进入输入或取代的编辑模式
    i, I进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
    a, A进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
    o, O进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
    r, R进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    [Esc]退出编辑模式,回到一般模式中(常用)

    第三部分:一般模式切换到指令行模式的可用的按钮说明

    指令行的储存、离开等指令
    :w将编辑的数据写入硬盘档案中(常用)
    :w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
    :q离开 vi (常用)
    :q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
    注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
    :wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
    :w [filename]将编辑的数据储存成另一个档案(类似另存新档)
    :r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
    :n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息!
    :set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu与 set nu 相反,为取消行号!

    5.账号管理

    添加账号 useradd

    useradd 选项 用户名
    
    • 1

    参数说明:

    • 选项 :

      • -c comment 指定一段注释性描述。
      • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
      • -g 用户组 指定用户所属的用户组。
      • -G 用户组,用户组 指定用户所属的附加组。
      • -m 使用者目录如不存在则自动建立。
      • -s Shell文件 指定用户的登录Shell。
      • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    • 用户名 :

      • 指定新账号的登录名。

    测试:

    [root@iZf8z6dzdkqx1n7rawz94oZ home]# useradd -m subeily   # 创建一个用户!
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
    f2  f3  mvtest  redis  subei  subeily  subei.txt  test2  www
    
    • 1
    • 2
    • 3
    • Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了!

    Linux下如何切换用户

    • root用户:
      在这里插入图片描述
    1. 切换用户的命令为:su username 【username是你的用户名哦】

    在这里插入图片描述

    1. 从普通用户切换到root用户,还可以使用命令:sudo su.

    2. 在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令;

    3. 在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

    删除帐号

    • 删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

    • 删除一个已有的用户账号使用userdel命令,其格式如下:

    userdel 选项 用户名
    
    • 1
    • 常用的选项是 -r,它的作用是把用户的主目录一起删除。
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# userdel -r subeily
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
    f2  f3  mvtest  redis  subei  subei.txt  test2  www
    
    • 1
    • 2
    • 3
    • 此命令删除用户subeily在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

    修改帐号

    • 修改已有用户的信息使用usermod命令,其格式如下:
    usermod 选项 用户名
    
    • 1
    • 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
    • 例如:
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# usermod -d /home/233 subei
    [root@iZf8z6dzdkqx1n7rawz94oZ home]# 
    
    • 1
    • 2

    用户的密码设置问题!

    指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

    命令的格式为:

    passwd 选项 用户名
    
    • 1

    可使用的选项:

    • -l 锁定口令,即禁用账号。
    • -u 口令解锁。
    • -d 使账号无口令。
    • -f 强迫用户下次登录时修改口令。

    • 一般通过root创建用户的时候!要配置密码!

    • Linux上输入密码是不会显示的,你正常输入就可以了,并不是系统的问题!

    • 在公司中,一般是拿不到公司服务器的 root 权限,都是一些分配的账号!

    • 如果是超级用户的话:

      passwd username
      new password
      re password
      
      • 1
      • 2
      • 3

    在这里插入图片描述

    • 如果是普通用户:
    passwd
    (current) UNIX password:
    new password: # 密码不能太过于简单!
    re password:
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

    锁定账户!

    • root,比如张三辞职了!冻结这个账号,一旦冻结,这个人就登录不上系统了!
    • 为用户指定空口令时,执行下列形式的命令:
    # passwd -d subei 
    # 没有密码也不能登录!
    
    • 1
    • 2
    • 此命令将用户 subei的口令删除,这样用户 subei下一次登录时,系统就不再允许该用户登录了。

    • passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:

    # passwd -l subei 
    # 锁定之后这个用户就不能登录了!
    
    • 1
    • 2

    6.用户组管理

    增加一个新的用户组使用groupadd命令

    groupadd 选项 用户组
    
    • 1

    可以使用的选项有:

    • -g GID 指定新用户组的组标识号(GID)。
    • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

    实例1:

    # groupadd group1
    
    • 1
    • 此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

    实例2:

    # groupadd -g 101 group2
    
    • 1
    • 此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

    如果要删除一个已有的用户组,使用groupdel命令

    groupdel 用户组
    
    • 1

    例如:

    # groupdel group1
    
    • 1

    此命令从系统中删除组group1。

    修改用户组的属性使用groupmod命令

    groupmod 选项 用户组
    
    • 1

    常用的选项有:

    • -g GID 为用户组指定新的组标识号。
    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    • -n新用户组 将用户组的名字改为新名字
    # 此命令将组group2的组标识号修改为102。
    groupmod -g 102 group2
    
    # 将组group2的标识号改为10000,组名修改为group3。
    groupmod –g 10000 -n group3 group2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    /etc/passwd

    • 完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。

    • 与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

    下面分别介绍这些文件的内容。

    • /etc/passwd文件是用户管理工作涉及的最重要的一个文件。

    • Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

    这个文件对所有用户都是可读的。它的内容类似下面的例子:

    [root@iZf8z6dzdkqx1n7rawz94oZ home]# cat /etc/passwd
    
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    从上面的例子可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
    
    • 1

    /etc/shadow

    /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

    它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    
    • 1
    1. "登录名"是与/etc/passwd文件中的登录名相一致的用户账号
    2. "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
    3. "最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
    4. "最小时间间隔"指的是两次修改口令之间所需的最小天数。
    5. "最大时间间隔"指的是口令保持有效的最大天数。
    6. "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
    7. "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
    8. "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    /etc/group

    用户组的所有信息都存放在/etc/group文件中。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

    组名:口令:组标识号:组内用户列表
    
    • 1
    1. "组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
    2. "口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
    3. "组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
    4. "组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

    7.进程管理

    ps 指令

    使用ps指令即可查看当前系统中正在执行的进程的各种进程信息。

    基本语法:

    ps –选项
    
    • 1

    选项说明:

    • -a:显示当前终端的所有进程信息;
    • -u:以用户的形式显示进程信息;
    • -x:显示后台进程运行的参数;
    # ps -aux 查看所有的进程
    ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql
    # | 在Linux这个叫做管道符 A|B
    # grep 查找文件中符合条件的字符串!
    
    • 1
    • 2
    • 3
    • 4

    说明:

    1、grep 命令用于查找文件里符合条件的字符串。

    2、命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象。

    使用 ps -ef可查看父进程

    • ps -ef是以全格式显示当前所有的进程
      • -e 显示所有进程。
      • -f 全格式。
    • UID:用户ID
    • PID:进程ID

    终止进程kill或killall

    kill指令就像是Windows系统中的任务管理->结束任务一样。

    • 基本语法
    kill [选项] 进程号(功能描述:通过进程号杀死进程)
    
    killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负 载过大而变得很慢时很有用)
    
    • 1
    • 2
    • 3
    • 常用选项: -9:表示强迫进程立即停止。
    kill -9 PID
    
    • 1

    查看进程树pstree

    基本语法

    pstree [选项] ,可以更加直观的来看进程信息
    
    • 1

    常用选项:

    • -p :显示进程的PID;
    • -u :显示进程的所属用户

    在这里插入图片描述

    8.压缩,解压

    在这里插入图片描述

    #tar的常用组合:
    #将1.txt 2.txt 3.txt压缩到test.tar文件内
    tar -cvf test.tar 1.txt 2.txt 3.txt
    #将1.txt 2.txt 3.txt压缩到test.tar文件内,使用gzip模式
    tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:

    • -z选项如果使用,一般处于选项位第一个
    • -f选项,必须再选项位最后一个

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    jdbc快速开始
    短视频矩阵系统源代码开发|技术源代码部署/OEM贴牌搭建
    云WAF的负载均衡和流量分发功能
    什么是AOP?
    VPS和云服务器的区别
    105.从前序与中序遍历序列构造二叉树
    力扣1148. 文章浏览 I
    《开箱元宇宙》:《福布斯》如何通过 Web3 改进讲故事的方式
    本周大新闻|苹果再强调禁用“元宇宙”一词,TDK推出全球最小RGB激光模块
    Linux 下 Mysql 的安装与卸载
  • 原文地址:https://blog.csdn.net/weixin_46370595/article/details/133352208