Linux常用命令——持续更新

Linux常用命令

文章目录

  • Linux常用命令
    • 前言
    • 1、linux系统结构
    • 2、基础命令
      • 2.1、ls (列出文件目录)
      • 2.2、pwd (当前目录所处位置)
      • 2.3、cd (打开/退出文件夹)
      • 2.4、mkdir(make directory:创建目录)
      • 2.5、touch(创建文件)
      • 2.6、cp(复制:copy)
      • 2.7、mv(移动:move)
      • 2.8、rm(删除:remove)
      • 2.9、vim (一款文本编辑器)
      • 2.10、cat (打开/合并文件)
    • 3、进阶命令
      • 3.1、df (查看磁盘的空间)
      • 3.2、free (查看内存RAM使用情况)
      • 3.3、nvidia-smi (查看显卡和显存VRAM信息)
      • 3.4、head (查看一个文件前 n 行,默认显示前10行)
      • 3.5、tail (查看一个文件末n行,默认显示后10行)
      • 3.6、wc (统计信息 )
      • 3.7、date (显示操作时间日期)
      • 3.8、cal (操作日历)
      • 3.9、clear / ctrl+l (清屏)
      • 3.10、| (管道)
    • 4、高阶命令
      • 4.1、hostname (主机名)
      • 4.2、id (用户基本信息)
      • 4.3、whoami (显示用户名)
      • 4.4、ps (查看服务器进程信息:process)
      • 4.5、top (查看服务器进程占用)
      • 4.6、du -sh (查看目录大小)
      • 4.7、find (查找)
      • 4.8、service (控制软件停止、重启等)
      • 4.9、kill (终结进程)
      • 4.10、reboot (重启服务器)
      • 4.11、shutdown (关机服务器)
      • 4.12、uptime (服务器上线时间)
      • 4.13、uname (获取系统相关信息)
      • 4.14、netstat (查看网络状态)
      • 4.15、man (手册)
      • 4.16、小技巧
    • 5、Vim三种模式
      • 5.1、Vim打开文件的4种方式
      • 5.2、命令模式
        • 5.2.1、光标移动操作
        • 5.2.2、复制操作
        • 5.2.3、剪切/删除
        • 5.2.4、撤销/恢复
        • 5.2.5、扩展1:光标的快速移动
      • 5.3、末行模式
      • 5.4、编辑模式
      • 5.5、实用功能
      • 5.6、扩展-vim的配置
    • 6、Linux运行级别
    • 7、用户与用户组管理
      • 7.1、用户管理
        • 7.1.1、添加用户
        • 7.1.2、修改用户
        • 7.1.3、设置密码
        • 7.1.4、切换用户
        • 7.1.5、删除用户
      • 7.2、用户组管理
        • 7.2.1、用户组添加
        • 7.2.2、用户组编辑
        • 7.2.3、用户组删除
      • 8、shell

前言

Linux命令大全

1、linux系统结构

目录 含义
Bin: 全称 binary, 含义是二进制。该目录中存储的都是一些二进制文件,文件是可以被运行的。
Dev: 该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似Windows下的分配盘符);
Mnt: 当外接设备需要挂载的时候,就需要挂载到mnt目录下。
Etc: 该目录只要存储一些配置文件。
Home: 表示“家”, 表示除了root用户以外其他用户的家目录,类似于windows下的User/ 用户目录。
Proc: process,表示进程,该目录中存储的是linux运行时的进程。
Root: 该目录是root用户自己的家目录。
Sbin: 全称super binary, 该目录也是存储一些可以被执行的二进制文件,但是必须的有super权限的用户才能执行。
Tmp: temporary,表示临时的,当系统运行时产生的临时文件会在这个目录存着。
Usr: 存放的是用户自己安装的软件。类似于windows下的program files.
Var: 存放程序/系统的日志文件的目录。

2、基础命令

2.1、ls (列出文件目录)

  • #ls

    ​ 列出当前工作目录下的所有文件/文件夹的名称

  • #ls 路径

    ​ 路径分为两种:相对路径、绝对路径。
    ​ 相对路径:首先得有一个参照物(一般就是当前的工作路径)
    ​ 相对路径的写法:通常会用到2个符号 “./”(表示当前目录下), “…/” (表示上一级目录下)。
    ​ 绝对路径: 绝对路径不需要参照物,直接从根 “/” 开始寻找对应路径。

  • #ls 选项 路径

    ​ 含义: 在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示

    ​ 常见的语法:

    ​ #ls-l 路径

    ​ #ls-la 路径

    ​ 选项解释:

    ​ -l: 表示list,表示以详细列表的形式进行展示

    ​ -a: 表示显示所有的文件/文件夹(包含了隐藏的文件/文件夹)

    在linux中隐藏的文档一般都是以"."开头

  • #ls-lh 路径

    ​ 含义: 列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示

    ​ 注意:ls 列出的结果说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限。

