linux 命令 程序学习更新中ing
linux 的命令格式一般基于下面的格式
命令 [-选项] [参数]
比如 rm -rf *
一. 文件处理命令
1. ls 命令
用法
选项 | 参数 | 意思 |
---|---|---|
-a | 文件或目录 | 显示所有包括隐藏文件/文件夹 |
-l | 文件或目录 | 详细显示 |
-d | 文件或目录 | 查看目录(只有目录)/文件夹属性 |
-h | 文件或目录 | 文件大小可以一眼看出来多大 |
ll -al
显示的字段解析
[root@localhost ~]# ls -al
总用量 32
dr-xr-x---. 2 root root 167 7月 27 22:43 .
dr-xr-xr-x. 17 root root 224 7月 21 04:48 ..
-rw-r--r--. 1 root root 0 7月 27 22:42 .aaa.txt
-rw-------. 1 root root 1257 7月 21 04:49 anaconda-ks.cfg
-rw-------. 1 root root 937 7月 20 23:17 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
-rw-------. 1 root root 943 7月 20 23:17 .viminfo
| | | | |
所有者 | 大小(KB) 最后修改 文件名称
所属组
权限简称 | 数字 | 权限 | 文件 | 目录 |
---|---|---|---|---|
r | 4 | 读权限 | 查看文件 | 读取目录 rx 一般是同时 不可能可以读取进入不了 |
w | 2 | 写权限 | 修改文件 | 创建、删除文件 文件的删除权限的由来 |
x | 1 | 执行权限 | 执行文件 | 进入目录 |
上面的除第一个都解释了 下面来解释第一个参数
-rw-------
第1个字符:
- -表示文件类型 (
-
二进制文件d
目录l
软链接文件)
后面9个字符:表示 所有者U 所属组G 其他人O 对应的权限 每个角色对应三个字符
权限有三种 r:Read W:write x:Execute
2. mkdir
mkdir
make directories ,所有用户都有权限执行
用法
参数 + 命令 | 意思 |
---|---|
目录 [一个或者多个目录] | 创建目录 |
-p 目录 [一个或者多个目录] | 递归创建目录 |
3. cd
cd
change directory 的功能 ,所有用户都有权限执行
用法
参数 + 命令 | 功能 |
---|---|
目录 | 切换到指定目录 |
… | 回到上一级目录 |
4. pwd
print working directory
显示当前路径
5. rmdir
romove empty directories 移出空文件夹 一般很少使用 因为是空文件件
用法
rmdir + 目录
6. cp
cp copy 所有用户都可以执行
用法
参数 + 命令 | 功能 |
---|---|
-rp 原来文件/目录 目标目录 | 复制目录、文件 |
-r | 复制目录 会把文件的时间修改为最新的时间 |
-p | 保留文件属性 |
文件1 文件2 文件3 目标目录 | 复制文件到目录 |
文件名 文件名 | 复制文件 并改名 |
6.1 scp
复制远程文件到本地 、或者本地复制到远程
复制远程192.168.141.132:/usr/local/sbin/run 到本地/usr/local/sbin/run
scp root@192.168.141.132:/usr/local/sbin/run /usr/local/sbin/run
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
7. mv
move 的意思 移动文件或者文件夹 方法参数类似于
如果是相同文件夹内的操作===改名
用法
参数 + 命令 | 功能 |
---|---|
原来文件/目录 目标目录 | 剪切目录、文件 |
文件1 文件2 文件3 目标目录 | 剪切文件到目录 |
文件名 文件名 | 剪切文件 并改名 |
8. rm
remove 删除
用法
参数 + 命令 | 功能 |
---|---|
原来文件 | 删除 文件 |
-f | 系统不用询问直接删除 |
-r 目录 | 删除目录下所有 会一个个询问子文件、目录建议使用 -rf |
-rf 目录 | 删除目录下所有 不会询问是否删除 |
9. touch
用法
参数 + 命令 | 功能 |
---|---|
文件名 | 正常文件名 |
“文件名” | 带空格的文件名 不建议使用 |
10. cat
查看文件
用法
参数 + 命令 | 功能 |
---|---|
文件名 | 查看文件 |
-n | 查看文件 携带行号 |
11. tac
tac 和 cat 相反
用法
tac 文件 方向显示文件内容
12. more
用法
more 文件 方向显示文件内容
-
F 翻页
-
q 退出文件浏览
-
Enter 下一行
-
我的空格是退出
缺点 不可以向上翻页
13. less
less 文件
-
上箭头 上一行
-
Enter 下箭头 下一行
-
page up 上一页
-
page down 下一页
-
q 退出文件浏览
-
输入
/
后就是查询的关键词 标记高亮显示- n [next 的意思] 下一个关键词
14.head
head 文件前面的数据
用法
参数 + 命令 | 功能 |
---|---|
文件名 | 查看文件前面 10行的数据 |
-n 行数 文件名 | 查看文件前面 指定行数的数据 |
15.tail
用法
参数 + 命令 | 功能 |
---|---|
文件名 | 查看文件后面 10行的数据 |
-n 行数 文件名 | 查看文件后面 指定行数的数据 |
-f 文件名 | 动态显示文件末尾内容 |
16.ln
ln link 类似于快捷方式
软链接(相当于windows的快捷方式)
硬链接(相当于cp -p ,1.两个文件的信息会同时更新,两个文件也是独立的,2.针对的是同一个文件节点 ,通过节点识别是不是硬链接,3.硬盘分区是一致的 4.不能针对目录使用)
用法
参数 + 命令 | 功能 |
---|---|
-s 文件 文件.soft(后缀不强制) | 创建软链接 |
文件 文件.head(后缀不强制) | 创建硬链接 |
二. 权限管理命令
2.1 chmod
change the permissions mode of file
用法
参数 + 命令 | 功能 |
---|---|
[{ugoa} {±=}{rwx}] 文件或者目录 | 改变目录/文件权限 |
[mode=421] 文件或者目录 | 改变目录/文件权限 |
-R | 递归改变子目录/文件权限 |
第一种方式
注释:
ugoa
- u User 文件的拥有者
- g 文件所属组
- o 不是u 也不是 g
- a 所有人
±=
- +加权限
- -减权限
- = 不管以前的权限 重新赋权
rwx
- r read 读权限 4 表示 查看
- w write 写权限 2 表示 修改 删除 对文件有写权限是来自于对目录有写权限
- x execute 执行权限 最高权限 1 表示 进行目录
实例
[root@localhost sff]# ll
-rw-r--r--. 1 root root 0 7月 29 22:28 quanxian.txt
[root@localhost sff]# chmod u+x quanxian.txt //所有者加上x 执行的权限 chmod u+x (这里可以多个 `,` 隔开) quanxian.txt
[root@localhost sff]# ll
-rwxr--r--. 1 root root 0 7月 29 22:28 quanxian.txt
第二种方式
rwx
-
r ----------- 4
-
w ------------ 2
-
x-------------- 1
实例 - rwx rw- r-- 5 3 2 6 4 0
- 7 6 4 r-x -wx -w- rw- r-- —
[root@localhost sff]# chmod 640 quanxian.txt
[root@localhost sff]# ll
总用量 0
-rw-r-----. 1 root root 0 7月 29 22:28 quanxian.txt
[root@localhost sff]#
第三种
修改修改的目录本身和子集目录和文件的权限
[root@localhost sff]# chmod -R 640 test // test目录和test 下面的目录文件的权限都变成640
2.2 chown
change file ownership 改变文件所有者
改变文件/目录的所有者只有 root 用户才可以
用法
chown 所有者 文件/文件夹
2.3 chgrp
change file ownership 改变文件所属组
改变文件/目录的所属组只有 root 用户才可以
用法
chown 组名 文件/文件夹
注 :文件的缺省所属组(默认组)是创建者的缺省组
2.4 umask
the user file-creation mask
用法
umask -S
参数 + 命令 | 功能 |
---|---|
-S | 以rwx形式显示新建文件缺省权限 |
数字 | 获取默认创建权限 |
数字 | 修改默认创建权限 |
[root@localhost sff]# umask -S #下面会有怎么得到的原理
u=rwx,g=rx,o=rx
[root@localhost sff]# mkdir testumask
[root@localhost sff]# ll
drwxr-xr-x. 2 root root 6 7月 30 22:21 testumask //可以看到目录的权限和umask 是一样的
[root@localhost sff]# touch test.file
[root@localhost sff]# ll
-rw-r--r--. 1 root root 0 7月 30 22:21 test.file
drwxr-xr-x. 2 root root 6 7月 30 22:21 testumask
#### 文件为什么不一样?
文件会默认去除x 执行权限 所以可以看到每个权限里面都少一个x 可能是安全考虑 对新创建的文件不具有执行权限
注意 缺省创建文件/目录 的权限
[root@localhost sff]# umask ##获取默认权限 0
0022 # 0 022
# --- -w- -w-
# 777 rwx rwx rwx
# rwx r-x r-x
# 比如改成 077 异或运算
# 077
# 077 --- rwx rwx
# 777 rwx rwx rwx
# 700 rwx --- ---
[root@localhost sff]# umask
0022
[root@localhost sff]# umask 077
[root@localhost sff]# umask -S
u=rwx,g=,o=
[root@localhost sff]#
三. 文件搜索命令
3.1 find
文件搜索
用法
find [文件范围] 【匹配条件】
注:数据块 512字节 0.5 k linux 最小数据单元
参数 + 命令 | 功能 |
---|---|
目录 -name 文件/目录名 | 按名字搜索文件/文件夹 (准确搜索)/通配符搜索[可能需要加引号包起来] 通配符:* 任意字符 ? 匹配一个字符 |
目录 -iname 文件/目录名 | 基本功能同上 只是 不区分大小写 |
目录 -size {±=} 数据块大小 | + 大于 -小于 =等于 数据块大小 |
目录 -user 所有者 | 所有者 查找 |
目录 -group 所有组 | 所有组 查找 |
目录 -amin 时间 | 最近时间内访问过的文件 |
目录 -cmin 时间 | 文件属性 change |
目录 -mmin 时间 | 内容 modify |
目录 -type {fdl} | 按文件类型查找 f 文件d 目录l 链接 |
查找条件 {目录 -type {fdl}/其他上面的} -exec/ok ls-l {} \ | 对执行的结果 执行/【询问执行】ls-l 使用格式{} \ |
目录 -inum 文件节点 | 删除节点对应的文件 |
多个条件连接
# 两个条件都满足
[root@localhost etc]# find / -size +104800 -a -size -204800
# 两个条件其中一个满足
[root@localhost etc]# find / -size +104800 -o -size -20
# 对结果 执行语句
[root@localhost etc]# find / -size +104800 -exec ls -l {} \;
3.2 locate
文件查询 是一个软件 需要安装 命令比较简单
yum install mlocate locate 会建立一个文件索引库 速度很快 updatedb
会刷新文件系统更新索引
用法
参数 + 命令 | 功能 |
---|---|
文件/文件夹 | 会自动模糊查询 |
-i 文件/文件夹 | 不区分大小写 |
3.3 which
搜索命令所在路径 可以判断所需要什么权限
[root@localhost sff]# which useradd ##查询命令所在
/usr/sbin/useradd
[root@localhost sff]# which rm ## 可以看到别名
alias rm='rm -i' #注意:linux 系统其实删除是没有确认的 /bin/rm xxxxx. xx 是不会确认的
/usr/bin/rm #直接的rm 指令 会在命令后面添加 -i 来表示询问
[root@localhost sff]#
3.4 whereis
找到指令路径 帮助文档都会查询出来
[root@localhost sff]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
3.5 grep
在文件中查询字符串
用法
参数 + 命令 | 功能 |
---|---|
字符串 文件 | 在文件中查找字符串并输出 |
-i 字符串 文件 | 基本功能同上 只是 不区分大小写 |
-v 字符串 文件 | 在文件中查找没有这个字符串的并输出 |
-v ^字符串 文件 | 字符串开头的不输出 查看配置文件 ^# 表示# 开头的不输出 |
四. 帮助命令
4.1 man
单词 manual 使用手册; 说明书; 指南;
用法
用法
参数 + 命令 | 功能 |
---|---|
指令 | 查看指令手册 |
配置文件 | 查看配置文件 配置文件不需要绝对路径 |
4.2 whatis
查询指令简单的信息
用法
whatis 命令
4.3 help
查询内置命令 shell 的内置命令
用法
help cd
##cd 没有 在bin 下面 而是shell 的内置命令 shell就是命令和内核通信的一个命令解释器
五. 用户管理命令
5.1 添加用户
用法
useradd 用户名
5.2 修改用户密码
用法
passwd 用户 后面输入密码
5.3 查看登录信息
who
[root@localhost xh]# who
root pts/0 2021-08-10 22:31 (192.168.141.1)
#用户名 表示远程/终端号 登录时间 登录IP
tty 表示本地登录
w 用户登录详细信息
[root@localhost xh]# w
22:46:48 up 26 min, 2 users, load average: 0.00, 0.01, 0.03 ###开机时间 ##用户多少 ### 负载情况
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
#登录时间 #命令空闲时间 #累计时间 #上次命令CPU时间 # 执行的指令
root tty1 22:43 3:28 0.01s 0.01s -bash
root pts/0 192.168.141.1 22:31 0.00s 0.03s 0.01s w
5.4 服务器负载情况
[root@localhost xh]# uptime
22:47:59 up 27 min, 2 users, load average: 0.00, 0.01, 0.03
六. 文件压缩命令
1.gz 文件格式
注:只能压缩文件 压缩后原文件不保留
用法
gzip 文件
gunzip 压缩文件(.gz)
示例
[root@localhost tmp]# ls
gzdemo
[root@localhost tmp]# gzip gzdemo #压缩 gzdemo 文件
[root@localhost tmp]# ls
gzdemo.gz
[root@localhost tmp]# gunzip gzdemo.gz #解压 gzdemo 文件
[root@localhost tmp]# ls
gzdemo
2. tar
a) 压缩
注:可以打包目录
用法
参数 + 命令 | 功能 |
---|---|
-c | 创建一个新归档 |
-v | 列出详细文件 |
-f | 指定压缩后文件名 |
-z | 打包同时压缩 |
[root@localhost tmp]# ls
gzdemo tardir
[root@localhost tmp]# tar -cvf demo.tar tardir/ ##对文件夹tardir/压缩 成 demo.ta
tardir/
tardir/aaa
tardir/bbbb.txt
tardir/sff/
tardir/ccc/
tardir/aaa1/
注意
我们一般linux 使用的文件格式就是上面的打包之后在压缩的 格式为:tar.gz
[root@localhost tmp]# ls
demo.tar gzdemo tardir
[root@localhost tmp]# gzip demo.tar
[root@localhost tmp]# ls
demo.tar.gz gzdemo tardir
b) 解压缩
用法
参数 + 命令 | 功能 |
---|---|
-x | 解包 |
-v | 显示详细信息 |
-f | 指定解压文件 |
-z | 解压缩 |
示例
[root@localhost tmp]# tar -zxvf demo2.tar.gz
tardir/
tardir/aaa
tardir/bbbb.txt
tardir/sff/
tardir/ccc/
tardir/aaa1/
[root@localhost tmp]#
3.zip
***windows 和 linux 都支持***的格式
用法
zip 压缩后的文件 文件/文件夹
unzip 解压后的文件/文件夹 压缩文件
4.bzip2
注: 只能选择文件 适用于大文件的压缩
-k 保留原的文件
功能差不多是 用 tar -cjf 压缩文件 文件
一起使用
unbzip2
-k 保留解压后的文件
七. 网络
1.用户间通信 write
write 用户名
输入内容 换行Crtl+D 退出并发送
示例 :
# 发送方
[sff@localhost ~]$ write root
nihap^H^H;
[sff@localhost ~]$
# 接收方
[root@localhost demo]#
Message from sff@localhost.localdomain on pts/1 at 23:31 ...
nihap^H^H;
EOF
2.广播信息 wall
wall 信息
3.ping
ping ip/域名
ping -c 次数 ip/域名
4.ifconfig
ifconfig是net-tools中的一个工具,目前已经废弃,不在维护了。
所以要使用ifconfig,Linux需要安装net-tools 临时修改IP地址 重启后失效
interface configure
ifconfg 网卡名称 信息
5.mail
mail 用户名 在后面的输入栏中输入数据
6.last
last
最后用户的登录的信息
lastlog
所有用户登录信息 包括之前没有登录过的用户
指定用户查询登录日志
[root@localhost ~]# lastlog -u root
用户名 端口 来自 最后登陆时间
root pts/0 192.168.141.1 一 8月 16 22:32:34 +0800 2021
7.网络追踪
获取到目标地址之前的所有路由
traceroute 域名/ip
8.netstat
netstat
用法
参数 + 命令 | 功能 |
---|---|
-t | TCP |
-u | UDP |
-l | 监听 |
-r | 路由 |
-n | 显示IP地址和端口号 |
-tlun (字母顺序无所谓) | 显示(开放)监听的所有端口 |
-an | 查看正在连接的地址IP |
-rn | 显示路由列表 |
[sff@localhost ~]$ netstat -tlun
##TCP 建立连接需要监听【LISTEN】 UDP 不需要建立连接 所以是不用
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEn
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*
[sff@localhost ~]$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 36 192.168.141.130:22 192.168.141.1:64709 ESTABLISHED
## ESTABLISHED 表示已经建立了连接
tcp 0 0 192.168.141.130:22 192.168.141.1:61945 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
[sff@localhost ~]$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.141.2 0.0.0.0 UG 0 0 0 ens33
192.168.141.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
9.setup
可以设置ip 地址 应用配置 等。。 永久生效 推荐使用
10.mount
文件挂载 不同于window的自动挂载 linux 需要手动挂载目录 文件系统
mount /dev/sr0 /mnt/cdrom
##挂载 设备号一般固定 挂载目录
umonut /dev/sr0
##卸载设备号 不能在挂载的目录中使用此命令
八. 关机重启命令
1.shutdown (推荐)
用法
参数 + 命令 | 功能 |
---|---|
-h 时间 | 指定时间关机 |
-r 时间 | 指定时间重启 |
-c | 取消前一个关机命令 |
2.其他关机命令
halt
poweroff
init 0
3.其他重启命令
init 6
reboot
4.系统运行级别
0: 关机
1: 单用户 root 类似于windows安全模式
2: 不完全多用户 不含NFS服务 NFS 网络文件系统(网络文件共享)
3: 完全多用户
4:未分配
5:图形界面
6:重启
5.logout
退出当前用户 特别实在服务器环境弄得
九. 文本编辑器 Vim
1.插入字符
插入用法
在进入文本后按
命令 | 功能 |
---|---|
a | 光标字符后插入 |
A | 光标所在行行尾插入 |
i | 光标字符钱插入 |
I | 光标所在行行首插入 |
o | 光标下插入新行 |
O | 光标上插入新行 |
2.定位字符
命令 | 功能 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
gg | 到第一行 |
G | 最后一行 |
nG (n 表示数字) | 到第n行 |
G | 到第n行 |
$ | 移到行尾 |
0 | 移到行首 |
3.删除字符
命令 | 功能 |
---|---|
x | 删除光标所在字符 |
nx | 删除光标后面n个字符 |
dd | 删除光标所在行 ndd 删除n行 |
dG | 删除光标所在行到末尾内容 |
D | 删除当前行到行尾的内容 |
:n1,n2d (n1,n2 表示行) | n1,n2 内行删除 |
4.复制和剪切
命令 | 功能 |
---|---|
yy | 复制当前行 |
nyy | 复制当前行一下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行一下n行 |
p/P | 粘贴行下 行上 |
5.替换或取消命令
命令 | 功能 |
---|---|
r | 取代光标所在处字符 |
R | 从光标开始处开始替换字符 |
u | 取消上一步操作 |
6.搜索和替换命令
命令 | 功能 |
---|---|
/string | 搜索 string 可以先:set ic或者noic 区分大小写 |
n | 搜索字符串下一个出现的位置 |
:%s/old/new/g | 全文替换指定字符 |
:n1,n2s/old/new/g | 一定范围内替换指定字符 |
7.保存和退出命令
命令 | 功能 |
---|---|
:w | 保存修改 |
:w new_filename | l另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 保存修改并退出 快捷键 |
:q! | 不保存修改并退出 |
:wq! | 保存修改并退出 只有root和文件使用者可以使用(强制保存) |
8. 导入执行结果
:r !命令
9.添加快捷键
:map [按下快捷键] 命令
实例
:map ^z u
#把ctrl+Z 映射到 u 【u 是撤销】
十.软件包
1.软件包分类
-
源码包 开源的代码包 C/C++
- 开源 任意修改
- 自由选择功能
- 编译安装 执行效果好
- 卸载方便
- 安装步骤多 易错
- 编译时间长
- 报错新手很难解决
-
二进制包 源代码编译后的二进制RPM格式
- 安装卸载简单
- 安装速度快
- 源码不可看
- 功能选择不灵活
- 依赖性 一个包依赖别的包
2.RPM包管理 -rpm
1.包介绍
在linux iso 文件的packages里面有
示例 httpd-2.4.6-80.el7.centos.x86_64.rpm
httpd 软件名称
-
2.4.6 版本
-
80 发布次数
-
el7.centos 适合Linux平台
-
x86_64 适合的硬件平台
-
rpm 包扩展名
2.RPM安装
rpm -ivh 包全名称
命令 | 解释 | 介绍 |
---|---|---|
-i | install | 安装 |
-v | verbose | 显示详细信息 |
-h | hash | 显示进度 |
–nodeps | 不检查依赖性 一般不用 | |
3.升级
-U upgrade 升级
4.卸载
-e erase 包名 可以不是全名
3.RPM包管理 -yum
yum
命令 | 解释 | 介绍 |
---|---|---|
-q + 包 | query | 查询安装的包 |
-qa | all | 查询所有的安装的包 |
-qi+ 包 | information | 包的详细信息 |
-pi | package | 未安装的包详细 |
-ql | list | 安装后的文件位置 |
-qR | 包名 包的依赖性 |
4.RPM 的校验
-V (verify)校验RPM 包中的文件
会显示做了修改的文件
cpio 提取包中的一个文件
5.yum
命令 | 解释 | 介绍 |
---|---|---|
list | 服务器上面可用的包 | |
search 关键字(包名 | 服务器上面查找 | |
install -y 包名 | 安装 -y 自动回答yes | |
yum -y update 包名 | 注意不加包名的话会升级所有包括内核 | |
yum -y remove 包名 | 卸载包 最好不用 可能依赖的包 也被其他的包依赖 |
6.源码包安装
准备gcc
下载源码包
./configuration --prefix=/安装位置
用于生成MakeFile文件
make ==>编译过程
如果失败的话可以执行 make clean
make install 会把程序安装到安装位置
安装完成!
十一.用户管理
1.用户配置文件
服务器 对用户的分配和安全有要求
1.用户的密码/etc/passwd
/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sff:x:1000:1000::/home/sff:/bin/bash
root❌0:0:root:/root:/bin/bash
字段 | 意思 |
---|---|
root | 用户名 |
x | 密码标志表示有密码 |
n | 用户id数字标识(uid){0:超级用户;0-499 系统用户:>500 普通用户||操作系统以为0 才是超级管理员} |
n | GID 用户的初始组id |
root | 用户说明 |
/root | home 目录 普通用户/home/用户名 超级用户/ root |
/bin/bash | 登录之后的shell |
2.影子文件 /etc/shadow
存储的加密后的密码
root:$6$KDDYiYn3/n/3.Usy$trmFxiuXQRg0V69wOFfqwTTDFMw6k7ppj/zOEpepS6J.XMU.RtjXhhycmyNIppL.ilApwroT3UoRikCV5D5ki.::0:99999:7:::
bin:*:17632:0:99999:7:::
字段 | 意思 |
---|---|
root | 用户名 |
密码串 | 用户密码加密后的字符串 SHA512 如果是!! 或者* 表示无密码 不能登录 |
时间戳 | 1970年后的多少天 |
n | 修改密码的时间间隔 |
999999 | 密码的时效性 强制修改密码周期() |
n | 到期前 提示天数 会从(999999-n)天 开始提示 |
n | 密码到期前的宽限时间 |
时间戳 | 账号有效日期 |
3.初始组合附加组
初始组:用户一登录就李哥拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户名一样的用户组作为该用户的初始组(不建议修改)
附加组:指用户可以加入其他用户的组 并拥有改组的权限,附加组可以有多个;
4.组信息文件/etc/group 主密码文件/etc/gshadow
/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
组名 :组密码标志位:GID 组id:组里面的附加用户
/etc/gshadow
root:::
bin:::
daemon:::
sys:::
组名 :组密码{相当于组长有的密码 控制组内成员的操作}
2.用户管理相关文件
1.用户的家目录
普通用户: /home/用户名/ 所有者和所所属组都是此用户 权限是700
超级用户:/root/ 所有者和所属组都是root 用户 权限是550
2.用户的邮箱
/var/spool/mail/用户名、
3.用户的模板目录
每个新用户默认的文件 在这个文件夹下面添加文件后 后面新添加的用户的家目录里面都会有这个模板文件
/etc/skel
3.用户的管理命令
1.useradd
添加用户
命令 | 解释 |
---|---|
用户名 | 添加用户 |
-u uid | 指定用户的uid |
-d 家目录 | 指定家目录 |
-c 用户说明 | 手工指定用户的说明 |
-g 组名 | 手动指定用户的初始组 |
-G 祖名 | 指定用户的附加组 |
-s shell | 手动指定用户的登录shell(命令解释器) 默认时/bin/bash |
2.用户默认值文件
/etc/default/useradd
[root@localhost lhh]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #用户的默认组
HOME=/home #用户的家目录
INACTIVE=-1 #密码过期宽限时间
EXPIRE= #密码的失效时间
SHELL=/bin/bash #默认的shell 命令解释器
SKEL=/etc/skel #默认的模板文件位置
CREATE_MAIL_SPOOL=yes ## 是否建立邮箱
/etc/login.defd
[root@localhost lhh]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost lhh]# cat /etc/login.defd
cat: /etc/login.defd: 没有那个文件或目录
[root@localhost lhh]# cat /etc/login.defs
MAIL_DIR /var/spool/mail ##默认邮箱地址
PASS_MAX_DAYS 99999 ##密码有效期
PASS_MIN_DAYS 0 ##密码修改间隔
PASS_MIN_LEN 5 ##密码长度
PASS_WARN_AGE 7 ##密码到期警告
UID_MIN 1000 #最小uid
UID_MAX 60000 #最大uid
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 #加密模式
2.passwd
为用户添加密码
命令 | 解释 |
---|---|
-S | 查询用户密码状态,root用户可用 |
-l | 锁定用户 root 可用 密码文件shadow 密码加!注释了 可以修改来解锁 |
-u | 解锁用户 root 可用 |
–stdin | 可以通过甘道夫 |
密码 | 用户添加/修改密码 |
3.usermod
修改用户的信息 用户已经存在 命令和useradd 差不多 不同的是 这个操作的用户是已经存在的了
命令 | 解释 |
---|---|
-u uid | 修改用户的uid |
-c 用户说明 | 修改指定用户的说明 |
-G 祖名 | 指定用户的附加组 |
-L | 临时锁定用户 |
-U | 解锁用户 |
3.chage
主要是修改密码相关的文件
chage -d 0 用户 ===> 用户登录就必须修改密码0
4.userdel
userdel -r 用户名
删除用户的同时会删除家目录
5.id 查看用户信息
[root@localhost Packages]# id sff
uid=1000(sff) gid=1000(sff) 组=1000(sff)
6.su 切换用户
su - 用户名 注意 - 不可以省略
切换用户同时 把环境变量一起切换
su - root -c " 命令"
不切换用户执行root 的命令
4.用户组管理
1.groupadd
-g GID 指定组id
2.groupmod
-g GID 修改组id
-n 新组名 旧组名
3.groupdel
groupdel 组名 删除组
4.gpasswd
把用户添加或者删除组
-a 用户 组 ==》用户加入组
-d 用户名 组 ==》 用户组里面删除
十二.权限管理
对文件和目录添加acl 权限 需要开启acl权限
setfacl 命令
chattr
sodu 授权命令道用户
十三.文件系统
1.分区
主分区 最多四个
扩展分区 只能一个 也算是主分区的一种 不能存数据或者格式化 必须在划分成逻辑分区才可以
逻辑分区逻辑分区实在爱扩展分区中划分的如果是IDE 硬盘 linux最多支持59个逻辑分区 如果是SCSI硬盘最多支持11g个逻辑分区
分区的设备名称
主分区1 主分区2 主分区3 扩展分区
逻辑分区1 逻辑分区2 逻辑分区3
/dev/sa1 -------------------------------------------------------------------------/dec6
/dev/sa1-sa4 是分给主分区的 逻辑分区只能是5开始的
2.文件系统
ext2 ext 升级版 最大支持12TB和最大2TB 的文件
ext3 提供日志来提升文件系统可靠性 最大支持12TB和最大2TB 的文件
ext4 性能提升 支持IEB 数据 和最大12TB 的文件
3.文件系统查看命令df
命令 | 解释 |
---|---|
-a | 显示所有文件系统信息 |
-h | 习惯显示容量KB GB 等 |
-T | 显示文件系统类型 |
-m | 以MB 为单位显示 |
-k | 以KB 为单位显示 这个是默认的 |
4.统计目录大小du
ll 查看目录只会看下一级的目录的大小 不会深度的看下面层次的大小一起计算
命令 | 解释 |
---|---|
-a | 显示每个子文件磁盘用量。默认和ll 的一样只有子目录的磁盘占用量 |
-h | 习惯显示容量KB GB 等 |
-s | 统计总的占用量 而不是子目录和子文件的占用量 |
注意: df 【面向文件系统】 看到可用文件可用大小 是除了程序暂用的空间 还要计算被程序和命令占用的空间 (没有释放的空间)
du 【面向文件的】 只会计算文件或者目录占用的空间
5.文件修复命令fack
系统自启会自动使用 最好不要着急手动执行
6.dumpe2fs
dumpe2fs 分区设备名
数据块 超级块信息
7.挂载 mount
设备映射到目录{相当于windows里面的盘符} 挂载光驱 U盘等
-l 已经挂载的目录
-a 自动挂载
mount -t 文件系统 -L 卷标名
实例 挂载光盘
#建立挂载点
mkdir /mnt/cdrom
# 挂载光盘
mount -t iso9660 /dev/cddrom[或者是dev/sr0] /mnt/cdrom
#卸载命令
umount /mnt/cdrom
##或者
umount /dev/cddrom[或者是dev/sr0]
实例 挂载U盘
#建立挂载点
mkdir /mnt/urom
# 查看U盘的设备文件名 如下 截了部分
fdisk -l
#开始挂载 默认不支持NTFS
mount -t exFAT /dev/sdb1 /mnt/urom
8.linux 支持NTFS
- 修改内核
- 借助第三方软件 NTFS-3G
9.fdisk分区
# 添加一块硬盘
#查看 硬盘信息 和上面的图信息差不多
fdisk -l
# 分区 只能写/dev/sdb
fdisk /dev/sdb
#进入分区开始命令行
# 1. l 查看可用分区
# 2. n 开始新建分区 会询问是否是扩展分区e或者是主分区p 选择分区大小
# 3. n 继续分区 开始逻辑分区
# 4.
# 5.
# 6.
# 7.
命令 | 解释 |
---|---|
a | 设置可引导标记 |
b | 标志bsd磁盘标签 |
c | 设置DOS操作系统兼容标记 |
d | 删除一个分区 |
l | 显示已知文件系统 82 =LInux Swap 83 = Linux 分区 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 建立空白DOS分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白SUN磁盘标签 |
t | 改变一个分区的系统ID |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能 仅专家 |
10.格式化分区
#格式化分区
mkfs -t ext4 /dev/sdb1
11.自动挂载硬盘
/etc/fstab 文件
添加前面挂载的
##自动分区 注意 写错了会系统崩溃 一般是写完了 会mount -a【这个命令就是工具文件来重新挂载一遍】 来测试是否可以正常挂载
/dev/sdb1 /disk1 ext4 default 1, 2
文件修复
mount -o remount , re /