Linux 目录结构
Linux 的目录结构为树状结构,最顶级的目录为根目录 /
。
其他目录通过挂载可以将它们添加到书中,通过解除挂载可以移除他们。
绝对路径与相对路径
绝对路径 | 相对路径 |
---|---|
由根目录 / 写起,例如:/usr/share/doc 这个目录。 | 不是由 / 写起,例如由 /usr/share/doc 要到/usr/share/man 底下时,可以写成:cd ../man 这就是相对路径的写法。 |
查看目录
Linux 系统当中, ls
命令可能是最常被运行的。
命令 | 说明 |
---|---|
ls | 查看当前路径下的文件名称 |
ls -a | 全部的文件,连同隐藏文件(开头为 . 的文件) 一起列出来(常用) |
ls -d | 仅列出目录本身,而不是列出目录内的文件数据(常用) |
ls -l | 长数据串列出,包含文件的属性与权限等等数据;(常用) |
ll | 等于 ls -l |
ls -al | 目录下的所有文件列出来(含属性与隐藏档) |
切换目录
cd
是 Change Directory
的缩写,这是用来变换工作目录的命令。
cd \[相对路径或绝对路径\]
cd \[相对路径或绝对路径\]
显示当前目录
pwd
是 Print Working Directory
的缩写,也就是显示目前所在目录的命令。
创建目录
mkdir(make directory)
用来创建新的目录。
mkdir \[-mp\] 目录名称
mkdir \[-mp\] 目录名称
命令 | 说明 |
---|---|
\-m | 配置文件的权限,直接配置,不需要看默认权限的脸色 |
\-p | 直接将所需要的目录(包含上一级目录) 递归创建起来! |
mkdir --help | 查看帮助 |
删除目录
rmdir
用来删除空的目录命令。
rmdir \[-p\] 目录名称
rmdir \[-p\] 目录名称
命令 | 说明 |
---|---|
\-p | 连同上一级 \[空的\] 目录也一起删除 |
文件操作
查看文件内容
命令 | 说明 |
---|---|
cat | 由第一行开始显示文件内容 |
more | 一页一页的显示文件内容 |
more 空格键(space) | 代表向下翻一页 |
more Enter | 代表向下翻【一行】 |
more f | 立刻显示出档名以及目前显示的行数 |
more q | 代表立刻离开 more , 不再显示该文件内容。 |
less | 一页一页翻动 |
less 空格键(space) | 向下翻动一页 |
less pagedowm | 向下翻动一页 |
less pageup | 向上翻动一页 |
less q | 离开 less 这个程序 |
创建文件
语法:touch
创建一个空白的普通文件
写入内容
echo
把内容重定向到指定的文件中,有则打开,无则创建
命令 | 说明 |
---|---|
echo '内容'>文件名称 | 覆盖模式 |
echo '内容'>>文件名称 | 追加模式 |
复制/拷贝文件
cp \[-adfilprsu\] 来源档(source) 目标档(destination)
cp \[-adfilprsu\] 来源档(source) 目标档(destination)
命令 | 说明 |
---|---|
-a | 相当于 -pdr 的意思 |
-d | 若来源档为连接档的属性link file ,则复制连接档属性而非文件本身; |
-f | 为强制force 的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; |
-i | 若 clear 动作的进行 |
-l | 进行硬式连结hard link 的连结档创建,而非复制文件本身; |
-p | 连同文件的属性一起复制过去,而非使用默认属性备份常用 |
-r | 递归持续复制,用于目录的复制行为:常用 |
-s | 复制成为符号连接档symbolic link ,亦即捷径 文件; |
-u | 若 destination 比 source 旧才升级 destination |
移动文件
mv
可以移动文件与目录,或修改名称。
mv \[-fiu\] source destination
mv \[-fiu\] source destination
命令 | 说明 |
---|---|
-f | force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; |
-i | 若目标文件destination 已经存在时,就会询问是否覆盖; |
-u | 若目标文件已经存在,且 source 比较新,才会升级 update |
删除文件
rm
可以移除文件或目录
rm \[-fir\] 文件或目录
rm \[-fir\] 文件或目录
命令 | 说明 |
---|---|
-f | 就是 force 的意思,忽略不存在的文件,不会出现警告信息。 |
-i | 互动模式,在删除前会询问使用者是否动作 |
-r | 递归删除,最常用在目录的删除,此操作危险 |
打包与拆包
一般 Linux 上常用的压缩方式是选用 tar
将许多文件打包成一个文件,再以 gzip
压缩命令压缩成 xxx.tat.gz(或者 xxx.tgz)
的文件。
tar -cvf xxx.tar #打包
tar -zcvf xxx.tar.gz #打包并且压缩
tar -xvf xx.tar #拆包
tar -zxvf xx.tar.gz -C /usr/my #拆包解压 注意 -C 大写,防止路径找不到
tar -cvf xxx.tar #打包
tar -zcvf xxx.tar.gz #打包并且压缩
tar -xvf xx.tar #拆包
tar -zxvf xx.tar.gz -C /usr/my #拆包解压 注意 -C 大写,防止路径找不到
参数 | 说明 |
---|---|
-c | 创建一个新 tar 文件 |
-v | 显示运行过程的信息 |
-f | 指定文件名 |
-z | 调用 gzip 压缩命令进行压缩 |
-t | 查看压缩文件的内容 |
-x | 解开 tar 文件 |
查看进程快照
ps
:-aux
显示当前进程的快照
查看 Java
进程:ps -aux | grep java
查看 MySQL
进程:ps -aux | grep mysql
管道
管道是 Linux 中比较重要且常用的一个内容,其作用是将一个命令的输出作为另一个命令的输入,组合使用。
ls --help | more
:分页查看帮助信息,按 q
退出
VIM 编辑器
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode) 和底线命令模式(Last line mode)
命令模式
用户刚刚启动 vi/vim
,便进入了命令模式。
此状态下敲击键盘动作会被 vim
识别为命令,而非输入字符。比如我们此时按下 i
,并不会输入一个字符,i
被当作了一个命令。
以下是常用的几个命令:
参数 | 说明 |
---|---|
i | 切换到输入模式,以输入字符。 |
x | 删除当前光标所在处的字符。 |
: | 切换到底线命令模式,以在最低一行输入命令。 |
若想要编辑文本:启动 vim
,进入了命令模式,按下 i
,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下 i
就进入了输入模式。在输入模式中,可以使用以下按键:
参数 | 说明 |
---|---|
字符按键以及 Shift 组合 | 输入字符 |
ENTER | 换行 |
BACK SPACE | 删除光标前一个字符 |
DEL | 删除光标后一个字符 |
方向键 | 在文本中移动光标 |
HOME/END | 移动光标到行首/行尾 |
Page Up/Page Down | 上/下翻页 |
Insert | 切换光标为输入/替换模式,光标将变成竖线/下划线 |
ESC | 退出输入模式,切换到命令模式 |
底线命令模式
在命令模式下按下:(英文冒号)
就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。按 ESC
键可随时退出底线命令模式。
参数 | 说明 |
---|---|
:w | 保存文件 |
:w! | 若文件属性为只读 时,强制写入该档案 |
:q | 离开 vi |
:q! | 使用! 为强制离开不存储档案 |
:wq | 存储后离开 |
:wq! | 强制存储后离开 |
:set number | 显示行号 |
:set nonumber | 取消行号显示 |
Linux 的文件权限
Linux 操作系统中对权限的管理很严格。Linux 系统中不仅是对用户与组根据 UID,GID 进行了管理,还对 Linux 系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式和目录进行访问和操作。
权限共有 10 个字符,我们将它分为 4 大部分来理解:
表示文件的类型
参数 | 类型 |
---|---|
- | 表示是一个文件 |
d | 表示是一个目录 |
l | 表示是一个连接(理解为快捷方式) |
用户组类型
缩写 | 用户组 | 类型 |
---|---|---|
u | owner | 属主 :当前用户具有的对该文件的权限 |
g | group | 当前组内其他用户具有对该文件的权限 |
o | other | 其他组的用户具有的对该文件的权限 |
权限
r
:Read
读w
:Write
写x
:execute
执行
针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
针对文件和目录来说,r,w,x
有着不同的作用和含义
针对文件 | 针对目录 | |
---|---|---|
r | 读取文件内容 | 查看目录下的文件列表 |
w | 修改文件内容 | 删除和创建目录下的文件 |
x | 执行权限对除二进制程序以外的文件没什么意义 | 可以 cd 进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限) |
提示
root 账户不受文件权限的读写限制,执行权限受限制
权限项 | 文件类型 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 |
字符表示 | (d|l|c|s|p) | (r) | (w) | (x) | (r) | (w) | (x) | (r) | (w) |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | |
权限分配 | 文件所有者 | 文件所属组用户 | 其他用户 |
用户获取文件权限的顺序:先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
修改文件权限
chown
是 change owner
的意思,主要作用就是改变文件或者目录所有者。
参数 | 说明 |
---|---|
chmod | 修改文件和文件夹读写执行属性。使用权限:所有使用者 |
chown | 修改文件和文件夹的用户和用户组属性。使用权限:root |
mode 方式
chmod who opt per file
chmod who opt per file
参数 | 说明 |
---|---|
who | u g o a(all) (u 用户 user ,g 用户组 group ,o 其他用户 ,a 所有用户默认 ) |
opt | + 添加某个权限 - 取消某个权限 = 赋予权限 |
per | r w x X |
示例:
chmod u=rwx,g=r a.txt
chmod u+x,g+w,o+w test.log #r 读,w 写, x 执行
chmod u=rwx,g=r a.txt
chmod u+x,g+w,o+w test.log #r 读,w 写, x 执行
数字方式
语法:chmod xxx file
参数 | 参数 | 参数 |
---|---|---|
rwx | 421 | 7 |
rw- | 420 | 6 |
r-- | 400 | 4 |
0
表示无权限,1
表示可执行x
,2
表示写入权限w
,4
表示可读权限r
例如:
-rwxr--r-- 1 root root 10 oct 16 02:55 yhp.log
-rwxr--r-- 1 root root 10 oct 16 02:55 yhp.log
权限 | 参数 | 参数 | 参数 |
---|---|---|---|
用户权限 | rwx | 4+2+1 | 7 |
所属组权限 | r-- | 4+0+0 | 4 |
其他用户权限 | r-- | 4+0+0 | 4 |
组合:744
修改权限:
- 都加入写入权限 +2
- 给用户组加入写入权限:+2
- 给其他用户加入可执行权限:+1
组合:765
chmod 765 a.txt
chmod 765 a.txt
Linux 常用网络操作
主机名操作
hostname
:显示主机名hostname XXX
:修改主机名,不推荐,临时生效
永久生效修改主机名需要修改 /etc/sysconfig/network
文件
查询系统完整信息
uname -a #显示完整的系统信息
uname -a #显示完整的系统信息
IP 地址操作
ip addr # 查看 IP 地址
vim /etc/sysconfig/network-scripts/ # 修改 IP 地址
service network restart # 重启网络服务
ip addr # 查看 IP 地址
vim /etc/sysconfig/network-scripts/ # 修改 IP 地址
service network restart # 重启网络服务
域名映射
vim /etc/hosts
vim /etc/hosts
网络服务管理
systemctl stauts network # 查看网络服务状态
systemctl start network # 启动网络服务
systemctl stop network # 停止网络服务
systemctl restart network # 重启网络服务
systemctl enable network # 设置开启启动
systemctl stauts network # 查看网络服务状态
systemctl start network # 启动网络服务
systemctl stop network # 停止网络服务
systemctl restart network # 重启网络服务
systemctl enable network # 设置开启启动
9.6、防火墙设置
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #启动防火墙
systemctl stop firewalld #关闭防火墙
systemctl is-enable firewalld #查看防火墙服务是否开机启动
systemctl enable firewalld #开机时启用防火墙服务
systemctl disable firewalld #开机时禁用防火墙服务
systemctl list-unit-files|grep enabled #查询已经启动的服务列表
systemctl --failed #查询启动失败的服务列表
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #启动防火墙
systemctl stop firewalld #关闭防火墙
systemctl is-enable firewalld #查看防火墙服务是否开机启动
systemctl enable firewalld #开机时启用防火墙服务
systemctl disable firewalld #开机时禁用防火墙服务
systemctl list-unit-files|grep enabled #查询已经启动的服务列表
systemctl --failed #查询启动失败的服务列表