目录
一、Linux 目录结构
目录 | 作用 |
---|---|
/root | 管理员用户root的宿主(家)目录 |
/home | 普通用户的宿主(家)目录 |
/boot | 存放系统内核、启动文件 |
/dev | 存放设备文件(硬盘、光盘等) |
/etc | 存放配置文件 |
/bin | 存放所有用户可执行的命令文件 |
/sbin | 存放管理员可执行的命令文件 |
/usr | 存放系统用户工具和应用程序 |
/var | 存放可变化的文件、日志等文件 |
/lib | 存放系统程序的的动态链接共享库文件(依赖等) |
/media | 存放可卸载的的媒介挂载点(u盘、光驱等) |
/proc | 存放映射系统信息的文件 |
/mnt | 存放临时挂载储存设备 |
/opt | 第三方应用程序安装的目录 |
/tmp | 存放系统临时文件 |
二、目录操作命令
cd、pwd、ls、mkdir、rmdir、du
cd | 切换到另一个目录 |
pwd | 打印当前所在目录 |
ls | 列出目录内容 常用选项:
|
mkdir | 创建目录,使用 -p 选项可以级联创建目录 |
rmdir | 删除空目录,必须是空目录,否则用rm -rf filename删除 |
du | 统计目录下每个文件字节数 常用选项
|
具体说明:
以 drwxr-xr-x. 2 root root 31 2月 21 2024 conf 为例
- 第一部分
代表文件类型:
“-” | 普通文件 |
“d” | 目录 |
“l” | 链接文件(符号链接;小写的L)或软链接 |
“c” | 字符设备文件 |
“b” | 块设备文件 |
“s” | 套接字文件 |
“p” | 命名管道文件 |
- 第二部分
后9位每3位为一组代表相关用户、组、其他用户的读,写,执行权限
- 第三部分
如果文件是普通文件:硬链接的个数(访问该文件的路径数)
如果文件是目录:目录下的一级子目录的个数
- 第四部分
文件的属主(文件所属的用户名)
- 第五部分
文件的属组(文件所属的用户组名)
- 第六部分
文件的字节数(大小)
- 第七部分
文件最近一次的修改日期
- 第八部分
文件名称
三、Linux绝对路径和相对路径
绝对路径:以根目录“/”开始的路径,表示从Linux目录结构的最顶点算起,特点是路径以“/”开头
相对路径:不以根目录“/”开始的路径,以当前目录作为起始点,特点是不以“/”开头
每个目录下都有”.”和”..”2个目录:
一个点“ . ”代表当前目录,写全了“ ./ ”
二个点“ .. ”代表上一级目录,写全了“ ../ ”
四、文件操作命令
which、touch、cp、mv、rm、file
which | 命令字在磁盘的什么位置 例如: |
touch | 创建一个空文件,如果文件已经存在修改文件的修改日期 例如: touch /root/aaa /root/bbb /root/ccc |
cp |
例如:复制 /root/install.log 文件到 /tmp cp /root/install.log /tmp 例如:复制 /root/install.log 文件到 /tmp并改名为 abc.log cp /root/install.log /tmp/abc.log
例如:复制整个 /root 目录到 /tmp cp -R /root /tmp 例如:复制整个 /root 目录到 /tmp并改名为 abc cp -R /root /tmp/abc |
mv |
例如:移动 /root/install.log.bak 文件到 /tmp mv /root/install.log.bak /tmp
例如:给/tmp下的root目录改名为root1 mv /tmp/root /tmp/root1 |
rm |
例如:删除/root/install.log.bak rm /root/install.log.bak
例如:给/tmp下的root1目录 rm -rf /tmp/root1 常用选项: -r 级联删除目录下的所有文件 -f 不提示(不用用户键入'y'或'n'进行确认) |
file | 查看文件的类型 |
五、查看登录用户命名
who、w
who | 当前用户登录的信息 |
w | 当前用户登录的信息,以什么程序登录的 |