2.2、pwd (当前目录所处位置)

  • #pwd

    ​ (print working directory, 打印当前工作目录)

2.3、cd (打开/退出文件夹)

  • #cd 路径

    ​ 用于切换当前的工作目录
    ​ 例: cd…/…/root

  • #cd ~

    ​ 在linux中有一个特殊的符号"~",表示当前用户的家目录。

2.4、mkdir(make directory:创建目录)

  • #mkdir 路径

    ​ 路径: 可以是文件夹名称,也可以是包含名称的一个完整路径

  • #mkdir -p 路径

    ​ 含义: 当需要一次性创建多层不存在的目录时,需要添加 -p 参数
    ​ 例如: #mkdir -p /root/a/b/c/d

  • #mkdir 路径1 路径2 路径3 ...

    ​ 含义: 一次性创建多个文件夹
    ​ 例如: #mkdir a b c d

2.5、touch(创建文件)

  • touch 文件路径(可以是文件名也可以是路径)

    ​ 例子:touch linux.txt
    ​ touch linux2.txt linux3.txt (同时创建多个文件)
    ​ touch /home/txt/linux.txt (指定文件夹下创建文件)

2.6、cp(复制:copy)

  • #cp 被复制的文档路径 文档保存的路径

    ​ 例如:#cp linux.txt /home/linux.txt
    ​ #cp linux.txt /home/linuxxxx.txt (可以更改新文档的名字)
    ​ #cp -r /linux/ /home/linux (复制文件夹及其文件, -r 指递归)

2.7、mv(移动:move)

  • #mv 需要移动的文档路径 保存文档的新路径

    ​ 例如: #mv /linux /home

  • 注意: 在linux中重命名也是mv,语法和移动语法一样(目录不变即为重命名)

    ​ 例如: #mv /linux /linux111

2.8、rm(删除:remove)

  • #rm 选项 需要移除的文档路径

    ​ 选项:
    ​ -f:force,强制删除
    ​ -r:recursion, 递归
    ​ 例如: 删除一个文件
    ​ #rm linux.txt

    在删除的时候,如果不带选线,会提示是否删除,如果需要删除则输入 “y/yes” ,否则输入 “n/no” 按下回车,如果在删除的时候不想频繁的确认,在可以在指令中添加选项 “-f” ,表示force(强制)。例:
    #rm -f linux.txt
    #rm -rf /home (强制删除home文件夹下的所有文件)
    #rm -rf a b c (删除多个文件)
    案例: 删除以linux开头的所有文件
    #rm -f linux*
    * 称之为通配符,表示任意的字符。

2.9、vim (一款文本编辑器)

  • vim 文件路径
    作用: 打开一个文件(可以存在,也可以不存在)
    退出打开的文件夹:在没有按下其他命令的其他情况下,按下shift+英文冒号,输入q,按下回车即可。

  • 输出重定向
    一般命令的输出都会显示在终端,有些时候需要将一些命令执行的结果保存到文件中进行后续的分析、统计,就需要用到输出重定向技术。

> :覆盖输出,会覆盖原来的文件内容。
>>:追加输出,不会覆盖原始文件的内容,会在原始文件内容末尾继续添加.

  • #正常执行的指令 >/>> 文件的路径
案例1: 使用覆盖重定向,保存 ls-la 的执行结果, 保存到当前目录下的ls.txt
	#ls -la > ls.txt
	#vim ls.txt 
案例2: 使用追加重定向,保存 ls-la 的执行结果到 ls.txt 中
	#ls -la >> ls.txt

2.10、cat (打开/合并文件)

​ 作用1: cat 有直接打开一个文件的功能,和vim不同的是打开后直接退出,不能编辑

  • #cat 文件的路径
    cat linux.txt
    作用2: cat还可以对文件进行合并

  • #cat 待合并的文件路径1 待合并的文件2... 文件路径n > 合并之后的文件路径

    ​ 例如: #cat /home/linux1 /home/linux2 /home/linux2 > all.txt

