目录
1、ls(命令之列出常用的参数,不常用或者含有类似的这里不在列出)
2、cd 命令:主要用于却换工作目录的,改变自己当前所在的目录位置
5、tty:查看当前所在设备的终端whoami与who和w显示自己的系统中的用户名与登陆的终端
8.2 head: 默认查看文件的前10行,也可以自己指定 -n
8.3 tail: 默认查看文件的后10行,也可以知道查看后几行 -n, -f:可以持续的进行查看直到自己退出(通常用于查看日志文件)
8.4 more 命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能
8.5 less 命令用法比起 more 更加的有弹性,less可以支持向上翻页 需要按一下q进行退出
16、ifconfig 、 route 、 ip查看网络信息
21、uniq用户去除文件中的重复行,一般与sort命令结合使用
25、tree显示树形的层级目录结构,不是系统自带的命令,需要安装tree
4、setfacl 给指定的用户拥有对文件或目录有指定的权限(文件acl权限)
5、umask设置环境的umask值,即创建目录或文件的初始权限,默认是0022
5、sar:全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据
6、ipcs:用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息
7、ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识
一、系统基础与文件查看命令
1、ls(命令之列出常用的参数,不常用或者含有类似的这里不在列出)
-a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来
-d :仅列出目录本身,而不是列出目录内的档案数据
-F :根据档案、目录等信息,给予附加数据结构,例如:
*:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案;
-h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-l :目录下的下的详细信息,长数据串行出,包含档案的属性等等数据;
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-t :依时间排序
2、cd 命令:主要用于却换工作目录的,改变自己当前所在的目录位置
cd命令,其中一个“.” 表示当前路径,两个".."表示上一级目录,依次类推,四个点就是上两个目录
3、pwd打印当前所在的目录的完整位置
-P # 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径
4、du 查看文件的大小
参数: sh -ah
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h:显示出统计结果,使用-h选项后将显示出KB、MB等单位
-s:只统计每个参数所占用的空间总的大小,而不是统计每个子目录
5、tty:查看当前所在设备的终端whoami与who和w显示自己的系统中的用户名与登陆的终端
login time:登陆系统的时间 who -r:显示当前运行级别与系统当前的时间
当前运行的是init3,具体每个表示什么可以查看一共是0-6个级别
6、date:查看系统的时间
%H 小时(以00-23来表示) %I 小时(以01-12来表示) %K 小时(以0-23来表示)。
%l 小时(以0-12来表示) %M 分钟(以00-59来表示) %P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示) %X 时间(以本地的惯用法来表示)。
%Z 市区 %a 星期的缩写 %A 星期的完整名称。%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示) %D 日期(含年月日)。
%j 该年中的第几天 %m 月份(以01-12来表示)。
%U 该年中的周数 %w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示) %y 年份(以00-99来表示) %Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行 %t 在显示时,插入tab。
MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要) ss 秒(选择性)
7、查看系统的进程 ps与top、pgrep
7.1 ps为静态的查看进程,而top是动态的进行查看
ps一般有两个组合 -aux (这种会详细一点) 或者 -elf 我通常直接用ef
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
7.2 top
[参数]
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数
PID:进程的 ID。
USER:该进程所属的用户。
PR:优先级,数值越小优先级越高。
NI:优先级,数值越小、优先级越高。
VIRT:该进程使用的虚拟内存的大小,单位为 KB。
RES:该进程使用的物理内存的大小,单位为 KB。
SHR:共享内存大小,单位为 KB。
S:进程状态。
%CPU:该进程占用 CPU 的百分比。
%MEM:该进程占用内存的百分比。
TIME+:该进程共占用的 CPU 时间。
COMMAND:进程的命令名。
7.3 pgrep命令查询进程信息
当使用ps命令查询某个进程的PID信息时,往往需要结合grep命令对输出结果进行过滤,这样使用非常不方便,而pgrep命令正是查询特定进程信息的专用工具。使用pgrep命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID号。
用法:
#pgrep [选项] [程序名]
-l:输出对应的进程号
-U: 查询特定用户的进程
8、查看文件内容的命令
8.1 cat:查看文件的全部内容 (下图只显示了一部分)
加-n可以显示出行号
8.2 head: 默认查看文件的前10行,也可以自己指定 -n
8.3 tail: 默认查看文件的后10行,也可以知道查看后几行 -n, -f:可以持续的进行查看直到自己退出(通常用于查看日志文件)
8.4 more 命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
进行翻页的查看可以显示百分比
8.5 less 命令用法比起 more 更加的有弹性,less可以支持向上翻页 需要按一下q进行退出
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
输出内容后:
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
9、diff 判断文件内容是否一致 或者vimdiff
查看两个文件内容的不同,可以快速的定位两个文件的内容是否一致:用法就是 diff 文件1 文件2
10、ping测试联通性
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
用于测试联通性的,通常ping目标端的ip或主机名来进行测试,如 ping www.baidu.com
参数-c指定链接的次数,如果不指定会一直ping下去知道自己手动的关掉
11、curl访问网页
拥有linux中访问的命令,可以查看网页是否可以在本地访问,或者访问其他的网页,也可以测试是否可以链接到外网等
curl -I www.baidu.com -I只返回状态信息
12、which查看命令的文件存放路径
查看命令文件的存放目录
which主要是通过全局变量的路径进行查找的
就是which 命令 就可以查看这个命令的文件存放在那个位置了
13、whereis 检索二进制文件
只能用于程序名的搜索,而且只搜索二进制文件
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
14、type查看类型
可以查看当前命令默认的别名使用
15、alias查看别名
可以查看当前的别名有哪些
1、 查看当前系统中有哪些别名
2、 设置命令的别名
1.临时
# alias vi='vim'
2.永久, 改文件
/root/.bashrc
取消别名
unalias vi
16、ifconfig 、 route 、 ip查看网络信息
这些都是查看主机ip或路由的命令(net-tools包提供的命令)
16.1 ifup:启动网卡。 ifdown:关闭网卡。
用法: ifup/ifdown 网卡名称
16.2 netstat 查看网络状态。
netstat -anutp :查看网络连接状态
16.3 ss 查看网络状态
ss -atp
17、wc统计
wc主要统计行数的,统计用的
-c:统计文件内容中的字节数
-l:统计文件内容中的行数
-w:统计文件内容中的单词个数(以空格或指标位作为分隔)
18、find文件查找
find查看命令(find命令比较常用),可以更具自己的需求进行查找相应的文件或目录等
find查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用,您可以通过权限,用户,组,文件类型,日期,大小等可能的条件查找文件。
语法:
find pathname -option [-print ] [ -exec | -ok command ] {} \;
find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
18.1、通过文件类型名称查看
-name filename //查找名为filename的文件。
-iname filename //与-name相同,查找名为filename的文件,但忽略大小写,即不区分大小写。
-type b/d/c/p/l/f //按照文件类型查找,查是块设备、目录、字符设备、管道、符号链接、普通文件。 块设备:随机读取,例如硬盘 字符设备:顺序读取,例如键盘、鼠标
-type查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
1.使用当前目录中的名称查找文件
2.在指定目录下查找文件
3.使用名称和忽略大小写查找文件
4.使用名称查找目录
5.使用名称查找PHP文件
查看完后还可以进行操作 加上-exec 命令 {} \;
18.2、更具时间日期查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
注:我们可以使用stat命令来查看一个文件的时间信息。
1. 在/root下查找文件更新日是在距现在时刻二天以内的文件
# find /root/ -mtime -2
2. 在/root下查找文件更新日是在距现在时刻二天以上的文件
# find /root/ -mtime +2
3.在/root下查找文件更新日是在距现在时刻一天以上二天以内的文件
# find /root/ -mtime 2
18.3、更加文件的大小查找
-size [+/-]n
按照文件大小查询文件,+n表示文件大小大于n,-n表示文件大小小于n。常用单位:k, M, G
#find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
#find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
#find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
#find /tmp -size +50M -size -100M //找到大于50MB且小于100MB的所有文件。
#find / -type f -name “*.mp3” -size +10M -exec rm {} \; //查找超过10MB的所有.mp3文件,并使用一个命令删除它们。、 -not或者!可以进行反向的查找感兴趣的可以试试,比如: find ./test -not -name “*.php”或find ./test ! -name “*.php”
19、grep、egrep 检索、过滤文件内容
具体的使用正则表达是的方式可以查看:正则表达式在shell中使用的方法与案例_LBC890的博客-CSDN博客_shell 使用正则
grep:目的是过滤出用户感兴趣的内容
语法:grep [选项] 模式或关键字 文件列表
简单例子:
# grep root /etc/passwd
-i 忽略大小写
-v 取反
过滤出不包含nologin的行
# grep -v nologin /etc/passwd
显示/root/.bashrc文件中的非注释行
# grep -v ^# /root/.bashrc ^ 以某关键字开头
显示passwd文件中以sh结尾的行
# grep sh$ /etc/passwd $ 以某关键字结尾
显示/root/.bashrc文件中的非注释行和非空行
# grep -v ^# /root/.bashrc | grep -v ^$ # 『^$』 表示空行
# grep -c root /etc/passwd -c count:统计匹配到的行数
-l 一般和-r联用, 只显示包含关键字的文件的名字, 而不是显示文件内容
-r 递归检索
显示test目录下文件内容中含有root的文件名
# grep -rl root /test (输出那些文件里面含有相关的关键字root)
-q quiet 静默输出 一般在写脚本时候用
# grep -q root /etc/passwd
-n 显示匹配行的行号
egrep就是支持正则表达试
如查看过滤root和bml
cat /etc/passwd | egrep "root|bml"
20、sort排序,并将排序结果标准输出
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。
工作原理:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
开头就按照a-z的顺序排列了
-u : --unique 唯一,排序并且排除重复项
-r : --reverse 反向排序 (表示重z-a进行排序了)
-n :--number 按照数字进行排序,默认数字会被当作字符串进行比较
-o : --output 将排序结果输出到源文件 ,如 # sort -r number.txt -o number.txt
-f排序时,将小写字母视为大写字母。
-t :指定分隔符,默认tab为分隔符
-k: 指定按照哪一个分割区域进行排序
通常-t与-k结合使用
比如上图中的文件按照第三列的数字进行倒着排序: sort -t : -k3 -rn /etc/passwd
21、uniq用户去除文件中的重复行,一般与sort命令结合使用
文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
-c或--count:在每列旁边显示该行重复出现的次数;
-i: 忽略大小写。
-d或--repeated:仅显示重复出现的行列;
-u或--unique:仅显示出一次的行列;
22、cut剪切文件内容进行输出
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一,通常d、f结合使用。
-f:显示指定字段的内容
-d:指定字段的分隔符,默认的字段分隔符为“TAB”
-c:表示字符
以冒号分隔,取出/etc/passwd文件的第1至第3行,并将这些信息按第3个字段的数值大小进行排序
23、echo打印输出命令
echo "要打印的内容"
$?返回上一条命令执行的是否成功,返回为0即为成功
24、md5sum查看文件或压缩包的md5安全校验值
用来确认包下载的是否正确
25、tree显示树形的层级目录结构,不是系统自带的命令,需要安装tree
yum -y install tree
26、jobs查看后台执行的任务
就直接输入jobs即可,fg可以将任务调到前端,bg可以将jobs后台的执行输出结果在前端显示出来
27、su切换用户
su - benet #注意su - 用户名称 如果不加这个“ - ”有可能会没有权限
用户权限的目录:/etc/pam.d/su
sudo普通用户提权使用
$ sudo 命令即可
28、shutdown、poweroff关机
shutdown -r now # 立刻关机,其中 now 表示现在
shutdown 20:25 # 系统在今天的 20:25 会关机
shutdown +10 # 系统再过十分钟后自动关机
shutdown -c 取消之前指定的关机计划
poweroff直接关机
init 0也可以关机
29、reboot重启机器
reboot即可
init 6也可以重启
30、ssh远程登录
ssh 用户名称@ip地址 (注意默认端口号是22,如果修改了端口好,链接的时候需要加 -p 端口号)
如: ssh root@192.168.100.100
telnet:使用TELNET协议远程登录。
31、scp传输文件
scp也是ssh服务里面的命令
语法 scp 文件名称 用户名称@ip地址:传输的位置
相反也是可以的 scp 用户名称@ip地址:传输文件的位置 当前文件保存的位置
-r: 传输目录 -P 指定端口号
32、rev文件内容每行倒着输出
rev 文件名称
33、uptime:显示系统运行时间及负载
(1、5、15分钟的负载)
34、cal:查看日历等时间信息
35、free查看内存与交换分区的使用情况
free -h
36、wget下载文件
wget 网络文件链接地址
37、rpm:管理rpm包的命令
rpm -ivh 包名称 #安装rpm包 --nodeps --force强制安装不管依赖
-e 删除rom包
38、yum 自动化简单化地管理rpm包的命令
例如yum install -y wget 或者yum -y install lib*
将指定的rpm包下载到指定的目录底下:
yum -y install --downloadonly --downloaddir=/tmp/gcc gcc
39、getenforce查看selinux的状态
getenforce即可, setenforce进行临时设置 setenforce 0临时关闭
40、nohup ...... & 将任务放到后台执行
nohup 命令 & 可以通过jobs查看后台任务
41、lsof 列举系统中已经被打开的文件
直接输入 lsof 即可
42、source同步刷新文件
例如:source /root/.bash_profile //重新读取配置文件,使修改生效
43、kill、pkill、killall删除进程
SIGHUP,启动被终止的进程
SIGINT,相当于输入ctrl+c,中断一个程序的进行
SIGKILL,强制中断一个进程的进行
SIGTERM,以正常的结束进程方式来终止进程
SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
43.1、kill删除进程号
用法: kill 进程号
43.2、pkill删除进程的名称
pkill 进程名称,如(pkill nginx)
43.3、killall 也是删除进程的名称
-i :交互式的意思,删除是会先询问用户是否确认删除
-e :表示后面接的command name要一致,但command name不能超过15个字符
-I :忽略大小写
如:killall -SIGHUP nginx # 重新启动nginx
44、file命令,用于显示文件的类型
file 文件名称
45、last 查看历史登录机器的信息
选项:
-x:显示系统开关机以及执行等级信息
-a:将登陆ip显示在最后一行
-f :读取特定文件,可以选择 -f /var/log/btmp文件
-d:将IP地址转换为主机名
-n:设置列出名单的显示列数
-t:查看指定时间的用户登录历史
说明:前面是以什么用户登录的,终端信息,登录主机的ip地址或主机名称域名等最后就是登录的时间
lastlog也是不过是显示当前环境中用户的登录信息,主要就是有那个用户进行登录了
-u:查看某个用户的最后一次登陆历史
例如 查看用户test的登陆历史 : lastlog -u test
-t:查看最近几天之内的用户登录历史
例如查看最近1天之内的登陆历史 : lastlog -t 1
-b:查看指定天数之前的用户登录历史
例如 查看60天之前的用户登录历史: lastlog -b 60
二、文件创建与编辑
1、touch创建普通文件
2、mkdir创建目录
-m 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p 嵌套模式,连续创建空目录
-v 每次创建新目录都显示信息
3、mv移动目录或文件的位置,也可以改名称
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
4、cp复制文件命令
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
5、rm删除文件或目录
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
6、rmdir删除空目录
-p 递归删除目录,只能删除空目录,如果目录里面有文件则删除不了
7、ln 链接文件
格式:ln [-s] 源文件或目录… 链接文件或目标目录
常用命令选项: -s:建立符号链接文件(省略此项则建立硬链接)
可以使用ls -il查看inode、链接数、符号链接引用
硬连接 | 软链接(符号链接) |
语法:ln 源文件 链接到的目标位置 | 语法:ln -s 源文件 链接到的目标位置 |
指向相同inode的多个名称 | 指向原始名称的附加名称 |
增加链接数 | 分隔文件 |
所有名称是平等的 | 附加名称可以断开 |
在删除所有名称之前,数据一直保留 | 如果删除了原始名称,则数据丢失 |
必须在相同文件系统 | 可以跨多个文件系统 |
链接文件,但不能链接目录 | 可以链接目录 |
8、gzip、tar压缩与解压缩文件
8.1 压缩zip命令和解压缩unzip
命令 zip -d 压缩名 文件名
-d:从压缩文件内删除指定的文件/把压缩文件解压到指定目录中
-r:递归处理,将指定目录下的所有文件和子目录一并处
-m:把文件移到压缩文件中 先写压缩文件在-m
-v:查看压缩文件中的内容,但不解压,结合unzip命令使用,unzip-v压缩文件
-x:压缩时排除符合条件的文件
8.2 gzip 命令压缩文件或文件夹为
gzip[参数][文件或者目录]
-a 使用ASCII文字模式。
-c 压缩后的文件输出到标准输出设备,不去更动原始文件。
-d 解压缩。
-f 强行压缩文件。不理会文件名称 or 硬连接是否存在以及该文件是否为符号连接。
-h 在线帮助。
-l 列出压缩文件的相关信息。
-L 显示版本与版权信息。
-n 压缩文件时,不保存原来的文件名称及时间戳记。
-N 压缩文件时,保存原来的文件名称及时间戳记。
-q 不显示警告信息。
-r 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串> or ----suffix<压缩字尾字符串> 更改压缩字尾字符串。
-t 测试压缩文件是否正确无误。
-v 显示指令执行过程。
-V 显示版本信息。
-num 用指定的数字num调整压缩的速度,-1 或者 --fast表示最快压缩方法(低压缩比),-9 或者 --best表示最慢压缩方法(高压缩比)。系统缺省值为6。
8.3 tar归档和释放命令
tar命令主要用于对目录和文件进行归档。在实际备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的gzip和bzip2命令),以节省磁盘空间。使用tar命令时,选项前的“-”号可以省略,常用的几个选项如下:
-c:创建(create).tar格式的包文件
-C:解压时指定释放的目标文件夹
-f:表示使用归档文件
-j:调用bzip2程序进行压缩或解压
-p:打包时保留文件及目录的权限
-P:打包时保留文件及目录的绝对路径
-t:列表查看保内的文件
-v:输出详细信息
-x:解开.tar格式的包文件
-z:调用gzip程序进行压缩或解压
语法 : tar zcf 或者 tar jcf (tar zcf 压缩后文件存放的位置/压缩后的压缩文件名 需要压缩的文件名称)
1、linux常用tar压缩
2、从归档文件中恢复数据
使用xf选项可以解压"*.tar.gz"和"*.tar.bz2"归档文件,-C:解压时指定释放目标文件夹
9、计划任务at、crontab
9.1 at一次性计划任务
使用at命令设置的计划任务只在指定的时间执行一次,前提是对应的系统服务atd必须已经运行,需要注意的是,计划任务执行的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务
在执行一次性任务时,在at命令中一次指定计划任务的执行时间、日期作为参数(若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前日期 ),确认后将进入带“at>”提示符任务编辑界面,每行可以设置一条执行命令,可以依次设置多条语句,最后按Ctrl+D提交任务,所设置的任务将依次按照计划时间执行,对于已经设置的计划任务通过“atq”命令进行查询
使用at命令创建任务,例如:在当天的20:00关闭系统
按Ctrl +d保存退出
使用atq命令查询还未执行的计划任务,使用“atrm”命令删除指定编号的at任务,atrm[编号]
9.2 crontab周期性任务设置
crontab命令设置的计划任务可以按照预设的周期重复执行,启用周期性任务也有一个前提条件,即对应的系统服务crond必须已经运行,默认系统已安装,如果没安装,先安装cronie包,通过 rpm -q cronie查询包是否安装
crontab的配置文件和目录
crond通过多个目录和文件设置计划任务 ,不同类型的任务由不同的配置文件来设置
/etc/crontab---系统任务配置文件
a) /etc/crontab文件中设置的是维护linux操作系统所需的任务,Linux操作系统及相关
程序在安装时可自动设置,不建议用户手动修改此文件
例如,改文件中包括设置shell环境,可执行路径等变量的操作,以及每小时、每天、每周、每月需要执行的任务目录
#cat/etc/crontab
根据文件中的设置,crond将按照不同的周期重复执行相应目录中的任务脚本文件
使用crontab命令管理用户的计划任务
设置周期性计划任务列表主要通过crontab命令进行,结合不同选项可以完成不同的计划管理操作
-e:编辑计划任务列表
-u:指定所管理的计划任务属于哪个用户,默认是针对当前用户,一般只有root用户有权限使用此选项(用户编辑、删除其他用户的计划任务)
-l:列表显示计划任务
-r:删除计划任务列表(删除小心使用-r会将说有的计划任务全部删除,建议-e进入编辑在将不要的哪行删除)
星号(*):代表所有可能的值,例如月份字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
Ø 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,3”,表示1和3
Ø 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
Ø 正斜线(/):可以用正斜线指定时间的间隔频率,同时正斜线可以和星号一起使用,例如*/10,表示每十分钟执行一次。
实例:每天下午17:30分关闭firewalld防火墙,可以根据自己时间来设定
30 17 * * * systemctl stop firewalld
每隔3天删除/media目录中后缀名为“*.txt”文件,从当日开始算
* * */3 * * rm -rf /media/*.txt
每周日晚上的22:00将/etc/passswd文件复制到/mnt目录中
00 22 * * 7 cp /etc/passwd /mnt/
10、split:分割文件为不同的小片段
split tar.gz cm-11.tar.gz #他会切割多分小的文件,结尾会有顺序的标记
-d "参数指定生成的分割包后缀为数字的形式
-a x来设定序列的长度(默认值是2),这里设定序列的长度为1
split -b 4000M -d -a 1 cm-11.tar.gz cm-11.tar.gz #指定每个切割的小文件大小是4000M
在合并是cat 名称* >> 合并后的名称
11、paste:按行合并文件内容
paster 文件1 文件2 #将文件2的每行内容写入到文件1的每行后面
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @
-s 将每个文件合并成行而不是按行粘贴
paster a.txt b.txt
12、vim、vi 编辑文件内容
在vi/vim编辑界面中可以使用三种不同的工作模式,即命令模式、输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同
命令模式:使用vi/vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,字符串查找,还可以对文件内容进行复制、粘贴、删除等操作
输入模式:在输入模式下,该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容,类似于在 Windows 系统的文档中输入内容。
使 vi/vim 进入输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等指令
处于输入模式时,vi编辑器的最后一行会出现”—INSERT--”的状态提示信息。当编辑文件完成后按 Esc 键即可返回命令模式
末行模式:末行模式用于对文件中的指定内容执行保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。
切换到末行模式的方法是在命令模式状态下按“:”键,此时vi窗口的左下方出现一个“:”符号
1)模式切换
a:在当前光标位置之后插入内容
A:在光标所在行的末尾(行尾)插入内容
i:在当前光标位置之前插入内容
l:在光标所在行的后面插入一个新行
o:在光标所在行的后面插入一个新行
O:在光标所在行的前面插入一个新行
2)行内快速跳转
按“home”键或“^”键,数字0键将光标快速跳转到本行的行首
按”End”键或”$”键将光标快速跳转到本行的行尾
3)行间快速跳转
使用按键命令1G或者gg可跳转到文件内容的首行
使用按键命令G可跳转到文件的最后一行
使用按键命令#G可跳转到文件中的第#行(“#”号用具体数字代替)
在末行模式中输入 “:set nu”命令即可显示行号,”:set nonu”取消行号
4)复制、粘贴和删除
删除操作
按x键或Delete键删除光标处的单个字符
按键命令“dd“删除光标当前所在的行,使用#dd的形式还可以删除从光标处开始的#行内容,#用数字来代替
按键命令d^删除当前光标之前到行首的所有字符
按键命令d$删除当前光标处到行尾的所有字符
复制和粘贴操作
按键命令yy复制当前行整行的完整内容,使用#yy的形式还可以复制光标处开始的#行内容(#行用数字代替)
按p键将缓冲区中的内容粘贴到光标位置处之后,按P键则会粘贴到光标位置处之前
5)查找文件内容、撤销编辑
在命令模式下按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按?键向前查找)完成查找后按n、N键在不同的查找结果中进行选择
按键u、U对操作撤销,u键用于取消最近一次的操作,可以多次重复按u键恢复已进行的多步操作,U键命令用于取消对当前行所做的所有编辑
在命令模式下,保存退出vi编辑器时,使用按键命令ZZ
6)末行模式中的基本操作
在命令模式中按”:”键可以切换到末行模式,vi编辑器的最后一行中将显示“:”提示符,用户可以在该提示符后输入特定的末行命令,完成如保存文件、退出编辑器、打开新文件、读取其他文件内容及字符串替换等丰富的功能操作。
1、保存文件及退出vi编辑器
对文件内容进行修改并确认后,可以执行“:w”进行保存,但不退出vi编辑器。
:w
另存为其它文件,需要指定新的文件名,必要时还可以指定文件路径。把当前编辑的文件另存到/root目录下,文件名为newfile
:w /root/newfile
未修改退出,若文件内容已经修改却没有保存,则q命令将无法成功退出。这时候需要使用q!命令强行不保存退出
保存并退出
:wq或 :x!
2、打开新文件或读入其他文件内容
打开新的文件进行编辑。在当前vi编辑器中,执行“:e 新的文件”形式的末行命令可以编辑(edit)新文件。
在当前文件中读入其他文件内容,执行 “:r 其他文件“形式的末行命令可以读入(read)其他文件中的内容,并将其复制到当前光标所在的位置。
3、替换文件内容
在vi编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如下:
:[替换范围] sub/旧的内容/新的内容[/g]
注:在上述替换格式中,主要关键字为sub,也可以简写为s,替换范围是可选部分,默认时只对当前行的内容进行替换,一般可以表示为以下两种形式。
% 在整个文件内容中进行查找并替换
n,m在指定行数范围内的文件内容中进行查找并替换
替换格式中末尾的“/g”部分也是可选项内容,表示对替换范围内每一行的所有匹配内容都进行替换,省略“/g”时将只替换每行中的第一个匹配内容。
命令 | 功能 |
:s /old/new | 将当前行中查找到的第一个字符“old” 串替换为“new” |
:s /old/new/g | 将当前行中查找到的所有字符串“old” 替换为“new” |
:n,m s/old/new/g | 在行号“n,m”范围内替换所有的字符串“old”为“new” |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
vim 文件名 #可以试试上面的指令
三、用户与用户组创建修改命令
用户与用户组保存的文件/etc/passwd与/etc/group
1、useradd创建账户
useradd命令,添加用户账户
useradd [选项]... 用户名
常用命令选项
-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
说明:
字段1:用户帐号的名称
字段2:用户密码字串或者密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息
2、passwd为用户账号设置密码
passwd [选项]... 用户名
常用命令选项
-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定)
-u:解锁用户帐号
注:普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性(如不要直接使用英文单词,长度保持在6位以上),否则系统可能拒绝进行设置。
交互式测试密码,需要输入两遍密码
非交互式测试密码:
echo 密码 | passwd --stdin username 或者 echo"用户名称:密码"| chpasswd
查看密码存放文件:
说明:
字段1:用户帐号的名称
字段2:加密的密码字串信息,说明,$1$:加密算法是md5。$6$:加密算法是sha512
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
说明:上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数。
3、usermod修改用户信息
usermod命令,修改用户账户
usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s 例如: usermod -u1010 -s /sbin/nologin lbc01
说明 /sbin/nologin表示无法登陆,/bin/bash表示此用户可以登陆系统环境
usermod -l lbc02 lbc01 #先写新的用户名称在写现在要改的名称
4、userdel删除用户账号
userdel [-r] 用户名
添加 -r 选项时:表示连用户的宿主目录一并删除
可以查看加-r会将用户的存储目录也删除了
用户的基本文件:
添加一个新的用户账号后useradd命令会在用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel,基本上都是隐藏文件,
主要的用户初始配置文件
~/.bash_profile:用户每次登录时执行 局部配置文件 /etc/profile全局配置文件
~/.bashrc:每次进入新的Bash环境时执行(当然也包括登录系统)
~/.bash_logout:用户每次退出登录时执行
充分理解这些文件的作用,便于我们安排一些自动运行的后台管理任务,例如:.bashrc文件中默认设置了一些命令别名。
默认情况下,用户宿主目录下的初始配置文件只对当前用户有效,而全局配置文件对所有用户有效。
5、groupadd创建用户组
groupadd命令:添加组账号
groupadd [-g GID] 组帐号名
说明: 用户组名称: 密码占位符x:用户组的gid
用户和组的关系: 组中可以没有用户、 也可以有一个或者多个用户。 用户只有一个主要组(基本组),可以同时属于多个组,但是除了主要组以外的其他组称为附属组。
组的分类:从用户的角度分的,分为:
主要组: 用户的默认组,也就是gid所标识的组
附属组:
与用户帐号文件相类似,组账号相关的配置文件也有两个:
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息(但很少使用到)
说明:
/etc/gshadow文件的应用极少,仅作简单介绍即可
group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔
gpasswd命令:设置组帐号密码(极少用)、添加/删除组成员
gpasswd [选项]... 组帐号名
命令选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
groupdel:删除组账号
6、id查询用户身份标识
groups:查询用户所属的组
users、w 、who:查询已登录到主机的用户信息
四、文件权限设置
介绍:在linux文件系统的安全模型中,系统中的文件或目录具有两个属性:访问权限和文件所有者,简称权限和归属。其中,访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用户账户)、属组(拥有该文件的组账号),Linux操作系统根据文件或目录的访问权限和归属来对用户访问数据的过程进行控制。
查看目录或文件的权限属性:
说明:
“-rw-r--r--”部分的第1个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等,其余部分指定了文件的访问权限。
第2~4个字符表示该文件的属主用户(user)对该文件的访问权限。
第5~7个字符表示该文件的属组内各成员用户(group)对该文件的访问权限。
第8~10个字符表示其他任何用户(other)对该文件的访问权限。
第11个字符这里的“.”与selinux有关,后面会讲解。
在表示属主、属组或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符:
r 可读 ;w 可写 ;x 可执行 ;- 无权限
r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0
权限 | 数字表示 | 对文件的影响 | 对目录的影响 |
r (读取) | 4 | 可读取文件中的内容 | 可以列出目录的内容(文件或子目录) |
w (写入) | 2 | 可以修改文件的内容 | 可以创建或删除、移动目录中的任一文件、子目录 |
x (可执行) | 1 | 可以作为命令或脚本执行文件 | 可以使用cd切换进此目录,即可以进入或通过目录, |
1、chmod修改文件的权限(即读、写、执行)
使用chmod命令设置文件或目录的权限时,基本的命令格式如下:
格式1:chmod [ugoa] [+-=] [rwx] 文件或目录...
说明:
u、g、o、a 分别表示属主、属组、其他用户、所有用户
+、-、= 分别表示增加、去除、设置权限
格式2:chmod nnn 文件或目录...
说明:nnn为需要设置的具体权限值,如755、644等
格式3:chmod [选项] --reference=参考文件 文件...
常用命令选项
-R:递归修改指定目录下所有子目录及文件的权限,若不指定-R选项,chmod命令将只改变所指定目录本身的权限。
举例说明:
可以加 -R 递归执行赋权,通常用于整个目录修改权限
2、chown修改文件或目录的属主或属组
格式:chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
chown [选项] --reference=参考文件 文件...
常用命令选项
-R:递归修改指定目录下所有文件、子目录的归属
3、chgrp只单独修改文件或目录的属组
chgrp 属组 文件或目录
4、setfacl 给指定的用户拥有对文件或目录有指定的权限(文件acl权限)
ACL权限的作用:
1、可以针对用户来设置权限 2、可以针对用户组来设置权限 3、子文件/目录继承父目录的权限
使用:我们可以使用setfacl和getfacl命令来设置或查看文件/目录的acl权限。
setfacl命令,用来设置文件或目录的acl权限
命令格式及常用选项:
setfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名
-m :配置后面的 acl 参数给文件/目录使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-k :移除默认的 ACL 参数;
-R :递归配置 acl;
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值;
getfacl命令,查看文件或目录的acl权限
命令格式:
getfacl 文件/目录名
下面我们通过一些示例来演示 ACL 权限的基本用法。
针对用户来设置权限:
案例:
设置acl权限:
也可以看到后面有一个+号的标志表示有acl权限
多出了一些信息,其中比较重要的是user:lbclbc:rwx,就是它让用户 lbclbc具有了读写执行的权限。
针对用户组来设置权限,和针对用户的设置几乎一样,只是把小写的 u 换成小写的 g 就行了。
子文件/目录继承父目录的权限,它能让我们创建的子文件或者子文件夹继承父文件夹的权限设置!
删除acl权限:
-x 选项来删除指定用户或组的 ACL 权限,还可以通过 -b 选项来清除文件和目录上所有的 ACL 权限。
使用-x删除后发现这个+号还是在的,需要使用-b才能清楚
-b 选项直接清除了文件上的所有 ACL 权限
5、umask设置环境的umask值,即创建目录或文件的初始权限,默认是0022
-s可以查看创建的目录初始权限是什么
6、chattr设置文件或目录的特殊权限
参数:
a:只能以追加模式打开以进行写入
A:访问时不会修改其 atime 记录
c:写入此文件会在将数据存储到磁盘之前压缩数据,读取时会自动解压返回正常数据
C:文件不会受到写时复制更新的影响
d:文件不能成为dump程序的备份目标
D:目录被修改时,这些更改会同步写入磁盘
e:该文件正在使用范围来映射磁盘上的块。不能使用 chattr 删除它
i:无法修改,无法删除或重命名,无法创建指向此文件的链接,也无法写入或新增内容
j:如果文件系统在mount时,使用“data=ordered”或“data=writeback”,写入文件本身之前会将其所有数据写入journal日志,当使用“data=journal”,此属性无效
s:文件被删除时,它的块被归零并写回到磁盘,即硬盘空间被全部收回
S:文件被修改时,这些更改会同步写入磁盘
t:文件系统支持尾部合并(tail-merging)
T:目录将被视为目录层次结构的顶部
u:文件被删除时,其内容会仍存在磁盘中,后面可以请求恢复
可以看到可以通过 + - =
来增加,删除,设置文件的特殊权限
例如:将aaa这个目录禁止创建文件包括root用户 : chattr +i aaa
删除这个特殊权限 -i 就好, +:表示加某个权限,-:表示去除某个特殊的权限
除了这些属性权限外,使用中还有[-RVf]
,其意思分别为:
-
R:遍历目录下的所有文件
-
V:详细说明 chattr 的输出并打印程序版本
-
f:强制执行,忽略大多数错误
7、lsattr查看特殊权限
-R :递归地处理指定目录下的所有文件及子目录
-V :显示版本信息
-a: 列出目录中的所有文件,包括隐藏文件
-d :显示目录名称,而非其内容
-l: 指出要显示设备的逻辑名称
-v: 显示文件或目录版本
还有一个情况:
有的文件或目录后面有个点“ . ” : 这个表示环境的selinux没有关闭,将selinux关闭后,后面在创建文件就没有了,但之前创建的就没办法去掉这个了,除非将这个文件删除创建
五、磁盘管理与挂载
fdisk可以配置MBR格式; gdisk配置gpt格式, parted可以自己选择。
fdisk分区的时候每个分区的大小无法超过2T,GPT格式,打破了MBR的限制,可以设置多达128个分区,分区的大小根据操作系统的不同有所变化,但是都突破了2T空间的限制。支持高达 18EB (1EB=1024PB,1PB=1024TB) 的卷大小。
1、fdisk查看和创建管理磁盘
说明:
Device:分区的设备文件名称。
Boot:是否是引导分区,是则有“*”标识。
Start:该分区在硬盘中的起始位置(柱面数)。
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节。
Id:分区类型的ID标记号,对于EXT3分区为83,LVM分区为8e,swap分区为82
System:分区类型
注意分区类型的概念在windows中是没有的,分区类型与文件系统类型应一致,这样管理磁盘文件系统时才不容易引起混乱
创建分区:
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
交互模式中的常用指令
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区 -- p:表示创建主分区、e表示逻辑分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区设置并退出
可以按照上面的指令创建分区
2、parted创建分区已经测试磁盘格式类型
建议使用这种分区先设置磁盘的类型为GPT在创建分区,这样不会有分区的个数和每个分区的大小限制
parted 磁盘名称
mklabel 设置类型
查看(fdisk -l )
在交互式里面创建分区mkpart创建分区
在终端中parted直接创建分区
创建分区:parted -s /dev/sd<盘符> mkpart primary 1g 300g ``// -s指定磁盘 创建一个主分区 从1g开始到300g结束 ,即这个分区的大小就是 结束位减去开始的位置(300G-1G=299G理论上大小但实际格式化文件系统后没有这么大)
说明:#创建1G容量的分区pname为分区名必须添加,这里不能直接添加文件系统类型,后面是起始和结束位置
结束位置减去起始位置的值得到的就是此分区的大小
删除分区:parted -s /dev/sd<盘符> rm 3 // 3代表第几个分区,这里注意不要删除/根分区或BIOS分区, 一块磁盘情况下1,2一般有根/分区
3、mkfs格式化磁盘
mkfs.ext4 -F /dev/sd<盘符> // 其他的都格式化成ext4
mkfs.xfs -F /dev/sd<盘符> // 其他的都格式化成xfs
4、交换分区的设置
mkswap:创建Linux交换分区。
swapon:启用交换分区。
swapoff:关闭交换分区。
5、df 查看系统磁盘挂载信息
df -h
-h: 以KB、MB、GB的单位来显示,可读性高(最常用)
-T: 显示文件系统类型
-i: 显示inode信息
6、mount/umount挂载和卸载
语法: mount 分区名称 要挂载到的目录路径名称
挂载例如: mount /dev/sdb1 /mnt
卸载: umount /dev/sdb1(挂载的磁盘分区名称)或者 umount /mnt(也就是挂载的目录名称)
7、dd:转换或复制文件
dd if=源文件路径名称 of=目标文件 #dd可以用作整个系统磁盘的克隆
如: dd if=/dev/sda of=/dev/sdb
8、blkid 查看磁盘分区的UUID
blkid /dev/vda1
9、lsblk树形的列出磁盘分区的情况
磁盘阵列
命令列表:
Scan扫描 pvscan vgscan lvscan
Create建立 pvcreate vgcreate lvcreate
Display显示 pvdisplay vgdisplay lvdisplay
Remove删除 pvremove vgremove删除空的卷组 lvremove
Extend扩展 vgextend 把PV加入VG,动态扩展卷组 lvextend
创建逻辑卷:
逻辑卷:pv vg lv
pvcreate 磁盘/dev/sdb :将磁盘或分区添加到pv中
vgcreate vg00 /dev/sdb :创建一个名为vg00 的逻辑卷大小为/dev/sdb的大小
lvcreate -L 100M -n lv00 vg00 :创建一个名为lv00 大小为100M的逻辑分区,大小是重vg00的逻辑卷中分配的
lvextend -L +200M /dev/vg00/lv00 扩展逻辑分区大小 xfs_growfs /dev/vg00/lv00 :刷新
lvremov 删除
raid阵列:
mdadm -C /dev/md5 -l5 -n4 -x1 /dev/sd[b-f]
说明:-C创建raid5 md5为名字 l5一共5块磁盘 -n使用4块 -x 预留一块备用
执行mdadm --detail /dev/md0 命令查看RAID的详细信息: 或/proce/mdstat
执行 mdadm -Q /dev/md0 //-Q用来查询设备信息。
mkfs.xfs /dev/md5
扩容:mdadm --add /dev/md5 /dev/sdg 执行xfs_growfs /dev/md5即可
将阵列修改为5块 mdadm --grow /dev/md5 -n5
删除磁盘 mdadm --manage /dev/md5 --remove /dev/sdd
3)停止raid设备
# mdadm --stop /dev/md0
4)删除raid中的所有磁盘
# mdadm --misc --zero-superblock /dev/sd[b-h]
其他的磁盘操作命令,感兴趣的可以去查看具体的信息
fsck:检查并修复Linux文件系统
dumpe2fs:导出ext2/ext3/ext4文件系统信息
dumpe:xt2/3/4文件系统备份工具
partprobe:更新内核的硬盘分区表信息
e2fsck:检查ext2/ext3/ext4类型文件系统
sync:将内存缓冲区内的数据写入磁盘
resize2fs:调整ext2/ext3/ext4文件系统大小
六、网络操作
1、nmap:网络扫描命令,也是漏洞扫描
nmap 10.12.108.12(这里扫描的是本机的IP)可以查看目标的机器在运行那些服务
也可以快速扫描多个机器 #加上-vv表示输出详细信息
nmap <target ip1 address> <target ip2 address>
nmap 14.215.177.39 172.20.10.2
# -p 扫描我们指定的端口 : nmap -p (range) <target IP>
namp -p 3389,20-200 10.12.108.12
#扫描除了某个ip外的所有子网主机 : nmap 10.12.108.1/24 -exclude 10.12.108.12
#扫描除了某个文件里面的ip外的所有子网主机 : nmap 10.12.108.1/24 -excludefile ip.txt
#显示扫描的所有主机的列表: nmap -sL 192.168.227.1/24
2、mail:发送和接收邮件
1)无邮件正文
mail -s “主题” 收件地址
% mail -s “测试” xxxx@xx.com
2) 有邮件正文
#mail -s “主题” 收件地址< 文件(邮件正文.txt)
mail -s “邮件主题” xxxx@xx.com < /data/findyou.txt
#echo “邮件正文” | mail -s 邮件主题 收件地址
echo “邮件正文内容” | mail -s “邮件主题” xxxx@xx.com
#cat 邮件正文.txt | mail -s 邮件主题 收件地址
cat /data/youjian.txt | mail -s “邮件主题” xxxx@xx.com
3)带附件
#mail -s “主题” 收件地址 -a 附件 < 文件(邮件正文.txt)
mail -s “邮件主题” xxxx@xx.com -a /data/youjian.tar.gz < /data/youjian.tx
3、nslookup:交互式查询互联网DNS服务器的命令
语法格式:nslookup –option1 –option2 host-to-find dns-server
nslookup baidu.com
4、traceroute:追踪数据传输路由状况
traceroute www.baidu.com
5、tcpdump:命令行的抓包工具。
语法: tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
-c参数指定要监听的数据包数量,
-w参数指定将监听到的数据包写入文件中保存
tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员root
不带参数的tcpdump会收集网络中所有的信息包头,数据量巨大,必须过滤。
数据过滤
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息。
-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:tcpdump -i eth0 只显示通过eth0接口上的所有报头。
例如: 用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head -20
查看某个ip的发送和接受的数据包:
七、系统管理与性能监控的命令
下面有些命令包名称是 sysstat 即 yum -y install sysstat*
1、chkconfig:管理Linux系统开机启动项
说明:
0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户状态,没有NFS支持。
3:完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5:登陆后进入图形GUI模式,XWindow系统。
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。
使用语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
--add增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>指定读系统服务要在哪一个执行等级中开启或关毕。
使用范例:
chkconfig --list 列出所有的系统服务
chkconfig --add httpd 将httpd添加为受chkconfig管理的服务:
chkconfig --del httpd 删除httpd服务
chkconfig --level 35 httpd on 在级别3和5上设定服务为“on”,开机自动启动也是配置这个
chkconfig --level 01246 httpd off 在其他级别上设为off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示:
#chkconfig --list httpd 查看httpd服务是否是开机自启
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
2、vmstat:虚拟内存统计
vmstat 2 1
第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数
说明:
r: 等待执行的任务数(也就是正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。)
b: 等待IO的进程数量 swpd: 正在使用虚拟的内存大小,单位k free: 空闲内存大小
buff: 已用的buff大小,对块设备的读写进行缓冲 cache: 已用的cache大小,文件系统的cache
si: 每秒从交换区写入内存的大小(单位:kb/s) so: 每秒从内存写到交换区的大小
bi: 每秒读取的块数(读磁盘) bo: 每秒写入的块数(写磁盘)
in: 每秒中断数,包括时钟中断 cs: 每秒上下文切换数
us:用户进程执行消耗cpu时间(user time) sy: 系统进程消耗cpu时间(system time)
id: 空闲时间(包括IO等待时间) wa: 等待IO时间
动态监控输出每两秒输出一次
参数:
-a:显示活跃和非活跃内存 -m:显示slabinfo
-n:只在开始时显示一次各字段名称 -s:显示内存相关统计信息及多种系统活动数量
delay:刷新时间间隔。如果不指定,只显示一条结果
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这 时刷新次数为无穷。
-d:显示各个磁盘相关统计信息。
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息 -p:显示指定磁盘分区统计信息 -D:显示磁盘总体信息
3、mpstat:显示各个可用CPU的状态统计
用法:mpstat [-P {|ALL}] [internal [count]]
参数解释:
-
-P: 指定要监控哪个CPU,范围是[0 ~ n-1], ALL表示监控所有CPU都监控
-
internal: 相邻两次采样的间隔时间
-
count: 采样次数。
例如:显示出所有的cpu的使用信息,并且每个三秒更新一次
如图查看看到一共有4哥cpu分别是0、1、2、3,all表示整体的使用信息
各列的含义:
%user: 表示用户态所使用 CPU 的百分比。
%nice: 表示使用 nice 命令对进程进行降级时 CPU 的百分比。
%sys: 表示内核进程使用的 CPU 百分比。
%iowait: 表示等待进行 I/O 所使用的 CPU 时间百分比。
%irq: 表示用于处理系统中断的 CPU 百分比。
%soft: 表示用于软件中断的 CPU 百分比。
%steal:虚拟机强制CPU等待的时间百分比。
%guest: 虚拟机占用CPU时间的百分比。
%idle: CPU 的空闲时间的百分比。
4、iostat:统计系统IO
用法:iostat [选项] [<时间间隔>] [<次数>]
参数:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
查看cpu与磁盘的信息,不加参数默认是查看磁盘信息
cpu输出说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
磁盘输出说明
device:磁盘名称
tps:每秒钟发送到的I/O请求数.
kB_read/s:每秒读取的block数.
kB_wrtn/s:每秒写入的block数.
kB_read:读入的block总数.
kB_wrtn:写入的block总数.
5、sar:全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据
语法:sar [ options ] [ <interval> [ <count> ] ]
ioptions:命令行选项 nterval: 采样周期,单位是秒 count:采样次数,默认值是连续采样;
参数:
-A:所有报告的总和
-u:输出整体CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
输出项说明:
CPU:all表示统计信息为所有CPU的平均值。
%usr:CPU在用户态执行进程的时间百分比。
%nice:CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比。
%system:CPU处在内核态执行进程的时间百分比。
%iowait:CPU用于等待I/O操作占用CPU总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。
%idle:CPU空闲时间百分比。
若 %iowait 的值过高,表示硬盘存在I/O瓶颈
若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU
6、ipcs:用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息
ipcs -a命令可以查看当前使用的共享内存、消息队列及信号量所有信息
ipcs -p命令可以得到与共享内存、消息队列相关进程之间的消息
ipcs -u命令可以查看各个资源的使用总结信息,其中可以看到使用的信号量集的个数、信号量的个数,以及消息队列中当前使用的消息个数总数、占用的空间字节数。
ipcs -l命令可以查看各个资源的系统限制信息,可以看到系统允许的最大信号量集及信号量个数限制、最大的消息队列中消息个数等信息。
7、ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识
ipcrm 命令 移除一个消息对象。或者共享内存段,或者一个信号集,同时会将与ipc对象相关链的数据也一起移除。当然,只有超级管理员,或者ipc对象的创建者才有这项权利啦
ipcrm用法
ipcrm -M shmkey 移除用shmkey创建的共享内存段
ipcrm -m shmid 移除用shmid标识的共享内存段
ipcrm -Q msgkey 移除用msqkey创建的消息队列
ipcrm -q msqid 移除用msqid标识的消息队列
ipcrm -S semkey 移除用semkey创建的信号
ipcrm -s semid 移除用semid标识的信号
8、strace:用于诊断、调试Linux用户空间跟踪器
strace监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
例如查看指定的某个进程的pid
strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489
-
-tt:在每行输出的前面,显示毫秒级别的时间
-
-T:显示每次系统调用所花费的时间
-
-v:对于某些相关调用,把完整的环境变量,文件 stat 结构等打出来。
-
-f:跟踪目标进程,以及目标进程创建的所有子进程
-
-e:控制要跟踪的事件和跟踪行为,比如指定要跟踪的系统调用名称
-
-o:把 strace 的输出单独写到指定的文件
-
-s:当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是 32 个字节
-
-p:指定要跟踪的进程 pid,要同时跟踪多个 pid,重复多次 -p 选项即可。
可以通过ps先查看服务的pid在根据这个pid进行查看
八、内置的其他命令
使用的方法可以在上面查看,或者可以搜索一下进行了解
echo:打印变量,或直接输出指定的字符串
printf:将结果格式化输出到标准输出。
rpm:管理rpm包的命令。
yum:自动化简单化地管理rpm包的命令。
watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias:设置系统别名。
unalias:取消系统别名。
date:查看或设置系统时间。
clear:清除屏幕,简称清屏。
history:查看命令执行的历史纪录。
eject:弹出光驱。
time:计算命令执行时间。 time ls
nc:功能强大的网络工具。 可以用于数据文件的传输
xargs:将标准输入转换成命令行参数。
exec:调用并执行指令的命令。
export:设置或者显示环境变量。
unset:删除变量或函数。
bc:命令行科学计算器。
帮助命令:help或者man 可以帮助我们要如何使用这些命令以及有哪些参数
用法: 命令 --help
man 命令
九、常用快捷键: 如果是mac电脑就将ctrl改为control
Ctrl +c 强制终止当前命令
Ctrl + l 清屏,等价clear命令
Ctrl +a 光标移动到行首
Ctrl + e 光标移动到行末
Ctrl + u 快速删除当前光标处之前的所有字符内容
Ctrl + z 把命令放入后台,但是并未终止命令
Ctrl + r 在历史命令中搜索
Ctrl + k 快速删除从当前光标处到行尾的所有字符内容
Ctrl + s 锁屏可以输入但是前端看不见
Ctrl + q 解锁屏幕
Tab键:可以将输入的不完整命令或文件、目录名自动补齐。
反斜杠”\”:如果输入的一行内容太长,终端会自动换行。有时候为了显示美观及方便查看,也可以插入”\”符号强制换行,在下一行出现的”>”提示符后可以继续输入内容,作为上一行命令的延续。