一、目录相关
1、pwd 列出当前所在目录
[root@zabbix ~]# pwd
/root
2、cd 改变当前目录
[root@zabbix ~]# cd /usr/local/nginx/
[root@zabbix nginx]# pwd
/usr/local/nginx
3、mkdir 创建目录
-p | 父目录不存在时,连父目录一起创建 |
---|---|
-m | 创建目录时赋予权限 |
-Z | 创建目录是设置selinux的安全上下文为默认类型 |
-v | 创建目录时显示信息 |
[root@zabbix nginx]# mkdir melody
[root@zabbix nginx]# mkdir -p melody/1/2/3
[root@zabbix nginx]# mkdir -v 2
mkdir: 已创建目录 "2"
[root@zabbix nginx]# mkdir -m 700 1
[root@zabbix nginx]# ls -ld 1
drwx------ 2 root root 6 6月 7 20:35 1
4、rmdir 删除目录,无法删除有东西的目录
可以使用rm 删除
[root@zabbix nginx]# rmdir melody/1/2/3/ #删除空目录
[root@zabbix nginx]# rmdir-p melody/1/2/3/ #递归删除空的父目录
[root@zabbix nginx]# touch melody/1/2/1.txt
[root@zabbix nginx]# rmdir melody/1/2
rmdir: 删除 "melody/1/2" 失败: 目录非空
二、文件相关
1、touch创建空文件
文件存在时更改文件的修改时间
-a | 只修改访问时间 |
---|---|
-c | 不会创建文件 |
-m | 更修文件的修改时间 |
[root@zabbix melody]# touch 1.txt
[root@zabbix melody]# touch -c 2.txt #不会创建文件
[root@zabbix melody]# touch 1.txt
[root@zabbix melody]# ls -lh 1.txt
-rw-r--r-- 1 root root 6 6月 7 20:45 1.txt
[root@zabbix melody]# touch 1.txt #文件存在时只会更新文件修改时间
[root@zabbix melody]# ls -lh 1.txt
-rw-r--r-- 1 root root 6 6月 7 20:48 1.txt
2、查看文件内容
- cat 查看小文件,全部输出在当前屏幕
-n | 在每行前面列出行号 |
---|---|
-E | 在每行末尾列出$号 |
-v | 列出所有字符,包括空行,TAB等 |
[root@localhost opt]# cat -n 1.txt
1 12314
2
[root@localhost opt]# cat -v 1.txt
12314
[root@localhost opt]# cat -E 1.txt
12314 $
$
- tac 查看文件
和cat是相反的,tac是从最后一行倒着输出,不支持-n行号
[root@web2 ~]# cat 1.txt
12345
22222
[root@web2 ~]# tac 1.txt
22222
12345
-
less 查看大文件
可以滑动鼠标滚轮,也可以空格键翻页查看
[root@localhost opt]# less 1.txt
-
more 查看文件
与less相比,主要区别在于推出后屏幕是否有输出。less查看完退出后屏幕无输出,more是整个输出在屏幕上。
[root@localhost opt]# more /etc/passwd
-
head 查看文本开头多少行,默认10行
head -n 查看开头n行
[root@web2 ~]# head -5 /etc/passwd
- tail 查看文本末尾多少行,默认10行
tail -n 查看末尾n行
[root@web2 ~]# tail -5 /etc/passwd
- **grep **
-i 不区分大小写 -v 取反^$
空行 ^开头 $结尾
-P 可以让grep使用perl的正则表达式语法
[root@web2 etc]# grep -i 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@web2 etc]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@web2 etc]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
grep -v ^# /etc/login.defs | grep -v ^$ #去除以#开头的注释行和去除空行)
3、vi|vim查看编辑文本
-
当文件不存在时会创建文本,但是不输入内容,文本就不会存在
-
目录不存在时不能创建文本
vim编辑器有3种模式:
命令模式:可以在这个模式下搜索文本内容
插入模式:命令模式下按 **i ** 可以进入插入模式,进行文本编辑,按ESC回到命令模式
末行模式:命令模式下按 : 进入,可以在这个模式下保存退出等。
命令模式下光标跳转的快捷键
操作类型 | 按键指令 | 用 途 |
---|---|---|
移动光标 | 方向键 | 上、下、左、右 |
行内跳转 | Home 键 或 ^、数字 0 | 跳转到行首 |
End 键 或 $ 键 | 跳转到行尾 | |
全文翻页 | PgUp 键、PgDn 键 | 向上翻页、向下翻页 |
行间跳转 | 1G 或 gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
复制 | yy 或nyy | 复制一行 复制n行 |
删除 | x 或Delete键 | 删除光标处的单个字符 |
dd 或ndd p | 剪切光标处的一行 或n行 p粘贴在光标处行下 | |
D 或 shift+d | C | 从光标处删除到行末 | 删除到行末,进入插入模式 | |
d+^ | 从光标处删除到行首 | |
查找 | /string | 查找string |
n或N | 跳转到后|前一个查找结果 | |
撤销 | u 或U | 撤销前一次操作或撤销当前行的所有操作 |
ctrl+r | 取消前一次撤销操作 |
命令模式下字符串的替换
操作类型 | 设置指令 | 用 途 |
---|---|---|
行内替换 | 😒/root/new | 替换光标所在行第一个“root” |
😒/root/new/g | 替换光标所在行所有的“root” | |
区域内替换 | :1,10s/root/new/g | 替换第1-10行所有的“root” |
:%s/root/new/gc | 替换文件内所有的“root” 加C 认为确认 |
末行模式下的操作
操作类型 | 设置指令 | 用 途 |
---|---|---|
编辑器设置 | :set nu或nonu | 显示/不显示行号 |
:set ai或noai | 启用/关闭自动缩进 | |
保存退出 | :x| :wq |wq! | 保存退出 | 强制保存退出 |
:q! | 不保存退出 | |
读入写出 | :r filename | 读入文件filename的内容 |
:w filename | 将文本的内容写入filename |
可视块
命令模式下,按v可以进入可视模式。在可视模式下可以针对文本进行选取操作。
v 取连续的多个字符
V 取连续的多行
ctrl + v 取连续的多列
- 注释多行
ctrl+v 选中注释行最前面,shift+i 写#号,按esc键2次,保存退出
4、rm删除 无法还原
-r、-f:递归删除(含目录)、强制 -v 打印信息
5、mv — Move移动
源数据会消失 不会生成目录 重命会提示是否覆盖
重命名:路径不变的移动
6、cp — Copy:
源数据不会消失
格式:cp [选项]… 原文件… 目标路径
-r:递归,复制目录时必须有此选项
-i:同名提示覆盖
\cp 重名进行强制覆盖,不提示
复制可以支持重新命名,目标路径下数据的名称
复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
三、权限相关
1、ls命令
列出目录或文件的相关信息
- 格式: ls [选项] [file]
常用选项
-a|-A | 列出所有|列出所有帀不包括. … |
---|---|
-l | 以长格式列出信息 |
-d | 列出目录的相关信息 |
-h | 以易读的单位显示M |
-R | 递归的方式显示目录内容 |
-Z | 显示安全上下文 |
[root@web2 zabbix-3.4.4]# ls -lh /etc/passwd
-rw-r--r-- 1 root root 976 6月 8 09:26 /etc/passwd
[root@web2 zabbix-3.4.4]# ls -ld /etc
drwxr-xr-x. 71 root root 8192 6月 8 09:26 /etc
[root@web2 zabbix-3.4.4]# ls -R /etc |head -2
/etc:
adjtime
[root@web2 zabbix-3.4.4]# ls -Z /etc |head -2
-rw-r--r--. root root system_u:object_r:adjtime_t:s0 adjtime
-rw-r--r--. root root system_u:object_r:etc_aliases_t:s0 aliases
2、权限分类与归属
[root@web2 zabbix-3.4.4]# ls -lh /etc/passwd
-rw-r--r-- 1 root root 976 6月 8 09:26 /etc/passwd
type u g o 属主 属组 大小 修改时间 文件名
– r读取:允许查看内容read
– w写入:允许修改内容write
– x可执行:允许运行和切换-excute
对于文本文件:
r读取权限:cat、less、grep、head、tail
w写入权限:vim(保存退出)、> 、 >>
x可执行权限:Shell与Python
对于目录:
r读取权限:可以查看目录的内容(ls命令)
w写入权限:可以修改(创建、删除、改名)目录的内容,无法修改名目录本身。不要修改根目录的权限
x可执行权限:可以cd进入此目录
•归属关系
–所有者(属主):拥有此文件/目录的用户-user
–所属组(属组):拥有此文件/目录的组-group
–其他用户:除所有者、所属组以外的用户-other
Linux中文件类型type:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
Linux中判断用户具备的权限:
ls -lh file 查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配及停止
权限利用数字方式表示
• 权限位的8进制数表示
– r、w、x分别对应4、2、1,后3组分别求和
分组 | User权限 | Group权限 | Other权限 | ||||||
---|---|---|---|---|---|---|---|---|---|
字符 | r | w | x | r | - | x | r | - | x |
数字 | 4 | 2 | 1 | 4 | 0 | 1 | 4 | 0 | 1 |
求和 | 7 | 5 | 5 |
3、修改权限chmod
格式:
chmod [ugoa] [±=] [rwx] file|dir
只有W,看不了,重定向可写 一般与r一起用
只有X,看不了父目录,也看不了内部文件 一般也与r一起
-R:递归修改权限
[root@localhost ~]# chmod o=--- /opt/aa
[root@localhost ~]# chmod a+x /opt/aa
[root@localhost ~]# chmod -R o=--- /opt/aa
[root@localhost ~]# chmod o=--- /opt/aa
[root@localhost ~]# chmod 755 /opt/aa
新建文件目录默认权限:与umask值有关
[root@web2 etc]# umask #默认0022
0022
[root@web2 etc]# umask 0020 #临时修改umask,永久修改需要在~/.bashrc设置umask
[root@web2 etc]# umask
0020
[root@A ~]# umask -S
u=rwx,g=rx,o=rx
Root 文件rw-r–r-- 644
root 目录rwxr-xr-x 755
普通用户文件 rw-rw-r-- 664
普通用户目录 rwxrwxr-x 775
4、修改归属关系chown命令
格式:
–chown 属主 文件...
–chown 属主:属组 文件...
–chown :属组 文件... #修改属组等价与 chgrp 属组 文件
-R:递归修改归属关系
- 用户加入组,不是立即生效,exit su 注销重新登录生效、
- 所有者在所属组,但是所有人权限低于所属组权限,以顺序判断所有者的权限生效,匹配立即停止
- 当你访问一个路径,无论是以相对或绝对路径访问(相对路径会从当前工作目录开始),路径所需遍历的文件夹都必须具备x权限,否则就会出现因搜索问题导致查找不到该目录下的文件而无法进行下一步操作
5、特殊权限
5.1 附加权限SUID权限 u+s
显示为 s 或 S,取决于属主是否有 x 权限,仅对可执行程序有意义
**当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限**
以数字形式表示权限时表示为 4xxx 如:4755
[root@web2 etc]# touch 1.txt
[root@web2 etc]# ls -lh 1.txt
-rw-r--rw- 1 root root 0 6月 8 13:02 1.txt
[root@web2 etc]# chmod u+s 1.txt
[root@web2 etc]# ls -lh 1.txt
-rwSr--rw- 1 root root 0 6月 8 13:02 1.txt #无x权限显示大写S
[root@web2 etc]# chmod u-s 1.txt
[root@web2 etc]# ls -lh 1.txt
-rw-r--rw- 1 root root 0 6月 8 13:02 1.txt
[root@web2 etc]# chmod u+x 1.txt
[root@web2 etc]# ls -lh 1.txt
-rwxr--rw- 1 root root 0 6月 8 13:02 1.txt
[root@web2 etc]# chmod u+s 1.txt
[root@web2 etc]# ls -lh 1.txt
-rwsr--rw- 1 root root 0 6月 8 13:02 1.txt #有x权限显示小写s
5.2 Set GID权限 g+s
显示为 s 或 S,取决于属组是否有 x 权限,对目录有效
**在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份**
chmod 777 可以重置t权限,但是s权限重置不了
[root@web2 etc]# mkdir melody
[root@web2 etc]# ls -ld melody/
drwxr-xrwx 2 root root 6 6月 8 13:09 melody/
[root@web2 etc]# ls -ld melody
drwxr-xrwx 2 root root 6 6月 8 13:09 melody
[root@web2 etc]# chown :melody melody
[root@web2 etc]# ls -ld melody
drwxr-xrwx 2 root melody 6 6月 8 13:09 melody
[root@web2 etc]# chmod g+s melody
[root@web2 etc]# ls -ld melody
drwxr-srwx 2 root melody 6 6月 8 13:09 melody
[root@web2 etc]# touch melody/1.txt
[root@web2 etc]# ls -lh melody/1.txt #继承了目录的属组
-rw-r--rw- 1 root melody 0 6月 8 13:09 melody/1.txt
5.3 粘滞位,Sticky Bit 权限 o+t
- 显示为 t 或 T,取决于其他人是否有 x 权限
- 适用于目录,用来限制用户滥用写入权
在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档 ,但可以删除修改自己的东西
6、ACL策略管理
- 文档归属的局限性:
任何人只属于三种角色:属主、属组、其他人
acl访问策略作用:
能够对个别用户、个别组设置独立的权限
setfacl命令
格式:setfacl [选项] u:用户名:权限 文件…
setfacl [选项] g:组名:权限 文件…
–-m:修改ACL或增加策略
–-x:清除指定的ACL策略
–-b:清除所有已设置的ACL策略
–-R:递归设置ACL策略
]# setfacl -Rm u:dc:rx /opt/nsd
]# setfacl -m u:lisi:--- /home/public/ # ACL策略-黑名单的使用
]# getfacl /home/public/
三、用户管理
1、用户账户
作用:
1.可以登陆操作系统
2.不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
管理员root的UID:永远为0
普通用户的UID:默认从1000开始
2、组账户
用于区分权限,不做登录
作用: 方便管理用户
唯一标识:GID(编号从0开始的编号,默认最大60000)
原则:Linux一个用户必须至少属于一个组(可以多组)
组账户的分类:
基本组:系统创建与用户同名,保证原则,基本不用
附加组(从属组):由管理员创建,由管理员进行加入
本地账户的数据文件
–/etc/passwd、/etc/shadow 用户基本信息
–/etc/group、/etc/gshadow 组账户信息
/etc/passwd 用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
3、用户账号管理
1、创建useradd
格式:useradd [选项]. 用户名
-u:指定 用户UID 超60000 返回1000没用处开始
-d:指定宿主目录(家目录),缺省为 /home/用户名 不能创建父目录
-g 为基本组
-G:指定所属的附加组
-s: shell 指定用户的登录解释器
Id +用户名 查看用户信息
2、修改usermod
格式:usermod [选项]… 用户名
–-l:更改用户帐号的登录名称,家目录不会改变,需-d
–-u:用户uid
–-s:登录解释器
–-d:家目录路径 不会新建只会修改
–-G:附加组//重置附加组 没有就加上,多个变1个
3、设置密码passwd
passwd命令
–格式:passwd [选项]... 用户名
passwd命令,支持非交互式设置密码
]# echo 123 | passwd --stdin nsd01
切换用户 su - 用户名 没密码root可以切进去
4、用户初始配置文件
- 配置文件来源 /etc/skel
- 新建用户时,新建用户家目录,根据 /etc/skel 模板目录复制
- 主要的初始配置文件
~/.bash_profile: #每次登录系统时执行,定义初始变量值
/root/.bashrc: #每次进入新的Bash环境时执行(开启新的终端) 重开终端刷新生效 定义永久别名
/home/name/.bashrc: #该用户自己使用
/etc/bashrc: #全局配置文件,影响全体用户 (开启新的终端)
5、删除用户userdel
格式:
- userdel [-r] 用户名 添加 -r 选项,宿主目录/用户邮件也一并删除
useradd命令解析:
1./etc/passwd:用户基本信息配置文件 增加一行
2./etc/shadow:用户密码信息配置文件增加一行
3./etc/group:组的基本信息配置文件增加一行
4./etc/gshadow:组的管理信息配置文件增加一行
5.在/home增加一个家目录
6.在/var/spool/mail/新增一个用户的邮件文件
userdel -r 命令解析:
1./etc/passwd:用户基本信息配置文件 删一行
2./etc/shadow:用户密码信息配置文件 删一行
3./etc/group:组的基本信息配置文件 删一行
4./etc/gshadow:组的管理信息配置文件 删一行
5.删除家目录
6.删除用户的邮件文件
4、组账户管理
[root@web2 etc]# cat /etc/group|grep melody
melody:x:1001:
组名:组密码占位符:组的GID:组成员列表
groupadd 新建组
groupdel 删除组
gpasswd 修改组属性
–格式:gpasswd [选项]… 组名
-a:add添加组成员,每次只能加一个
-d:delete删除组成员,每次只能删一个
-M:重新定义组成员用户列表,覆盖之前的
-A:定义组管理员列表,也会覆盖
# groupadd melody 新建组
# gpasswd -a root melody #将root加入melody组
# gpasswd -M '' melody #删除组中所有成员
# gpasswd -A ‘qq,tt’ melody #设置组melody管理员为qq,tt
四、find精确查找
作用:可以按需求在硬盘里查找文件目录
格式: find 搜索路径 [选项] 搜索内容
-type 类型(f、d、l)
-name "文档名称" 可以用通配符 有点像 ls -l name*
-size +|-文件大小(k、M、G)
-user 用户名
-mtime 修改时间
-perm 权限
-a 并且,同时给多个条件,默认的
-o 或者,满足多个条件中的一个
-not 非,代表取反,不包括
- -type
按文件类型查找
-f 文件 -d 目录 -l 链接 -b 块设备
[root@web1 ~]# find /etc/httpd/conf -type f
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
[root@web1 ~]# find /etc/httpd/conf -type d
/etc/httpd/conf
[root@web1 ~]# find /etc/httpd/ -type l
/etc/httpd/logs
/etc/httpd/modules
/etc/httpd/run
- -name
按文件名查找,支持通配符。不加通配符表示精确查找,必须完全匹配。
区分大小写。如果不想区分大小写可以使用 -iname
通配符:针对不确定的文档名称,以特殊字符表示
* | 任意多个字符 |
---|---|
? | 单个字符 |
[a-z] | 多个或连续范围中的一个字符 |
[root@web1 ~]# find /etc -name "http" # 精确匹配,无
[root@web1 ~]# find /etc -name "http*" #使用通配符查找
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/etc/httpd
/etc/httpd/conf/httpd.conf
[root@web1 ~]# find /etc -name "http?" #?代表后面只能有且必须有一个字符
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/etc/httpd
[root@web1 ~]# find /etc -name "ht[a-z0-9A-Z]*" #匹配方括号中的任意一个,*代表后面是任意字符
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/etc/httpd
/etc/httpd/conf/httpd.conf
[root@web1 ~]# mkdir http
[root@web1 ~]# mkdir HTTp
[root@web1 ~]# find ./ -iname http #不区分大小写
./http
./HTTp
[root@web1 ~]# find ./ -name http #区分大小写
./http
- -user
按照文件所属用户查找文件
类似还有 -group -uid -gid
-nouser 查找没有拥有者的文件,用于查找垃圾文件
[root@web1 ~]# useradd melody
[root@web1 ~]# find /home -user melody
/home/melody
/home/melody/.bash_logout
/home/melody/.bash_profile
/home/melody/.bashrc
/home/melody/.mozilla
/home/melody/.mozilla/extensions
/home/melody/.mozilla/plugins
- -size
- 按照文件大小进行查找,+表示大于,-表示小于,没有=号
- 默认单位是k,也可以使用M,G
[root@web1 ~]# find /etc -size +5M #大于5M的文件
/etc/udev/hwdb.b[root@web1 ~]# find /boot -size +5M -size -10M #大于5M小于10M的文件
/boot/vmlinuz-3.10.0-862.el7.x86_64
/boot/vmlinuz-0-rescue-32599e2a74704b2e95443e24ea15d4f6
[root@web1 ~]# find /etc -size +10M -o -size -2M 大于10M或者小于2M
- -time
按时间查找
-atime | 按照文件访问时间(读取或者执行)搜索 ,单位为天 |
---|---|
-ctime | 按照文件状态修改时间搜索,如chmod chown |
-mtime | 按照文件内容修改时间搜索 |
-amin | 单位为分钟 |
-cmin | |
-mmin |
[root@web1 ~]# find /etc -mtime -1
/etc
/etc/systemd/system/multi-user.target.wants
/etc/systemd/system/multi-user.target.wants/mysqld.service
[root@web1 ~]# find /etc -mmin -1
[root@web1 ~]# find /etc -mmin -100
/etc
/etc/group
/etc/gshadow
/etc/passwd
/etc/shadow
- -perm
按照权限查找
- -perm 权限完全匹配
- -perm - 权限包含就行
- -perm + 权限包含后面权限中的一个就行 目前有些系统用 -perm / 取代了
- -perm -g=s 带有gid权限 g=s 只有gid权限 -u=s u=s -o=t o=t
[root@web1 ~]# find /etc -perm 400
/etc/openldap/certs/password
[root@web1 ~]# ls -lh /etc/openldap/certs/password
-r--------. 1 root root 45 1月 26 2019 /etc/openldap/certs/password
[root@web1 ~]# find /etc -perm -400|head -2
/etc
/etc/fstab
[root@web1 ~]# ls -lh /etc/fstab
-rw-r--r-- 1 root root 248 1月 26 2019 /etc/fstab
[root@web1 ~]# find /etc -perm /400|head -2
/etc
/etc/fstab
[root@web1 ~]# ls -ld /etc/
drwxr-xr-x. 74 root root 8192 6月 8 19:33 /etc/
[root@web1 ~]# find /etc -perm -a=rwx
[root@web1 ~]# find /etc -perm -g=rwx,a=rwx
[root@web1 ~]# find /usr -perm -g=s
/usr/bin/wall
[root@web1 ~]# ls -lh /usr/bin/wall
-r-xr-sr-x. 1 root tty 15K 6月 10 2014 /usr/bin/wall
- find高级使用
exec :二次处理find找到的数据,每查找的一个就传递一次
格式: –find [范围] [条件] -exec 处理命令 {} ;
-exec额外操作的开始
{} 永远表示前面find查找的结果
\; 额外操作的结束
[root@web1 ~]# find /etc -name "httpd"
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/etc/httpd
[root@web1 ~]# find /etc -name "httpd" -exec cp -p {} /opt \; #查找到的文件复制到制定目录
cp: 略过目录"/etc/httpd"
-ok:也是二次处理,与-exec相比,-ok会有提示,让你确认
[root@web1 ~]# find /etc -name "httpd" -ok cp -rp {} /opt \;
< cp ... /etc/sysconfig/httpd > ? yes
< cp ... /etc/logrotate.d/httpd > ? yes
< cp ... /etc/httpd > ? y
cp: 无法以目录"/etc/httpd" 来覆盖非目录"/opt/httpd"
五、重定向与管道
1、重定向
将前面命令的结果输入到后面的文本里
分为追加重定向和覆盖重定向
- 追加重定向>> : 把内容追加到文件末尾
- 覆盖重定向> : 把内容覆盖文本内容
前面的是标准输出的重定向,还有错误输出的重定向
- 2> : 错误输出的内容重定向到文件
- &>:正确与错误的内容都重定向到文件
[root@web1 ~]# useradd melody > 1.txt
useradd:用户“melody”已存在
[root@web1 ~]# cat 1.txt
[root@web1 ~]# useradd melody 2> 1.txt
[root@web1 ~]# cat 1.txt
useradd:用户“melody”已存在
[root@web1 ~]# useradd melody &> 1.txt
[root@web1 ~]# cat 1.txt
useradd:用户“melody”已存在
[root@web1 ~]# useradd melody &>> 1.txt
[root@web1 ~]# cat 1.txt
useradd:用户“melody”已存在
useradd:用户“melody”已存在
2、管道|
将前面命令的内容交给后面的命令处理
[root@web1 ~]# cat 1.txt |wc -l
2
[root@web1 ~]# cat -n /etc/passwd|head -5|tail -1
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
六、rpm与yum与mount
1、rpm
- RPM Package Manager
建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系 - 用于查询、安装、卸载软件包,但是不能解决依赖关系
1.1 查询软件信息
]# rpm -q+软件名 #查看firefox是否安装
]# rpm -qa #当前系统中所有已安装的软件包
]# rpm -qi+软件名 #查询软件信息
]# rpm -ql +软件名 #查询软件安装了哪些内容
]#rpm -qf+路径或文件 查询某个目录/文件是哪个RPM包带来的 只能查已经装了的
-R 列出该包所依赖的别的包.
]#rpm-qpl+包名 查询软件包信息:了解内容
]#rpm -qpi+包名 查询软件包信息 路径需正确
]rpm --import /mnt/RPM-GPG-KEY-CentOS-7 #导入红帽签名信息
1.2 安装卸载RPM软件
格式:rpm -i RPM包文件… 不常用
-i 安装 -U升级 -e卸载
-v:显示细节信息
-h:以#号显示安装进度
2、Yum
- 作用:自动解决依赖关系安装软件
- 本地Yum仓库架构:服务端与客户端都为本机
- 网络yum仓库架构:网络仓库提供安装包仓库,需要机子联网
- 仓库配置文件:**/etc/yum.repos.d/.repo 错误的文件会影响正确的文件 **
- yum命令----》/etc/yum.repos.d/.repo—>baseurl—>>
2.1 客户端文件配置内容:
[melody] : 自定义名称,具有唯一性
Name=centos7: 本软件源的描述字串 #可以没有
baseurl: 指定YUM服务端的URL地址 #可以是本地目录,也可以是网络URL
enabled: 是否启用此频道 #可以没有,默认1
gpgcheck: 是否验证待安装的RPM包 =0不些下句
gpgkey: 用于RPM软件包验证的密钥文件 #可以没有
2.2 Yum的使用
yum -y install httpd #安装软件
yum remove httpd #卸载软件
yum list ftp #查询仓库是否有ftp软件
yum provides /usr/bin/hostname #查看仓库中那个软件产生该数据(包含仓库中没有安装)
rpm -qf /usr/bin/hostname #查看系统已安装的软件产生该数据(针对系统已经安装的)
Yum search 关键词
Yum info 软件名 #比较像 rpm -qi 软件名
Yum -y reinstall hostname #重新安装
yum -y update #升级软件
yum groups install #安装包组
yum clean all #清空缓存
yum makecache #更新yum缓存
createrepo dir #在某个目录创建仓库数据
3、mount
目的:将本地或远程设备挂在到本地目录,便于访问
格式: mount -t type [-o options] device dir
挂载操作
Mount /dev/cdrom /目录
卸载操作
[root@localhost ~]# umount /dvd
查看正挂载的设备
]# df -h #显示正在挂载的设备信息 T 显示文件类型 h单位
注意事项:
1.卸载:当前所在的路径是挂载点目录
2.挂载允许一个设备,挂载到不同的挂载点目录
3.挂载不允许一个挂载点目录,挂载多个设备
4.建议挂载点目录,最好自行创建
5.挂载目录中内容不会被删除,只是被屏蔽了。删除挂载后会恢复。
6.如果需要开机自动启动,需要修改/etc/fstab文件
/iso/ceph10.iso /var/ftp/ceph iso9660 defaults 0 0
挂载设备 挂载点 文件系统类型 参数 转储频率 自检次序
七、归档与压缩
作用:1.减小占用空间大小 2.整合分散的数据
- 归档的含义
将许多零散的文件整理为一个文件
文件总的大小基本不变 - 压缩的含义
按某种算法减小文件所占用空间的大小
恢复时按对应的逆向算法解压 - 常见的压缩格式及命令工具:
.gz gzip 速度最快 .bz2 bzip2 .xz xz
1、tar 集成备份工具
格式:tar 选项 /路径/压缩包名字 /源数据
-c:创建归档 -x:释放归档
-f:指定归档文件名称,必须在所有选项的最后
-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理
-t:显示归档中的文件清单list
-v:显示归档中的详细文件清单
-C:指定释放路径
-v:在移除每个文件之前打印其名称。
-P: 以绝对路径打包
[root@web1 ~]# tar -zcf /root/1.tar.gz /usr/local
tar: 从成员名中删除开头的“/”
[root@web1 ~]# ls
1.tar.gz 1.txt Desktop http HTTp
[root@web1 ~]# tar -xf 1.tar.gz -C /opt
[root@web1 ~]# ls /opt/
1.tar.gz httpd
2、zip归档工具,跨平台
- 归档+压缩:
- 格式zip [-r] 备份文件.zip 被归档文档
- -r:被归档的数据有目录,必须加上此选项
]# zip -r /opt/abc.zip /etc/passwd /home
- 释放+解压操作
格式:unzip .zip [ -d 目标文件夹]
Unzip -t .zip 查看包里有什么东西 tar -t- ]# unzip /opt/abc.zip -d /nsd20
八、其他一些命令
]# cat /etc/redhat-release #查看系统版本
uname -r #查看内核版本
uname -n #查看主机名
hostname #查看主机名 (
hostname XX #临时设置主机名
hostnamectl set-hostname svr7.tedu.cn #配置永久的主机名
[root@A ~]# lscpu 列出CPU处理器信息
[root@A ~]# cat /proc/meminfo 列出内存信息
[root@A ~]# lsblk 列出可以识别的硬盘信息
]# ifconfig #ip a s 查看网卡的IP地址
]# ifconfig eth0 192.168.1.1 #临时设置IP
]# which hostname #查询命令所对应的程序
- 别名alias
alias [别名名称] #简化复杂的命令
alias 别名名称= '实际执行的命令行' #定义新的别名
unalias [别名名称] #•取消已设置的别名
- 获取命令帮助
方式一:命令 --help
方式二:man 命令 - 历史命令
管理/调用曾经执行过的命令
–history:查看历史命令列表
–history -c:清空历史命令
–!n:执行命令历史中的第n条命令
–!str:执行最近一次以str开头的历史命令
- du,统计文件的占用空间
–du [选项]... [目录或文件]...
–-s:只统计每个参数所占用的总空间大小
–-h:提供易读容量单位(K、M等)
[root@web1 ~]# du -sh /etc
30M /etc
- date
查看/调整系统日期时间
–date +%F、date +%R
–date +"%Y-%m-%d %H:%M:%S"
–date -s "yyyy-mm-dd HH:MM:SS"
+%Y #显示年 +%m #显示月 +%d #显示日期
+%H #显示时 +%M #显示分 +%S #显示秒
+%F #显示年-月-日 +%R #显示时:分
]# date -s "2008-9-6 11:11:11" #修改系统时间
- 制作链接文件
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
软链接缺点:源数据消失,快捷方式失效
[root@web1 ~]# ln -s /usr/local ./local
[root@web1 ~]# ls -lh
lrwxrwxrwx 1 root root 10 6月 9 08:48 local -> /usr/local
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[root@web1 ~]# ln /etc/passwd ./passwd
[root@web1 ~]# ls -lh
-rw-r--r-- 2 root root 1.4K 6月 8 20:34 passwd