3、进阶命令

3.1、df (查看磁盘的空间)

  • #df

  • #df -h

    ​ -h 表示磁盘空间使用自适应单位显示(G\M\K)

3.2、free (查看内存RAM使用情况)

  • #free

  • #free -h

    ​ -m 表示以mb为单位查看

    ​ -h 表示自适应

3.3、nvidia-smi (查看显卡和显存VRAM信息)

  • #nvidia-smi

    ​ 英伟达显卡可以使用该命令查看显卡和显存信息。

3.4、head (查看一个文件前 n 行,默认显示前10行)

  • #head -n 文件路径

    ​ (n表示数字)

3.5、tail (查看一个文件末n行,默认显示后10行)

  • #tail -n 文件路径
    例如:#tail -l linux.txt (查看文件的最后一行)

    ​ 可以通过tail指令查看一个文件的动态变化

  • #tail -f 文件路径

    ​ tail 一般用于查看日志

3.6、wc (统计信息 )

​ 作用: 统计文件内容信息(包括行数、单词数、字节数)

  • #wc -lwc 需要统计的文件路径
    -l: 表示lines,函数
    -w: 表示words,单词数
    -c: 表示bytes,字节数

3.7、date (显示操作时间日期)

​ 作用: 表示操作时间日期(读取、设置)

  • #date

    ​ 输出形式:2020年 3 月 5 日 星期四 XX:XX:XX

  • #date +%F

    ​ 等价于 :#date “+%Y-%m-%d”

    ​ 输出形式:2020-03-05

  • #date "+%F %T"

    ​ 等价于: #date “+%Y-%m-%d %H:%M:%S”

    ​ 引号表示让“年月日与时分秒”成为一个不可分割的整体
    ​ 输出形式: 2019-05-16 20:34:56

3.8、cal (操作日历)

  • #cal

    ​ 等价于 #cal -1 ,直接输入当前月份的日历

  • #cal -3 表示输出上一个月+本月+下一个月的日历

  • #cal -y 年份 表示输出某一年的日历

3.9、clear / ctrl+l (清屏)

​ 作用:清除终端中已经存在的 命令和结果。
​ 该命令不是真的清除了之前的信息,而是把之前的信息的隐藏到最上面,通过滚动条可以查看以前的信息。

