- 1. 用户管理相关
- 1.1 添加用户
- 1.2 指定/修改 密码
- 1.3 删除用户
- 1.4 查询用户
- 1.5 切换用户
- 1.6 用户组
- 1.6.1 新增用户组
- 1.6.2 删除用户组
- 1.6.3 增加用户时直接加上组
- 1.6.4 修改用户组
- 2. 文件目录相关
- 2.1 cd
- 2.2 mkdir
- 2.3 rmdir
- 2.4 touch
- 2.5 cp
- 2.6 rm
- 2.7 mv
- 2.8 cat
- 2.9 echo
- 2.10 head
- 2.11 tail
- 2.12 > 和 >>
- 2.13 ln
- 2.14 history
- 3 查找指令
- 3.1 find
- 3.2 locate
- 3.3 which
- 3.4 grep
- 4. 压缩和解压
- 4.1 gzip / gunzip
- 4.2 zip / unzip
- 4.3 tar
- 5. 文件权限
- 5.1 chown
- 5.2 文件/目录 所在组
- 5.3 其它组
- 5.4 改变用户所在组
- 5.5 权限的基本介绍
- 5.6 修改权限 chmod
- 5.6.1 + - = 变更权限
- 5.6.2 通过数字变更权限
- 基本语法:useradd [新用户名]
- 应用案例:添加一个用户 jason,默认该用户的家目录在 /home/jason
- 细节说明:
- 当创建用户成功后,会自动创建和用户名同名的家目录
- 也可以通过 useradd -d [指定目录] [新用户名] 的方式给新用户指定家目录
- useradd -g [用户组] [用户名] 可以在新建用户的时候指定用户组
1.2 指定/修改 密码
- 基础语法:passwd [待修改的用户名],如果不指定用户名,则是修改当前用户的密码
- 应用案例:
1.3 删除用户
-
基本语法:userdel [待删除的用户名]
-
应用案例:
- 删除用户,但是保留家目录:userdel jason
- 删除用户及其家目录:userdel -r king 该操作要谨慎!
-
细节说明:一般删除也是需要保留家目录的
1.4 查询用户
- 基本语法:id [待查询的用户名]
- 应用案例:id jason
- 细节说明:当用户不存在时,返回无此用户
1.5 切换用户
- 基本语法:su - [待切换的用户名]
- 应用案例:su - jason
- 细节说明:
- 从权限较高的用户切换到低权限的用户时,不需要输入密码,反之则需要
- 当需要返回原来的用户时,使用 exit/logout 指令
1.6 用户组 1.6.1 新增用户组
- 基本语法:groupadd [组名]
- 基本语法:groupdel [组名]
- 基本语法:useradd -g [用户组] [用户名]
- 细节说明:当创建用户时未指定组,会默认给这个用户创建同用户名的组
-
基本语法:usermod -g [用户组] [用户名]
-
细节说明:当创建用户时未指定组,会默认给这个用户创建同用户名的组
-
查看用户信息:cat /etc/passwd
-
查看组信息:cat /etc/group
2. 文件目录相关 2.1 cd
切换目录
- 回到家目录:cd ~
- 回到上一级目录:cd ..
2.2 mkdir
创建(一级)目录
创建多级目录:mkdir -p /home/tom/hello, -p, --parents no error if existing, make parent directories as needed
2.3 rmdir
删除目录
递归删除目录:rmdir -p [目标目录],-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
2.4 touch
创建空文件:touch test.txt
2.5 cp
-
基本语法:cp [选项] source dest
-
常用选项:-r 递归复制整个文件夹
-
案例1:将 /home/hello.txt 文件拷贝到 /home/bbb 目录下
cp /home/hello.txt /home/bbb
-
案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录拷贝到 /opt
cp -r /home/bbb /opt/
-
案例3:强制覆盖不提示:
cp -r /home/bbb /opt
2.6 rm
-
基本语法:rm [选项] [待移除文件或目录]
-
常用选项:
- -r:递归删除整个文件夹
- -f:强制删除不提示
-
案例1:将 home/hello.txt 文件删除
rm /home/hello.txt
-
案例2:递归删除整个文件夹 /home/bbb
rm -rf /home/bbb
2.7 mv
移动(重命名)文件
- 基本语法:rm [原地址] [新地址]
如果在同一个目录下,是重命名文件;如果不在同一个目录,则是移动文件。
2.8 cat
查看文件内容
- 基本语法:cat [选项] [要查看的文件]
- 常用参数:-n 显示行号
less 动态加载,对于显示大型文件有较高的效率。
echo 输出内容到控制台
- 基本语法:echo [选项] [输出内容]
2.10 head
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
- 基本语法:
- head [文件] (默认显示前 10 行)
- head -n 5 [文件] (查看文件前 5 行)
tail 用于输出文件尾部的内容,默认情况下下显示文件的最后 10 行
- 基本语法:
- tail 文件 (查看文件的尾 10 行的内容)
- tail -n 5 文件 (查看文件的尾部 5 行的内容)
- tail -f 文件 (实时追踪文件的更新)
> 输出重定向 >> 追加2.13 ln
ln 可以给文件/目录创建软连接,类似于 Windows 里的快捷方式
- 基本语法:ln -s [原文件/目录] [连接名]
- 案例1:在 /home 目录下创建软连接 myroot,连接到 /root 目录
ln -s /root /home/myroot
- 案例2:删除软连接 myroot
rm /home/myroot
find 指令将从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端。
-
基本语法:find [搜索范围] [选项]
-
选项说明
- -name:按照文件名查找文件,可以模糊匹配
- -user:查找属于指定用户的所有文件
- -size:按照指定大小查找文件
-
案例1:找 /opt 目录下的 hello.txt 文件:
find /home -name heelo.txt
-
案例2:查找 /opt 目录下,用户名未 nobody 的文件:
find /opt -user nobody
-
案例3:查找整个 linux 系统下大于 200M 的文件(单位还有 k, M, G):
find / -size +200M # 大于 200M find / -size 200M # 等于 200M find / -size -200M # 小于 200 M
3.2 locate
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中的所有文件名及路径的 locate 数据库实现快速定位给定文件的路径。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
- 基本语法:locate [待搜索的文件]
- 特别说明:由于 locate 指令给予数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:updatedb
3.3 which
which 指令可以查找某个指令在哪个目录下
- 查询 ls 指令在哪个目录下:which ls
grep 过滤查找
- 基本语法:grep [选项] 查找内容 源文件
- 常用选项:
- -n:显示匹配及行号
- -i:忽略字母大小写
- 案例:请在 a.txt 文件中查找 “hello” 所在行,并且显示行号
1. 第一种写法: cat /home/a.txt | grep -n "hello" 2. 第二种写法: grep -n "hello" a.txt4. 压缩和解压 4.1 gzip / gunzip
gzip 用于压缩文件,gunzip 用于解压文件
- 基本语法:gzip 文件(只能将文件压缩为 *.gz 文件)
- 基本语法:gunzip 文件.gz
4.2 zip / unzip
zip 用于压缩文件(文件夹),unzip 用于解压,这两个命令在打包发布中很有用
-
基本语法:
- zip [选项] XXX.zip [文件/文件夹],选项 -r 递归压缩
- unzip [选项] XXX.zip,选项 -d 指定解压后文件存放路径
-
案例1:将 /home 下的所有文件/文件夹压缩成 myhome.zip:zip -r myhome.zip /home/*
-
案例2:将 myhome.zip 解压到 /opt/tmp 路径:unzip -d /opt/tmp/ myhome.zip 如果 tmp 文件夹不存在,则会自动创建
4.3 tar
tar 既可以打包压缩也可以进行解压
-
基本语法:tar [选项] XXX.tar.gz [待压缩的内容]
-
选项说明:
- -c:生成 .tar 打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z:打包同时压缩
- -x:解包 .tar 文件
-
案例1:压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz:tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
-
案例2:将 /home 的文件夹压缩成 myhome.tar.gz:tar -zcvf myhome.tar.gz /home/*
-
案例3:将 pc.tar.gz 解压到当前目录:tar -zxvf pc.tar.gz
-
案例4: 将 myhome.tar.gz 解压到 /opt/tmp2 目录下:tar -zxvf /home/myhome.tar.gz -C /opt/tmp2 -C 不要忘记
一般文件是谁创建的,文件的所有者就是谁。
- 查看文件所有者:ls -ahl
- 修改文件/目录所有者:chown 新用户名 文件/目录
- 修改文件/目录所有者和所在组:chown 新用户名:新组名 文件/目录
- -R 可以递归修改目录下的所有子文件或子目录
- 案例1:使用 root 创建一个文件 apple.txt,然后将其所有者修改为 tom
su root # 切换用户 touch apple.txt # 创建 apple.txt chown apple.txt tom # 更换文件所有者
- 案例2:将 /home/kkk 目录下的所有文件和目录的所有者修改成 tom
chown -R tom /home/kkk
-
创建一个组,monster
groupadd monster
-
创建一个用户 fox ,并将 fox 添加到 monster 组内
useradd -g monster fox
-
修改文件 / 目录所属组:chgrp 新组名 文件/目录
-
使用 root 创建 orange.txt 文件,查看这个文件的归属组,然后修改到 fruit 组
su root # 切换到 root 用户 touch orange.txt # 创建 orange.txt 文件 ll # 查看文件所在组 groupadd fruit # 新增 fruit 组 chgrp fruit orange.txt # 修改文件所在组
-
递归修改所属组:chgrp -R 新组名 文件/目录
除了文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
5.4 改变用户所在组-
改变用户所在组:usermod -g 新组名 用户名
-
案例1 :将 zwj 用户更改到 wudang 组
usermod -g wudang zwj # 修改 id zwj # 查看
-
第 0 位确定文件类型(d, -, l, c, b)
l 是链接,相当于 Windows 的快捷方式
d 是目录,相当于 Windows 的文件夹
c 是字符设备文件,鼠标、键盘等
b 是块设备,比如硬盘
‘-’ 是文件 -
第 1-3 位是所有者(该文件的所有者)拥有该文件的权限
-
第 4-6 位确定所属组(同用户组的)拥有该文件的权限
-
第 7-9 位是其它用户拥有该文件的权限
-
其它说明
1 如果是文件,则代表硬连接数;如果是目录,则表示子目录数 admin 文件所有者 admin 文件所在组 4096 文件大小 Apr 19 11:16 最后修改日期 admin 文件名/目录名
rwx 权限详解
5.6 修改权限 chmod 5.6.1 + - = 变更权限rwx 作用到文件
- [r] 代表可读:可以读取、查看
- [w] 代表可写:可以修改,但是不代表可以删除,能删除一个文件的前提是拥有该文件所在目录的写权限
- [x]代表可执行:文件可以被运行,前提该文件是可执行文件
rwx 作用到目录
- [r] 代表可读:可以读取,可以利用 ls 命令查看目录
- [w] 代表可写:可以修改,可以在目录内创建 +删除 + 重命名
- [x]代表可执行:可以进入该目录 cd 进来
u:所有者
g:所有组
o:其它人
a:所有人(u、g、o 的总和)
-
chmod u=rwx,g=rx,o=x 文件/目录名 逗号 , 不能忘记!!!
-
chmod o+w 文件/目录名
-
chmod a-x 文件/目录名
-
案例1:给 abc 文件的所有者读写执行的权限,所在组执行权限,给其它组读执行权限
chmod u+rwx,g+rx,o+x abc
-
案例2:给 abc 文件的所有者除去执行的权限,增加所属组写的权限
chmod u-x,g+w abc
-
案例3:给 abc 文件的所有用户增加读的权限
chmod a+r abc
r = 4
w = 2
x = 1
-
chmod 751 文件/目录名
-
案例1:将 /home/abc.txt 文件的权限修改为 rwxr-xr-x,使用数字的方式实现:
chmod 755 /home/abc.txt



