Linux管理磁盘
- 查看当前磁盘使用情况:
df -h fdisk -l
(查看所有的硬盘) 服务器添加硬盘:在系统设置添加
分区:
fdisk /dev/sdb
(sdb, sdc, sde)
指令:m
(帮助信息),n
(新加分区)
第二步: 指令p (主分区)
第三步:写入磁盘w
使用:挂载:
mount /dev/sdb1 /data/
挂载到/data目录下,挂载成功如下可以挂载到多个设备
mount /dev/cdrom /mnt
Vi命令
所有的指令都是在指令行下输入的,不是在编辑模式下进行的!
- 复制多行/单行:输入
yy
,然后按k
- 删除某一行:按
dd
; 删除某个字符: 光标选中某个字符,按x
- 删错某个字符/某一行想返回:
u
替换某个文件所有内容:
%s/failymao/momo/g
(ESC后:替换文件中所有【g表示所有】falilymao的内容为momo- 替换某一行某个内容:
%s/momo/failymao/1
(替换最后一行) - 在首行添加某个字符或者空白字符:
%s/my/ my/g
- 第二种方法(my后面添加空格) :
%s/my/& /
- 首行添加:
%s/^/& /
(^正则首行,&表示追加) - 末尾行添加:
%s/$/& hello
($表示末尾) - 匹配行前插入空白行:某个字符下按 O(大写),行后插入空白行按o(小写)
- 第二种方法(my后面添加空格) :
- 跳转:
- 跳转最后一个字符:
GG
- 跳转第一个字符:
gg
- 查找:
/my
- 删除匹配的项目之后的所有内容:
dG
- 跳转最后一个字符:
sed命令
- 替换某个文件所有的内容:
sed 's/momo/failymao/g' test.txt
(查看替换,s表示查找)sed -i 's/momo/failymao/g' test.txt
替换(加参数 -i 表示写入)
- 匹配行前插入:
sed -i '/IS/i 123456' test.txt
- 匹配行后插入:
sed -i '/IS/a 123456' test.txt
(a 表示after) - 修改某个配置文件信息:
sed '/SELINUX/s/disabled/123456/g' /etc/selinux/config
(修改 /etc/selinux/config配置文件中SELTINUX后面的disabled为123456)
find命令
- 查找当前目录某个文件:
*find . -name "test.txt"
- 查找根目录某个文件:
find / -name "test.txt"
- 查找以固定格式结尾的所有文件:
find . name "*.py"
- 查找以固定格式结尾的目录或者文件:
find . name "*.py" -typt d
(d表示类型目录) - 查找以固定格式结尾的目录或者文件:
find . name "*.py" -typt d -mtime +1 -size +10M
(d表示类型为目录,-mtime +1 表示一天以上,-1表示1天之内,-size表示大小为10M的文件目录) - 查找文件包含有某些内容的文件:
find /tmp/ -name "*" -type f -name "momo"
- 查找的文件进行拷贝:
find /root/ -name "*" -type f -name "*server*" -exec cp {}/samba \;
(查找/root目录下,查找以文件中包含有server的文件,并(-exec)复制(cp)到 ({}接目录)/samba目录下,(;)固定格式) - 打包:
find /root/ -name "*.py" -exec tar czf zip_python.tar.gz {} \;
(将查找/root目录下以py结尾的文件并在当前目录下打包) - 删除文件:
find /samba -name "*" -type f -name "*server*" -exec rm -rf {} \;
(删除/samba下,包含文件名中含有“server”的所有的文件!) - 删除文件
==
等同于exec:find /root/ -name "*.py" | xargs rm -rf {} \;
(管道符| xargs 等同于 -exec)
管道符grep
- 过滤文件:前面的结果作为后面的输入:
cat test.txt |grep "hou"
(查看text.txt文件中有“hou”的内容)== grep "hou" test.txt
- 排除文件:
cat /etc/passwd |grep -v "mysql"
(过滤掉/etc/passwd中含有“mysql”的内容,打印出结果!) - 打印过滤的固定的某一行:
ifconfig |grep "net" |awk '{print $1}'
(打印ifconfig命令中含有net的字符的,第一列内容) - grep 正则
grep '^10' text.txt
匹配以10`开头grep '10$' text.txt
匹配以10结尾grep "[0-9][0-9][0-9] " test.txt
匹配三位数的任意组成的数grep "[a-z]" test.txt
匹配 包含有a-z字母的字段(小写)grep "^112$" text.txt
匹配以112开头结尾的(grep -E "[0-9]{1,3}\."){3}
匹配0-9的任意数字1-3次,. 表示匹配.,{3}出现三次
查看内存,ip信息
- 查看内存信息:
free -m
- 查看cup:
top
- 查看httpd:
ps -ef |grep httpd
- 查看tcp端口:
netstat -tnl
- 查看udp:
netstat -nul
- 查看当前目录文件大小:
du -sh
特殊指令合计
- 其他应用实例:输出文本数据中最大最小的数
112
1223
444 334
444 11 22 444 578 23123
1234 3443 234553 122 908 123445
12 14 567 456 23478
- 执行 :
cat number.txt |sed 's/ /\n/g' |grep -v "^$"|sort -nr |sed -n '1p;$p'
- 指令详解:
1)sed 's/ /\n/g'
将所有空格转化成换行
2)|grep -v "^$"
把开头结尾都是空格的组 排除掉, -v 表示排除
3)|sort -nr
从大到小排序
4)|sed -n '1p;$p' -n
表示多行打印,1p
表示第一个,$p
表示最后一个
awk
指定打印匹配的某一行
cat test.txt |awk '{print $4}'
--->打印匹配的第四列 ($NF表示最后一列)cat /etc/passwd |awk -F: '{print $1}'
---> -F表示format,自定义格式,打印第一列-
示例 ifconfig 匹配出IP地址
- 方法1:
ifconfig eth1|grep "broadcast" |awk '{print $2}'|sed 's/addr://g'
打印ip 地址 - 方法2:
ifconfig eth1|grep "broadcase"|awk '{print $2}'|awk -F: '{print $2}'
- 方法1:
df -h |grep "/$" |awk '{print $5}'|sed 's/%//g'
打印硬盘使用率 ,去掉百分号
linux指令的熟练度决定了你是否能成为一个运维届的老司机,能否开五菱宏光顺利上秋名山!切记多练!多练!多练!