3.10、| (管道)

  • 管道符: |
    作用: 管道以便可以用于 “过滤” 、 “特殊” 、 “扩展处理” 。
    语法: 管道不可以单独使用,必须配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。

    ​ 过滤案列: 通过管道查询出根目录下包含 ‘y’ 字母的文档名称。

  • #ls /|grep y

    ​ 针对上面命令的说明:
    ​ 1、以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出;通俗的讲就是管道前面的输出就是后面指令的输入。
    ​ 2、grep:只要用于过滤

  • #cat 路径|less

    ​ 特殊用法案例:通过管道的操作方法实现less的等价效果(#less 路径)

  • #ls /| wc -l

    ​ 扩展处理:统计某个目录下的文档的总个数

4、高阶命令

4.1、hostname (主机名)

​ 作用:操作服务器的主机名(读取、设置)

  • #hostname

    ​ 输出完整的主机名

  • #hostname -f

    ​ 输出当前主机名中的FQDN:全限定域名

4.2、id (用户基本信息)

​ 作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。

  • #id

  • #id 用户名

    ​ 例如:#id root

    ​ 验证用户信息:通过文件 /etc/passwd
    ​ 验证用户组信息:通过文件 /etc/group

4.3、whoami (显示用户名)

​ 作用:显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。

  • #whoami

4.4、ps (查看服务器进程信息:process)

  • ps -ef
    作用:查看服务器的进程信息
    -e: 等价于"-A",表示列出全部的进程
    -f: 显示全部的列(显示全字段)

    标题名称 含义
    UID 该进程执行的用户ID
    PID 进程id
    PPID 该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程
    C cpu的占用率,其形式是百分数
    STIM 进程的启动时间(开始运行时间,start-time)
    TTY 终端设备,发起该进程的设备识别符号,如果显示"?",则表示该进程并不是由终端设备发起,由系统自动发起
    CMD 该进程的名称或者相对应的路径
    TIME 进程到目前为止的执行时间
  • #ps -ef|grep 进程名称

    ​ 在ps的结果中过滤出想要查看的进程状态
    例如刷选查看桌面进程:#ps -ef|grep gnome-panel

4.5、top (查看服务器进程占用)

​ 作用: 查看服务器的进程占的资源

  • #top (动态显示)

    ​ 在运行top的时候,可以按下快捷键:

    ​ q:退出命令
    ​ M:表示将就过按照内存(MEM)从高到低进行降序排列
    ​ P : 表示将结果按照CPU使用率从高到低进行降序排列
    ​ 1: 当服务器拥有多个CPU的时候可以使用“1”快捷键来切换是否展示显示各个信息

名称 含义
PID 进程id
USER 该进程对应的用户
PR 优先级
VIRT 虚拟内存(virtual)
RES 常驻内存
SHR 共享内存(share)(计算一个进程实际使用的内存 = 常驻内存(RES) - 共享内存(SHR))
S 表示进程的状态(sleeping,其中S表示睡眠,R表示运行)
%CPU 表示CPU的占用百分比
%MEM 表示内存的占用百分比
TIME+ 执行的时间
COMMAND 进程的名称或者路径

4.6、du -sh (查看目录大小)

​ 作用:查看目录真实大小

​ 选项含义:

​ s:summary总结,摘要

​ h:简要信息

  • #du -sh 目录地址

    ​ 不加目录地址则默认统计当前目录

4.7、find (查找)

​ 作用:用于查找文件

  • #find 路径 选项 选项的值

    ​ 选项:

    ​ -name:按照文件名称进行搜索

    ​ -type:按照文档类型进行搜索

    ​ ‘-’:表示文件(使用find时用 f 来替换),‘d’:表示文件夹

    ​ 案例:

    ​ find /root -name *.txt

    ​ find /root -type d

4.8、service (控制软件停止、重启等)

  • #service 服务名 start/stop/restart

    ​ 作用:控制软件服务启动/停止/重启等

    ​ 案例:service httpd start

4.9、kill (终结进程)

  • #kill 进程PID

    ​ 必须先查询进程PID后才能终结;

  • #killall 进程名称

    ​ 可以使用进程名称来终结。

4.10、reboot (重启服务器)

  • #reboot

    ​ 重启服务器

  • #reboot -w

    ​ 模拟重启,但真实不重启,只记录关机与开机的日志信息。

4.11、shutdown (关机服务器)

  • #shutdown -h now

  • #shutdown -h 15:25 “提示信息”

    ​ 立即/定时关机,定时关机是按“ctrl + c”或“ctrl -c ”取消(因版本不同而不同)

    ​ 与此同时,还可以使用:init 0poweroffhalt等命令关机

4.12、uptime (服务器上线时间)

  • #uptime

​ 输出计算机在线时间,用户数等信息

4.13、uname (获取系统相关信息)

  • #uname

    ​ 获取系统信息。

  • #uname -a

    ​ 获取更多的系统信息(查看系统内核)

4.14、netstat (查看网络状态)

  • #netstat -tnlp

    ​ 选项含义:

    ​ -t:列出TCP协议的连接

    ​ -n:地址栏显示ip地址和端口号

    ​ -l:过滤出正在监听的连接

    ​ -p:显示对应网络的进程PID

4.15、man (手册)

  • #man

    ​ manutal,查看linux全部手册,按q退出

  • #man 命令

    ​ 查看指定命令的使用方法。

4.16、小技巧

  • 快速删除光标前后的内容

    ​ 前:ctrl + u 后: ctrl + k

  • 快速回到当前家目录

    #cd ~#cd

5、Vim三种模式

​ Vim种存在三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)

  • 命令模式:在该模式下不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】

  • 编辑模式:在该模式下可以对文件的内容进行编辑

  • 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)

5.1、Vim打开文件的4种方式

  • #vim 文件路径

    ​ 作用:打开指定的文件

  • #vim +数字n 文件路径

    ​ 作用:打开指定的文件,并且将光标移动到指定第n行

  • #vim +/关键词 文件路径

    ​ 作用:打开指定的文件,并且高亮显示关键词

  • #vim 文件路径1 文件路径2 文件路径3

    ​ 作用:同时打开多个文件

  • 退出方式:输入 :q 按下回车

  案例:
  ​		#vim /root/passwd
  ​		#vim +6 passwd
  ​		#vim +/login passwd

