| List | SubDirectory | Description | Notes |
|---|---|---|---|
| Linux 文件系统 | 关于Linux目录的各种说明 | ||
| Linux 命令 | 关于Linux下的各种命令 | ||
| - 文件处理 - 权限管理 ---- 权限属性、 权限用户、 权限组 - 文件搜索 ---- 文件路径搜索、 文件内容搜索 |
|||
| - 帮助命令 - 压缩与解压缩 - 网络命令 - 关机重启 - Vim 编辑器 |
|||
| 软件包 | |||
| - 概念 - RPM-rpm命令 - RPM-yum命令 |
|||
| 用户和组管理 | |||
| - 用户文件 ---- 用户配置文件 、 用户管理相关文件 |
|||
| - 用户管理命令 ---- 添加用户 、用户密码管理、 修改用户信息 ---- 删除用户、 切换用户身份、 用户组管理 |
|||
| 权限管理 sudo | - 概念 - 命令 |
- / # 根目录
- /boot # 存放用于系统引导(启动)时使用的各种文件
- /root # 系统管理员目录,系统管理员的主目录
- /home # 用户主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
- /etc # 系统配置文件,存放所有的系统管理所需要的配置文件和子目录
- /bin # 存放二进制可执行文件(ls、cat、mkdir等)
- /sbin # 存放二进制可执行文件,只有root才能访问
- /tmp # 临时文件目录,存放临时文件
- /run # 存放临时文件
- /var # 存放运行时需要改变数据的目录(动态数据)
- /mnt # 临时挂载点目录,各种设备挂载到系统后,会在/mnt目录下生成相应设备的目录,比如挂载光驱、文件系统、CD等。
- /usr # 用户软件目录, 存放用户软件,unix shared resources(共享资源)
- /usr/bin # 存放用户命令
- /usr/sbin # 存放用户管理命令,超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/lib # 存放用户命令需要的共享库
- /usr/share # 存放共享数据
- /usr/local # 存放软件升级后新的功能存放目录
- /dev # 用于存放设备文件
- /proc # 虚拟文件系统,存放系统内存的映射
- /sys # 虚拟文件系统,存放系统内存的映射
- /lib # 存放跟文件系统中的程序运行所需要的共享库及内核模块
# 以下为简单的命令,具体可看 bash
clear # 清空屏幕
ctr + l # 清屏(快捷键)
env # 显示环境变量
df -h # 显示磁盘使用情况
pstree # 显示进程树
pwd # 显示当前工作目录
who # 显示当前登录用户
whoami # 显示当前用户ls -l # 列出文件
ls -lR # 列出所有文件(不要轻易用)
ls -lh # 列出文件,以易读的方式显示文件大小
# 查看到文件权限的时候,第一个字符表示文件权限,后面是文件所有者,后面是文件所属组,后面是文件大小,后面是文件修改时间,后面是文件名
# 文件类型(文件权限的第一个位置):- 普通文件,d 目录,l 链接文件,b 块设备文件,c 字符设备文件
# 文件权限:r 读权限,w 写权限,x 执行权限,- 没有权限
# 文件所有者:u 所有者,g 组,o 其他用户
# 文件所属组:u 所有者,g 组,o 其他用户
ls -la # 列出所有文件,包括隐藏文件
ls -i # 列出文件,包括文件索引mkdir <文件路径> # 创建文件夹
mkdir -p <文件路径> # 递归创建文件夹
rmdir <文件路径> # 删除空白文件夹
rm -r <文件路径> # 删除文件夹cp <文件路径> <目标路径> # 复制文件
cp -r # 复制目录
cp -p # 保留文件属性
cp -a # 复制文件和目录及其属性mv <文件路径> <目标路径> # 移动文件
mv <文件路径> <目标路径/新文件名> # 移动并重命名文件
mv <文件> <新文件名> # 当前文件夹下重命名文件rm -rf <文件路径> # 删除文件
-r # 删除目录
-f # 强制删除 touch <文件路径> # 创建文件cat <文件路径> # 显示文件内容
-n # 显示行号
tac <文件路径> # 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
head -n <行数> <文件路径> # 显示文件内容,默认显示前10行
tail -n <行数> <文件路径> # 显示文件内容,默认显示后10行
-f # 跟踪文件变化,当文件内容发生变化时,自动显示变化内容
more <文件路径> # 查看长文件内容,分页显示文件内容,按空格键查看下一页,按 q 键退出
less <文件路径> # 查看长文件内容,分页显示文件内容(可向上翻页),按空格键查看下一页,按 q 键退出,按 / 键搜索,按 n 键搜索下一个ln <文件路径> <目标路径> # 创建链接文件,硬链接
-s # 创建软链接,软连接类似windows的快捷方式,文件权限是由软连接指向的文件决定
# 硬链接和软链接的区别:
# 1. 硬链接:文件有多个路径,文件大小不变,不能跨分区。软链接:文件只有一个路径,文件大小不变,可以跨分区
# 2. 硬链接:不能对目录创建硬链接。软链接:可以对目录创建软链接
# 3. 硬链接:删除原文件时,文件不变,类似 cp -p 。软链接:删除原文件时,软链接失效
# 查看是软链接还是硬链接:ls -i 查看文件索引,索引相同,则为硬链接,索引不同,则为软链接umask -S # 查看默认权限
umask -S <权限> # 设置默认权限
umask -p # 查看默认权限
umask # 查看默认权限
change mode
chmod <权限> <文件路径> # 修改文件权限
chmod [{u|g|o|a} {+|-|=} {r|w|x}] <文件或者目录路径>
# u: 所有者,g: 组,o: 其他用户,a: 所有用户
# +: 添加权限,-: 删除权限,=: 设置权限
# r: 读权限,w: 写权限,x: 执行权限
# r权限:允许用户查看文件内容,可以列出目录内容
# w权限:允许用户修改文件内容,可以创建、删除文件,修改目录
# x权限:允许用户执行文件,可以进入目录
# 例如:chmod u+x,g+w,o+r file.txt
# 权限的数字表示: r: 4,w: 2,x: 1
# 例如: chmod u=rwx,g=rw,o=x file.txt,chmod 761 file.txt
chmod -R <权限> <文件路径> # 递归修改文件权限change owner
chown <用户名> <文件路径> # 修改文件所有者change group
chgrp <组名> <文件路径> # 修改文件所属组# find 消耗资源大
find <文件路径> <匹配条件>
find <文件路径> -name <文件名> # 搜索文件 *文件名* 模糊搜索
-iname <文件名> # 搜索文件 忽略大小写
-size <文件大小> # 搜索文件 文件大小单位:k,M,G,T,P,E,Z.
-type <文件类型> # 文件类型:f,d,l,c,b
-user <用户名> # 搜索文件所属用户
-group <组名> # 搜索文件所属组
-inum <索引号> # 搜索文件索引号locate <文件名> # 搜索文件 需要先更新locate数据库,如果放在/tmp目录下,一般搜索不到,因为/tmp为临时目录
-i <文件名> # 忽略大小写
updatedb # 更新locate数据库which <命令名> # 搜索命令所在路径
whereis <命令名> # 搜索命令所在路径grep <关键字> <文件路径> # 搜索文件内容
-i # 忽略大小写
-v # 搜索不包含关键字的文件,如忽略注释行:grep -v "^#" file.txtman <命令名 or 配置文件名> # 帮助手册
1 # 命令帮助
5 # 配置文件帮助
whatis <命令名> # 查看命令,让人知道命令是什么。在root账号下,可以搜索到所有命令
apropos <命令名> # 查看配置
<命令名> --help # 查看shell命令帮助
help <内置命令> # 查看内置命令useradd <用户名> # 创建用户
userdel <用户名> # 删除用户
usermod <用户名> # 修改用户
passwd <用户名> # 修改用户密码
who # 查看登录用户信息
w # 查看当前登录用户信息
w <用户名> # 查看当前用户信息gzip <文件名> # 压缩文件,只压缩文件,不压缩目录,
gunzip <文件名> # 解压文件,解压之后,不保留压缩文件
tar -zcvf <压缩文件名: 文件名.tar.gz> <文件名 or 目录名> # 压缩文件
-z # 打包同时压缩
-c # 打包
-v # 显示详细信息
-f # 指定文件名
tar -zxvf <压缩文件名: 文件名.tar.gz> <文件名 or 目录名> # 解压文件
zip <压缩文件名: 文件名.zip> <文件名 or 目录名> # 压缩文件,压缩比80%
-r # 压缩目录
unzip <压缩文件名: 文件名.zip> <文件名 or 目录名> # 解压文件white <用户名>
wall <消息> # 发送消息给所有用户
mail <用户名> <消息> # 发送消息给指定用户,ctr + d 保存信息
ping <ip> # 测试主机是否在线
-c <次数> # 测试次数
ifconfig # 查看网络接口信息
eth0
lo # 本地回环地址
last # 查看登录信息
lastlog # 查看最后一次登录信息
traceroute # 显示数据包到主机间的路径
netstat # 显示网络统计信息
-t # 显示TCP连接
-u # 显示UDP连接
-l # 显示监听
-r # 显示路由表
-n # 显示IP地址和端口号
-a # 显示所有连接和监听 shutdown -h now # 关机
shutdown -r now # 重启
shutdown -h <时间> # 如shutdown -h 10 , 表示10分钟后关机
halt # 关机
poweroff # 关机
reboot # 重启
init 0 # 关机
# 0 表示关机
# 1 表示单用户
# 2 表示不完全多用户
# 3 表示完整多用户模式
# 4 表示未分配
# 5 表示图形界面
# 6 表示重启
init 6 # 重启
logout # 退出当前用户Centos
-
源码包
- 安装速度慢
- 可看到源码
- 性能比二进制包强 5%
-
二进制包(RPM包)
- 安装速度快
- 不可看到源码
- 依赖性高
依赖安装太麻烦
RPM包命令原则:httpd-2.2.15.el6.centos.1.i686.rpm
- httpd 软件包名
- 2.2.15 软件版本
- 15 软件发布次数
- el6.centos 适合的Linux平台
- 1.i686 适合的硬件平台
- rpm 扩展名
rpm -ivh <软件包> # 安装软件包
rpm -e <软件包> # 卸载软件包
rpm -q <软件包> # 查询软件包是否安装
rpm -qa # 查询所有软件包
rpm -qa | grep httpd # 查询httpd软件包
rpm -qp <软件包> # 查询未安装软件包信息
rpm -V <软件包> # 查看软件包的校验
rpm2cpio <软件包> # 将软件包转换为.cpio格式
cpio -idmv <软件包>.cpio # 将.cpio格式转换为软件包
yum serch <软件包> # 查询软件包
yum -y install <软件包> # 安装软件包
yum -y update <软件包> # 更新软件包
yum -y remove <软件包> # 卸载软件包 尽量不要卸载系统软件包,因为卸载系统软件包可能会导致系统无法启动
yum list installed # 查询已安装软件包
yum grouplist # 查询软件包组
yum groupinstall "软件包组" # 安装软件包组用户信息文件
/etc/passwd # 用户信息
# root:x:0:0:root:/root:/bin/bash
# 第1字段:用户名
# 第2字段:密码标志
# 第3字段:用户ID(UID)
# 0:超级用户 1-499:系统用户 500+:普通用户
# 第4字段:组ID(GID) 分为初始组、附加组
# 第5字段:用户用户说明
# 第6字段:用户主目录
# 普通用户:/home/用户名 系统用户:/root
# 第7字段:用户默认shell
影子文件(密码文件)
/etc/shadow # 用户密码信息
# root:*:19683:0:99999:7:::
# 第1字段:用户名
# 第2字段:加密密码
# 如果为 !! 或者 * 表示密码为空,不能登录
# 第3字段:上一次修改密码的时间
# 第4字段:密码的最小使用期限
# 第5字段:密码的最大使用期限
# 第6字段:密码过期前的警告天数
# 第7字段:密码过期后的宽限天数
# 第8字段:密码过期后的账号禁用天数(账号失效时间) 时间戳
# 第9字段:保留字段
组信息文件
/etc/group # 组信息
# root:x:0:
# 第1字段:组名
# 第2字段:加密密码
# 第3字段:组ID(GID)
# 第4字段:组成员列表(附加用户)
组密码文件
/etc/gshadow # 组密码信息
# root:*::
# 第1字段:组名
# 第2字段:加密密码
# 第3字段:组管理员列表(管理员用户名)
# 第4字段:保留字段(附加用户)
/root/ # 超级用户主目录,
/home/用户名 # 普通用户主目录
/etc/skel/ # 用户主目录模板文件
useradd <用户名> # 添加用户
-d <用户主目录> # 指定用户主目录
-g <用户组> # 指定用户组
-G <附加用户组> # 指定附加用户组
-s <用户登录Shell> # 指定用户登录Shell, 默认为/bin/bash
-u <用户UID> # 指定用户UID
-m <用户主目录> # 创建用户主目录
id <用户名> # 查看用户ID信息
# 用户默认值文件
/etc/default/useradd # 查看 `cat /etc/default/useradd`超级用户
passwd <用户名> # 修改用户密码
-S # 查看用户密码状态,仅root用户可执行
-l # 锁定用户密码,仅root用户可执行
-u # 解锁用户密码,仅root用户可执行
普通用户
passwd # 修改用户密码,普通用户修改密码要求密码复杂性要求usermod <用户名> # 修改用户信息
-d <用户主目录> # 指定用户主目录
-g <用户组> # 指定用户组
-u <用户UID> # 指定用户UID
-L <用户名> # 锁定用户密码
-U <用户名> # 解锁用户密码
-s <用户登录Shell> # 指定用户登录Shell, 默认为/bin/bash
change <用户名> # 修改用户密码状态
-d <日期> # 修改用户密码最后一次修改日期userdel <用户名> # 删除用户
-r <用户名> # 删除用户主目录id <用户名> # 查看用户ID信息
su <用户名> # 切换用户身份
- # 只使用 - 表示带用户的环境变量一起切换(日常操作中需要带这个参数)
# su - root -c "useradd <用户名>" : 表示不切换root,用root身份创建用户
-c <命令> # 只执行命令,不切换用户身份groupadd <用户组名> # 添加用户组
-g <用户组ID> # 指定用户组ID
groupmod <用户组名> # 修改用户组信息
-g <用户组ID> # 指定用户组ID
-n <新用户组名> # 修改用户组名
groupdel <用户组名> # 删除用户组
gpasswd <用户组名> # 把用户填入组或者从组中删除
-a <用户名> # 添加用户到组
-d <用户名> # 从组中删除用户 sudo 是一个命令,允许用户以root权限运行命令,但是sudo命令本身并不是root用户,而是一个用户,通常为sudo用户。 sudo 操作对象是系统命令,是root将超级用户的权限授予sudo用户,让sudo用户可以执行一些只有root才能执行的系统命令。
visudo 文件所在位置:/etc/sudoers
sudo -l # 查看sudo权限
audo <命令> # 使用sudo执行命令

