Skip to content

系统操作相关命令

帮助命令

  • man帮助
-- 查看ls命令帮助(第一章时的1可以省略, man ls)
# man 1 ls
  • help帮助 shell(命令解释器)自带的命令称为内部命令, 其他称为外部命令
-- 内部命令使用help帮助
# help cd
-- 外部命令使用help帮助
# ls --help
-- 区分内部命令还是外部命令
# type cd
  • info帮助 info帮助比help更详细, 可以作为help的补充
# info ls

文件管理

查看目录

/ 根目录 /root root用户的家目录

-- 显示当前目录名称
pwd 
-- 更改当前的操作目录
cd
-- 查看当前目录下的文件
ls
常用参数:
-l 长格式显示文件
-a 显示隐藏文件
-r 逆序显示
-t 按照时间顺序显示
-R 递归显示
-h 便捷显示文件大小

ls -l命令详解 1745135096058

操作文件

-- 创建目录
# mkdir
常用参数:
-p 创建多级目录

-- 删除目录(只能删除空目录)
# rmdir 

-- 删除非空目录
# rm
常用参数:
-r 表示目录
-f 不进行提示删除目录

-- 复制文件
#cp [源目录,文件] [目标位置]
常用参数:
-r 表示目录
-v 显示复制过程
-p 保留原有的最后修改时间
-a 复制后的文件保留源文件的所有信息, 包括权限,创建用户,用户组,最后修改时间等

-- 移动(重命名)文件
# mv [源文件] [目标文件]
常用参数:
通配符 * 匹配所有(一个或多个)字符
通配符 ? 匹配单个字符

举例:
# mv /filea /fileb 将filea重命名为fileb

查看文本

-- 文本内容显示到终端
# cat [文件名称]

-- 查看文件开头
# head [文件名称]
常用参数:
-5 查看前5行, 默认10行

-- 查看文件结尾
# tail [文件名称]
常用参数:
-5 查看前5行, 默认10行
-f 文件内容更新后, 显示内容同步更新

-- 统计文件内容信息
# wc [文件名称]
常用参数:
-l 统计一共多少行

打包和压缩

-- tar命令
# tar [打包后的文件名] [需打包文件]
常用参数:
c 打包
x 解包
f 指定操作类型为文件

举例:打包文件以tar结尾
# tar cf /etc/etc-backup.tar /etc

-- 打包并压缩
-- 压缩为gzip格式, 以gz结尾
# tar czf /etc/etc-backup.tar.gz /etc
-- 压缩为bzip2格式, 以bz2结尾, 相比gz的压缩比例更高
# tar cjf /etc/etc-backup.tar.bz2 /etc

-- 解压文件,-C指定解压到的位置
tar xf /tmp/etc-backup.tar -C /root
tar zxf /tmp/etc-backup.tar.gz -C /root
tar jxf /tmp/etc-backup.tar.bz2 -C /root

补充:
.tar.gz的缩写为.tgz
.tar.bz2的缩写为.tbz2

VIM的四种模式

  • 正常模式(Normal-mode)
  • 插入模式(Insert-mode)
-- 正常模式进入插入模式
# i 进入当前光标所在的位置
# I	进入当前光标所在行的行首
# a 进入当前光标所在位置的下一个位置
# A 进入当前光标所在位置的行尾
# o 在光标所在行的下一行新建一行
# O 在光标所在行的上一行新建一行

-- 正常模式进入可视模式
# v 

-- 正常模式进入命令模式
ctrl+c

-- 退出到正常模式
按esc键

-- 对光标进行上下左右移动
# hjkl按键

-- 复制与粘贴
# yy 复制整行
# y$ 复制从光标位置到该行结尾的内容
# 3yy 复制3行
# p 粘贴

-- 剪切
# dd 剪切整行
# d$ 剪切从光标位置到该行结尾的内容
# 5dd 剪切5行

-- 撤销
# u

-- 重做
ctrl+r

-- 单个字符的删除
# x

-- 单个字符的替换
# r 再输入新的字符

-- 显示行数
:set nu

-- 不显示行数
:set nonu

-- 移动到指定行
# 11 shift+g 移动到11行行首
# g 移动到第一行行首
# G 移动到最后一行行首
# ^ 移动到当前行行首
# $ 移动到当前行行尾
  • 命令模式(Command-mode)
-- 保存并退出
# :wq /root/a.txt

-- 不保存退出
# :q!

-- 在vim中临时执行命令
# :! 再输出命令

-- 查找
# /x 查找x
# n 查找下一个匹配的x
# shift+n 查找上一个匹配的x

-- 替换(不带%默认只针对光标所在行进行替换, /g指全局替换)
# :s%/old/new/g
# :3,5s/old/new/g 在第三行和第5行之间替换

更改vim的配置文件