5.2、命令模式

5.2.1、光标移动操作

  1. 光标移动到行首
    按键:shift+6(T字母上面的6) ^
  2. 光标移动到行尾
    按键:shift+4 (R字母上面的4) $
  3. 光标移动到首行
    按键: gg
  4. 光标移动到末行
    按键: G
  5. 翻屏
    向上翻屏:按键ctrl+b (before) 或者 pageUp
    向下翻屏:按键ctrl+f (after) 或者 pageDown

5.2.2、复制操作

  1. 复制光标所在行
    按键: yy
    粘贴: p (paste)
  2. 以光标所在行为准(包含当前行),向下复制指定的行数
    按键: 数字yy
  3. 可视化复制
    按键: ctrl+v,方向键选中需要复制的块,yy复制,p粘贴

5.2.3、剪切/删除

  1. 剪切/删除光标所在行
    按键: dd (删除之后,下一行上移)
    注意: dd
    粘贴: p
    (严格意思上说是剪切命令,如果剪切了不粘贴就是删除的效果)
  2. 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
    按键: 数字dd (删除之后下一行上移)
  3. 剪切/删除当前行,删除之后下一行不上移
    按键: D (删除之后当前行会变成空白行)

5.2.4、撤销/恢复

撤销:输入 :u(不属于命令模式) 或者 u (undo)
恢复: ctrl+r 恢复之前的操作

5.2.5、扩展1:光标的快速移动

  1. 快速将光标移动到指定的行
    按键: 数字G
  2. 以当前光标为准向上/向下移动n行
    按键: 数字↑,数字↓
  3. 以当前光标为准想左/向右移动n字符
    按键:数字←,数字→
  4. 末行模式下的款速移动方式:移动到指定的行
    按键:输入 :数字 回车

5.3、末行模式

​ 命令模式切换到末行模式:按下 : 或者 /
​ 退出末行模式:按一下esc 或者 按两下esc 或者 删除末行中的全部命令

  1. 保存操作(write):
    输入: “:w” 保存文件
    输入: “:w 路径” 另存为

  2. 退出(quit):
    输入: ‘:q’ 退出文件

  3. 保存冰退出:
    输入: ‘:wq’ 保存并退出

  4. 强制(!)
    输入: “:q!” 表示强制退出,刚才做的修改不做保存

  5. 调用外部命令:
    输入: “:! 外部命令”
    #:! -la

  6. 搜索/查找
    语法: /关键词
    #/sbin
    切换上一个、下一个结果: N/n (next)

  7. 替换
    /搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容
    /搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容
    :%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容
    :%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容

    ​ %表示整个文件
    ​ g表示全局(global)

  8. 显示行号

    ​ :set nu
    取消 :set nonu

  9. 使用vim同时打开多个文件,在末行模式下进行文件切换

    ​ 查看当前已经打开的文件名称 ==> :files

    ​ 执行:files的字段解释:在%a的位置有2种显示可能
    %a: a=active,表示当前正在打开的文件
    #: 表示上一个打开的文件
    ​ 切换文件的方式:
    1、如果需要指定切换文件的名称,则可以输入 ==> “:open 已经打开的文件名”
    2、通过命令切换上一个文件/下一个文件
    :bn 切换到下一个文件(back next)
    :bp 切换到上一个文件 (back prev)

5.4、编辑模式

​ 从命令模式切换到编辑模式:

  • i 或者 a 或者 o 或者 I 或者 A 或者 O 或者 S
  • i ==> 在光标所在字符前开始插入 (insert)
  • a ==> 在光标所在字符后开始插入 (after)
  • o ==> 在光标所在行的下面另起一新行插入
  • I ==> 在光标所在行的行首开始插入,如果行首有空格则在空格之后插入
  • A ==> 在光标所在行的行尾开始插入
  • O ==> 在光标所在行的上面另一行开始插入
  • S ==> 删除光标所在行并开始插入
  • 退出方式: 按下 esc

5.5、实用功能

  1. 代码着色
    开启 ==> syntax on
    关闭 ==> syntax off

  2. vim中的计算器

​ 当在编辑文件的时候突然需要使用计算器去计算一些公式,则此时需要使用计算器,但是需要退出,vim集成了一个简易的计算器。

​ 首先进入编辑模式
​ 按" ctrl+R “,输入” = ",此时光标会变到最后一行
​ 输入需要计算的内容,按下回车