六、文件内容【查看】命令
cat、tac、more、less、tail、head
cat | 查看文本文件内容,将文本文件内容全部打印到标准输出 选项 -n 输出结果带行号 |
tac | 查看文本文件内容,倒序输出 倒序打印文本文件的内容 |
more | 分页显示文件内容,默认显示进度百分比 空格往下翻页,b往上翻页,f往下翻页,q退出 |
less | 分页显示文件内容,例如:less /root/install.log 选项 -m 显示进度百分比 可以用“/”后跟关键字搜索文件内容 空格往下翻页,b往上翻页,f往下翻页,q退出 |
tail | 查看文件尾部10行,例如:tail /root/install.log 选项-n (n为正整数)可以指定显示末尾N行内容 |
head | 查看文件头部10行,例如:head /root/install.log 选项-n (n为正整数)可以指定显示头部N行内容 |
七、系统管理类命令
shutdown、reboot、lscpu
shutdown | 关机命令
|
reboot | 重启系统 |
lscpu | 查看系统cpu信息 |
八、日期时间管理类命令
date、clock
date | 打印操作系统时钟 date -s 20190101 按照指定日期重新设定日期和时间 |
clock | 打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟) clock -s 按照硬件时钟设置操作系统时钟 clock -w按照操作系统时钟设置硬件时钟 |
九、bash通配符介绍
* | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
[] | 匹配指定字符范围内的任意单个字符,简化写法[a-z]不区分大小写 |
[[:upper:]] | 大写字母 |
[[:lower:]] | 小写字母 |
[[:alpha:]] | 大小写所有字母 |
[[:digit:]] | 匹配数字,可以写成[0-9] |
[[:alnum:]] | 字母+数字 |
[[:space:]] | 空格 |
[[:punct:]] | 标点符号 特殊字符 |
[^] | 匹配指定字符范围外的任意单个字符 |
1、列出a开头的所有文件
ls a*
2、列出a开头一共3个字母的文件
ls a??
3、列出三个大写字母文件名的文件
ls [[:upper:]][[:upper:]][[:upper:]]
4、列出一个字母后跟三个数字的文件
ls [a-z][0-9][0-9][0-9]
5、列出不以a字母开头后跟三个数字的文件
ls [^a][0-9][0-9][0-9]
拓展:Bash中的组合键
键或组合键 | 功能 |
Ctrl+A | 将光标移动到命令行开头 |
Ctrl+C | 结束正在运行的程序并返回提示符 |
Ctrl+D | 退出当前shell会话,相当于键入exit或logout |
Ctrl+E | 将光标移动到命令行末尾 |
Ctrl+H | 向前删除 |
Ctrl+L | 清空当前屏 |
Ctrl+R | 查询命令历史记录 |
Ctrl+Z | 暂停一个程序 |
十、用户和权限管理
Linux是多用户操作系统,通过用户、用户组和权限实现用户认证和系统资源的分配
1、用户组
(1)存放文件:/etc/group
文件中一个组一行记录
一个用户可以属于多个用户组
一个用户组可以包含多个用户
(2)组文件格式,共4个字段
第一字段:组名
第二字段:组密码位
第三字段:gid 组编号
第四字段:以本组作为附加组的用户名,用逗号分隔
- 新建用户组 groupadd 组名
例如:
groupadd g1
cat /etc/group
- 删除用户组 groupdel 组名
例如:
groupdel g1
cat /etc/group
2、用户
(1)存放文件:/etc/passwd
文件中一个用户一行记录
(2)用户文件格式,共7个字段
第一字段:用户名
第二字段:用户密码位
第三字段:uid 用户编号
第四字段:gid 主组编号
第五字段:用户备注信息
第六字段:家目录位置
第七字段:用户使用shell解释器的位置,若为/sbin/nologin,用户不能登录
例如: linux1:x:1000:1000:linux1:/home/linux1:/bin/bash
3、用户类型
(1)超级用户root 权限特别大
uid=0,gid=0 生产环境建议不要使用
(2)普通用户
uid>=500 一般权限系统管理,权限有限
(3)程序用户
1<=uid<500 仅仅使用系统服务资源,不能登录系统
(4)判定程序用户能否登录到操作系统
不能登录:shell为/sbin/nologin
可以登录:shell为/bin/bash
4、添加用户 useradd
useradd [-u UID] [-g GID] [-d HOME] [-s] [-c] 用户名
-u 自定义UID用户编号,不指定系统自动编号
-g 自定义主组GID组编号或组名,前提是这个组已经存在,若不指定主组系统会创建一个和用户名一样的组作为用户主组
-G 自定义附加组GID组编号或组名,用逗号隔开,前提是这些组已经存在
-d 指定家目录,若不指定默认为/home/用户名
-s 自定义shell,若不指定默认为/bin/bash
-c 用户备注信息,若不指定默认为空
示例:创建wang用户主组为g1,附加组为zhang和root
useradd -u 600 -g g1 -G zhang,root wang
cat /etc/passwd
cat /etc/group
5、查看用户信息 id 用户名
(1)查看当前登录用户信息:id
(2)查看指定用户信息:id zhang、id wang
6、修改用户 usermod
usermod [-u UID] [-g GID] [-d HOME] [-s] [-l] 用户名
-l 选项修改用户名
示例:把用户名wang改为wang1, 再把wang1改成wang
7、删除用户 userdel [-r] 用户名
-r选项,在删除用户的同时删除其家目录和相关系统邮件
8、切换用户 su - 用户名
可以添加选项 “-”,会执行要切换用户的相关环境变量
9、给用户设置登录密码 passwd [用户名]
修改当前用户登录密码 passwd (如果普通用户设置密码需要较高密码复杂度)
修改指定用户登录密码 passwd zhang (root用户操作)
10、密码文件
/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了/etc/shadow文件中。
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
存放位置 /etc/shadow 每一行对应一个用户的密码信息,共9字段
字段说明:
root:$6$ktBL/HO4k8qN9yzK$aOokjpdjFY8hm53P90OPXddo2rtbZ3q5FLy/cXKljv.6OiG0anhIXKKCwafp83mni.oc/bHO9iXdD1JMx3lDf/::0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
11、权限
(1)权限类别
权限分为三种,分别是读、写、执行; r (read)、w (write) 、x (execute)
(2)权限作用对象:文件 (Linux一切皆文件)
(3)显示文件的权限:ls -l 或 ll (redhat系列发行版linux,默认为ls -l创建了别名ll)
(4)用户的不拥有某位权限,则使用 “ - ” 占位
例如:r-x 表示读和执行的权限;r--表示只读权限;rw-表示读写权限
(5)Linux使用UGO权限模型进行权限控制
U 代表文件所属用户
G 代表文件所属用户组
O 代表所属用户和所属用户组的用户之外的其他用户
(6)ls -l 文件属性信息第一字段后9位代表权限
9位权限3位1组可以分成3组,分别对应文件的UGO
例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile
文件的所属用户是wang(U),其权限是rw-
文件的所属用户组是g1(G),其权限是rw-
文件的属主wang和g1组的用户以外的其他用户(O),其权限是r--
(7)规定 4 代表 r ;2 代表 w ;1 代表 x;0 代表 -
这样不同的权限组合可以用1个8进制0到7的数字来表示
文件对应UGO的权限可以用3个数字来表示
例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile
其权限为: 6 6 4
(8)修改权限使用chmod命令字
提供作用相同的三种方式
1.赋值法:
chmod u=rwx,g=rw,o= filename
chmod a=rwx filename
2.加减法:
chmod u+r,u-x,g+w,g-x,o+r filename
chmod a+x filename
3.权重法:
chmod 755 filename
chmod 664 filename
chmod 777 filename
chmod 000 filename
(9)可以使用-R选项级联修改目录下的所有文件的权限
例如:修改 /u01 下所有目录及文件的权限为750
chmod -R 750 /u01
(10)修改文件的属主和属组使用chown命令字
只能root用户来做
chown [-R] UserName[{:|.}GroupName] FILENAME
选项-R级联修改目录下的所有文件的属主和属组
例如:修改 /root/install.log 的属主为 zhang ,属组为 g1
chown zhang:g1 /root/install.log
例如:仅修改 /root/install.log 的属主为root,属组不变
chown root: /root/install.log
(11)权限对于目录和非目录文件有所区别
创建目录默认权限为755,普通文件为644
目录至少要有 r 和 x 权限才能正常进入目录
十一、压缩与解压缩命令
1、压缩与解压缩命令 zip unzip
(1)zip 压缩文件或目录
-r 压缩目录
-y 把软链接作为文件压缩,但不压缩软链接所指向的文件
示例:压缩/etc下的所有文件到/tmp下的etc.zip文件中
zip -ry /tmp/etc.zip /etc
(2)unzip解压缩zip压缩的文件
-d 指定解压缩的路径
示例:解压缩/tmp下etc.zip到/root
unzip -d /root /tmp/etc.zip
2、压缩与解压缩命令 gzip gunzip
(1)gzip 压缩文件或目录
-N N为数字1到9,为压缩率,9最高,默认6
-r 压缩目录
默认压缩之后不会保留源文件,源文件变为*.gz格式
示例:压缩/root/install.log文件
gzip /root/install.log
ls /root/install.log*
(2)gunzip解压缩gzip压缩的文件
示例:解压缩/root下install.log.gz
gunzip /root /install.log.gz
3、压缩与解压缩命令 bzip2 bunzip2
(1)bzip2 压缩文件(压缩率比gzip高)
-N N为数字1到9,为压缩率,9最高,默认6
默认压缩之后不会保留源文件,源文件变为*.bz2格式
示例:压缩/root/install.log文件
bzip2 /root/install.log
ls /root/install.log*
(2)bunzip2解压缩bzip2压缩的文件
示例:解压缩/root下install.log.bz2
bunzip2 /root /install.log.bz2
4、归档命令 tar
tar将多个离散文件或目录进行打包为一个普通文件
1.归档
tar 选项 归档文件名 源文件名或目录
2.释放归档
tar 选项 归档文件名 -C 目标目录
3.常用选项
-f 如果使用tar命令,必须要用-f选项,而且要放到最后面
-c 创建新归档
-x 释放归档 extract
-z 使用gzip的方式进行压缩或解压缩
-j 使用bzip2的方式进行压缩或解压缩
-v 归档进度可视化 (verbose)
示例1:将/etc整个目录归档为/tmp/etc.tar文件
tar -cvf /tmp/etc.tar /etc
示例2:将/etc整个目录归档为/tmp/etc.tar.gz文件,用gzip压缩文件
tar -zcvf /tmp/etc.tar.gz /etc
示例3:将/etc整个目录归档为/tmp/etc.tar.bz2文件,用bzip2压缩文件
tar -jcvf /tmp/etc.tar.bz2 /etc
示例4:将归档文件/tmp/etc.tar还原到/root目录下
tar -xvf /tmp/etc.tar -C /root
示例5:将归档文件/tmp/etc.tar.gz还原到/root目录下
tar -zxvf /tmp/etc.tar.gz -C /root
示例6:将归档文件/tmp/etc.tar.bz2还原到/root目录下
tar -jxvf /tmp/etc.tar.bz2 -C /root
十二、链接、网络连接命令
1、链接命令 ln
ln命令用来给文件或目录创建链接文件,类似于windows系统的快捷方式
常用选项
-s 创建软链接
-v 可视化
示例:在/root下为目录/var创建软链接link_var
ln -sv /var /root/link_var
2、测试网络连通性命令 ping
ping命令可以用来测试网络的连通性
常用选项
-c 次数
-w 等待秒数,优先级高于-c
示例:测试百度网址的连通性,发生4个ping包
ping -c 4 www.baidu.com
示例:测试百度网址的连通性,发生4个ping包,2秒后停止ping
ping -c 4 -w 2 www.baidu.com
十三、vi 编辑器 (最常用)
(1)vi三种模式
1.一般模式(normal mode),默认即为一般模式。
2.插入模式(insert mode)。
3.末行模式(last line mode)。
(2)三种模式的切换:
1.一般模式-->插入模式
i:当前光标处输入内容。
I:在当前光标所在行的行首。
a:在当前光标所在处的后面。
A: 在当前光标所在行的行尾输入。
o:在光标所在行的下方新增一行空白行。
O:在光标所在行的上方新增一行空白行。
2.插入模式-->一般模式
使用:ESC键
3.一般模式-->末行模式
使用:“:”(英文状态下)
4.末行模式-->一般模式
使用:ESC键
(3)退出编辑器
末行模式下,输入下述内容可退出:
1. q!:强制退出