-- 每次启动都显示行号
# vim /etc/vimrc
在文末新建一行加上set nu
  • 可视模式(Visual-mode)
-- 进入可视模式
# v 单个字符
# V 以整行方式
# ctrl+v 以块的方式

-- 批量插入
先ctrl+v以块的方式选中文本
再I在行首添加内容
再按两次esc完成块中包含的行的行首全部添加了内容

-- 批量删除
以块方式选中内容再按d键

用户和权限管理

用户的增删改

新建一个用户后, 系统执行的步骤:

  • 创建了用户的家目录: /home/username
  • 在/etc/passwd文件中添加用户的一行记录
  • 在/etc/shadow中也会添加用户的一行记录
  • 若没有指定组, 则会创建一个与username同名的组, 组就相当于角色
-- 新建用户
# useradd username
# useradd -g groupname username 指定用户组创建用户

-- 验证系统已经存在的用户
# id username

-- 修改用户密码
# passwd username

-- 删除用户(-r用于删除用户的家目录)
# userdel -r username

-- 修改用户
# usermod -d /home/w1 testuser 将testuser的家目录更改为/home/w1
# usermod -g group1 testuser 将testuser的用户组改为group1

-- 修改用户的生命周期
# chage

-- 创建与删除用户组
# groupadd groupname
# groupdel groupname

-- 临时切换用户
# su - username
# id 进行验证当前的用户
# exit 登出

su和sudo命令的区别

  • su 切换用户
  • sudo 以其他用户身份执行命令 利用sudo命令可以将某些命令授权给到普通用户操作, 普通用户不必知道root用户密码 演示:
# shutdown -h 30 30分钟后关机(只有root用户有权限操作)
# shutdown -c 取消(只有root用户有权限操作)

演示步骤:
1.root用户设置30分钟后关机
2.执行visudo, 在文件末尾添加
testuser ALL=/sbin/shutdown -c

补充:
- 如果是用户组, 则为%groupname
- 如果仅允许字符终端, 则为localhost, ALL表示允许所有
- 若找不到命令位置, 则:!which shutdown 寻找指令目录
- 存在多个指令时使用,分隔

3.testuser用户取消关机
# sudo /sbin/shutdown -c

root设置关机: 1745135334510

testuser取消关机: 1745135342095

用户和用户组的配置文件

  • passwd文件 vim /etc/passwd 1745135354919
user1:x:1001:1001::/home/user1:/bin/bash

7个字段的释义:
1. user1代表用户名称, 新增一个用户就会新增一条记录
2. x代表需要密码登录, 删除x(此处为空)则不需要密码登录
3. 1001为uid, 用户的唯一标识, 比如root用户为0
4. 1001位gid, 用户的组id
5. 表示注释
6. /home/user1, 表示用户的家目录
7. /bin/bash, 表示用户登录的用户解释器, 若为/sbin/nologin, 则用户不能登录终端
  • shadow文件, 保存用户密码信息 vim /etc/shadow 1745135372636
字段释义
1. 用户名称
2. 用户加密后的密码
  • group文件, 保存用户组相关信息 vim /etc/group 1745135384837
字段释义:
1. 组名称
2. 是否需要密码验证
3. gid
4. 其他组设置(比如上图postfix用户既在其他的组中, 也属于mail组中)

文件与目录权限的表示方法

1745135397094

类型: 特别注意对于不同的类型, 权限的表示含义是不一样的
- 普通文件
d 目录文件
b 块特殊文件
c 字符特殊文件
l 符号特殊文件
f 命名管道
s 套接字文件

权限:
前3个, 当前用户对该文件的权限
中间3个, 当前用户组对该文件的权限
后3个, 其他用户对该文件的权限

文件权限的表示方法:
1.字符权限的表示方法
r 读
w 写
x 执行
2.数字权限的表示方法
r=4
w=2
x=1

目录权限的表示方法:
x 进入目录
rx 显示目录内的文件名
wx 修改目录内的文件名

1745135413745

文件权限的修改方法和数字表示方法

注意: 当属主与属组权限冲突时, 以属主权限为准 如下图, group1的可以操作bfile, 但是user1不能, 以user1为准, 因此user1写入失败, group1中的user2写入成功 1745135558481

chmod 修改文件, 目录权限
u 用户权限 g 用户组权限 o为其他用户权限 a 用户以及用户组权限
+,-,= 易理解, 就是直接对权限的加减和赋值
r为4,w为2,x为1, 因此最大为7
例:
- chmod u+x /tmp/testfile
- chmod 755 /tmp/testfile (这个等同于 u=rwx,g=rx,o=rx)

chown 更改属主, 属组
- chown user1:group1 /test/bfile 更改bfile的属主和属组为user1和gruop1
chgrp 可以单独更改属组, 不常用


修改目录时:
x代表进入目录的权限
rx 可进入和查看目录中文件
wx 可进入和删除目录中文件

1745135567930