5.6、扩展-vim的配置

​ vim配置有三种情况:

  • 在文件打开的时候在末行模式下输入的配置(临时的)
  • 个人配置文件(~/.vimrc, 如果没有可以自行新建)
  • 全局配置文件(vim自带,/etc/vimrc)
  1. 新建好个人配置文件之后进入编辑
    touch .vimrc
  2. 在配置文件中进行配置
    比如显示行号: set nu
    在.vimrc文件中写入 ==> set nu 即可
    问题:如果某个配置,在个人配置文件与全局配置文件产生冲突的时候,谁的优先级高?
    测试:在两个配置中针对同一个配置项设置不同的值
    1、在全局配置中设置不显示行号,在个人配置文件中设置显示行号,观察结果。
    最后显示行号,说明以个人配置项为准。
    2、在全局配置中设置显示行号,在个人配置中设置不显示行号,观察结果。
    最后不显示行号,说明以个人配置项为准。
    结论:如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准;如果个人配置文件不存在,则以全局配置为准。
  3. 异常退出
    在编辑文件之后并没有正常的去 wq (保存退出),而是遇到突然关闭终端或者断电导致的退出称之为异常退出。
    解决办法:将交换文件(在编程过程中产生的临时文件)删除掉即可
  4. 别名机制
    作用:相当于创建一些属于自己的自定义命令
    别名机制依靠一个别名映射文件: ~/.bashrc
    打开映射文件: vim ~/.bashrc
    添加相应的快捷方式即可。
    注意:如果想要新的快捷方式生效,需要重新登录当前账户。
  5. 退出方式
    回顾:之前vim中退出编辑的文件可以使用 “:q” 或者 “:wq”
    vim的另一个退出方法 ==> “:x”
    说明:
    1、 “:x” 在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出。
    2、 如果文件没有被修改,但是使用了":wq"进行退出的话,则文件的修改时间会被更新;使用":x"进行退出的话,文件时间不会被更新。建议使用":x"保存文件。千万不要写成了":X",大写的X表示加密。

6、Linux运行级别

运行模式也可以称之为运行级别。在linux中存在一个进程:init (inintialize,初始化),进程id是1;查看进程: ps -ef|grep init;该进程存在一个对应的配置文件: inittab (系统运行级别配置文件,/etc/inittab)

cat etc/inittab
将看到7种运行级别:
0 ==> 表示关机级别 (不要将默认的运行级别设置成这个值)
1 ==> 单用户模式
2 ==> 多用户模式,不带NFS(network file system)
3 ==> 多用户模式,完全的多用户模式 (不带桌面的,纯命令行模式)
4 ==> 没有被使用的模式(被保留模式)
5 ==> X11,完整的图形化界面模式
6 ==> 表示重启级别 (不要将默认的运行级别设置成这个值)

与该级别相关的几个命令:
#init 0 表示关机
#init 3 表示切换到不带桌面模式
#init 5 切换到图形界面
#init 6 重启电脑
注意:init指令需要超级管理员权限。
这些命令都是调用init进程,将数字(运行级别)传递给进程,进程去读配置文件执行相应的操作。

切换到命令行模式下(临时切换)
#init 3
切换到桌面模式
#init 5
设置模式永久为命令行模式
将etc/inittab文件中的initdefault的值设置成3,然后重启操作系统。

7、用户与用户组管理

​ Linux系统是一个多用户多任务的系统,所以必须实现用户管理功能:用户账号的添加、删除、修改、用户密码的管理和用户组的管理。

​ 需要注意三个文件:

  • /etc/passwd 存储用户的关键信息
  • /etc/group 存储用户组的关键信息
  • /etc/shadow 存储用户的密码信息

7.1、用户管理

7.1.1、添加用户

  • #useradd 选项 用户名
    常用选项:
    -g: 表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
    -G: 表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
    -u: (uid)用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
    -c: comment, 添加注释
案例1:
  1.创建用户zhangsan,不带任何选项:
  	#useradd zhangsan
  2.验证是否创建成功:
  	(1)、验证/etc/passwd的最后一行,查看是否有zhangsan的信息
  	(2)、验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录)
  3.执行命令 #cat /etc/passwd 后查看最后一行新建的字段信息有:
  	用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell,详细解释如下:
名称 含义
用户名 创建新用户的名称,后期登录的时候需要输入
密码 此密码位置一般情况都是"X",表示密码的占位
用户ID 用户的标识符
用户组ID 该用户所属的主组ID
注释 解释该用户是做什么用的
家目录 用户登录进入系统之后默认的位置
解释器shell 等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理

​ 注意:在不添加选项的时候,执行#useradd之后会执行一系列的操作:创建同名的家目录和创建同名的用户组

案例2:
  1.创建一个用户lisi,属于501主组,属于500的附加组,用户的id:自选靓号666
		# useradd -g 501 -G 500 -u 666 lisi
  2.验证:
  		#cat /etc/passwd
		#cat /etc/group		附加组
  3.注意:查看用户的主组#cat /etc/passwd,查看附加组#cat /etc/group

7.1.2、修改用户

  • #usermod 选项 用户名
    常用选项:
    -g: 表示指定用户的用户主组,选线的值可以是用户组的id,也可以是组名
    -G:表示指定用户的用户附加组,选线的值可以是用户组的id,也可以是组名
    -u: uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
    -l: 修改用户名

    案例1:修改zhangsan的主组为500,附加组为501
    #usermod -g 500 -G 501 zhangsan

    案例2:修改zhangsan用户名为wangwu
    #usermod -l 新用户名 旧用户名
    #usermod -l wangwu zhangsan

7.1.3、设置密码

linux不允许没有密码的用户登录系统,因此前面创建的用户目前处于锁定状态,需要设置密码之后才能登录到系统。

  • #passwd 用户名

    ​ 修改密码

案例1:设置wangwu的密码为wangwu.(密码太简单是通不过的)
  		#passwd wangwu

7.1.4、切换用户

  • #su 用户名 (switch user)

    ​ 注意:

    ​ 1、如果用户名不指定,则会切换到root
    ​ 2、切换用户注意事项:
    (1)、从root往普通用户切换不需要密码,反之需要密码
    ​ (2)、切换用户之后前后的工作路径是不变的
    ​ (3)、普通用户没有权限访问root用户家目录,反之可以

7.1.5、删除用户

  • #userdel 选项 用户名
    常用选项:
    -r: 表示删除用户的同时,删除其家目录
    已经登录的用户是不能删除的,如果要删除,直接kill对应用户的进程id
案例1、删除wangwu  
		#userdel -r wangwu

注意:所有跟用户操作的命令(除passwd外),只有root超级管理员才能执行。

7.2、用户组管理

​ 每个用户都要有一个用户组,系统可以对用户组中的用户进行集中管理,用户组的管理涉及用户组的添加,删除和修改,这些其实是对/etc/group文件进行修改。

  • #cat /etc/group

    ​ 文件结构:用户组名:密码:用户组ID:组内用户名
    ​ 密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分情况下不设置密码
    ​ 组内用户名:表示附加组是该组的用户名称

7.2.1、用户组添加

  • #groupadd 选项 用户名
    常用选项:
    -g: 自定义一个用户组ID数字,如果不指定,则默认从500之后递增
案例1:创建一个administrators组
		#groupadd administrators
	  验证是否成功:
	  	#tail -l /etc/group

7.2.2、用户组编辑

  • #groupmod 选项 用户组名
    常用选项:
    -g: 表示自定义用户组ID
    -n: 表示新的用户组名称
案例1: 修改administrators用户组,将组ID从502改成520,将名称改为admins
		#groupmod -g 520 -n admins administrators

7.2.3、用户组删除

  • #groupdel 用户组名
    注意:如果一个组是某个用户的主组,则不允许删除这个组;若果需要删除,则需要移出组内的所有用户。

8、shell

​ ssh(secure shell,安全外壳协议),该协议有2个常用的作用:远程连接协议、远程文件传输协议。;协议使用端口号: 默认是22,如果想要修改,则修改ssh服务的配置文件:#etc/ssh/ssh_config
​ 修改端口号注意事项:
​ 1、端口范围是从0-65535
​ 2、不能使用别的服务已经占用的端口号

  1. 服务启动/停止、重启
  • #service sshd start/stop/restart
  • #/etc/init.d/sshd start/stop/restart
  1. 远程终端:
    终端工具主要帮助运维人员连接远程的服务器,常见终端工具有:Xshell、secureCRT、Putty

  2. 获取服务器ip地址,可以通过ifconfig命令进行查看

#ifconfig

  1. 打开putty,输入相关的信息

你可能感兴趣的:(Linux)