shell
shell
-
怎么查看Linux服务器的负载,及判断哪些操作引起的负载过高
-
使用top命令查看负载,在top下按“1”查看CPU核心数量;
-
shift+"c"按cpu使用率大小排序;
-
shif+"p"按内存使用率高低排序;
-
top -H -p pid
命令查看对应进程是哪个线程占用CPU过高(eg:8308)
-
-
Linux 程序写文件时 rm 能否成功。rm -f呢。rm -f之后,正在写文件的程序会怎样 报什么错。
每个文件都有 2 个 link 计数器 —— i_count 和 i_nlink。i_count 的意义是当前使用者的数量,i_nlink 的意义是介质连接的数量;或者可以理解为 i_count 是内存引用计数器,i_nlink 是硬盘引用计数器。再换句话说,当文件被某个进程引用时,i_count 就会增加;当创建文件的硬连接的时候,i_nlink 就会增加。
当用户执行 rm 操作后,ls 或者其他文件管理命令不再能够找到这个文件,但是进程却依然在继续正常执行,依然能够从文件中正确的读取内容。这是因为,
rm
操作只是将 i_nlink 置为 0 了;由于文件被进程引用的缘故,i_count 不为 0,所以系统没有真正删除这个文件。i_nlink 是文件删除的充分条件,而 i_count 才是文件删除的必要条件。 -
find查找某个命令后缀:
find ./ -name "*.txt"
-
如何查看端口占用
lsof -i:端口号
netstat -tunlp | grep 端口号
-
如何查看文件操作权限,如何更改文件权限。
一、查看文件夹或文件的可读可写权限:
ls -l 文件夹
解析“drwxrwxrwx",这个权限说明一共10位。
第一位代表文件类型,有两个数值:“d”和“-”,“d”代表目录,“-”代表非目录。后面9位可以拆分为3组来看,分别对应不同用户,2-4位代表所有者user的权限说明,5-7位代表组群group的权限说明,8-10位代表其他人other的权限说明。
r代表可读权限,w代表可写权限,x代表可执行权限。"drwxrwxrwx”表示所有用户都对这个目录有可读可写可执行权限。
二、修改权限
chmod o w xxx.xxx #表示给其他人授予写xxx.xxx这个文件的权限 chmod go-rw xxx.xxx #表示删除xxx.xxx中组群和其他人的读和写的权限
- u 代表所有者(user)
- g 代表所有者所在的组群(group)
- o 代表其他人,但不是u和g (other)
- a 代表全部的人,也就是包括u,g和o
r、w、x也有对应的数字:r—4;w—2;x—1。
sudo chmod -R 777 /var/www
这行命令就是给/var/www
这个目录赋予所有人可读可写可执行权限,
0 代表没有任何权限 -
查询tcp连接处理CLOSE_WAIT的状态的数目
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn
-
查询一个文件内出现重复最多的数字
cat words.txt | sort | uniq -c | sort -k1,1nr | head -10
sort: 对单词进行排序
uniq -c: 显示唯一的行,并在每行行首加上本行在文件中出现的次数
sort -k1,1nr: 按照第一个字段,数值排序,且为逆序
head -10: 取前10行数据
-
查询一个文件的行数
wc [clw] file1 file2
- c 统计字节数。
- l 统计行数。
- w 统计字数
-
查看文件打开的句柄
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
-
正则表达式
Email地址:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:
^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$
18位身份证号码(数字、字母x结尾):
^((\d{18})|([0-9x]{18})|([0-9X]{18}))$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):
^[a-zA-Z]\w{5,17}$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式:
^\d{4}-\d{1,2}-\d{1,2}
有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":
^[1-9][0-9]*$
中文字符的正则表达式:
[\u4e00-\u9fa5]
空白行的正则表达式:
\n\s*\r (可以用来删除空白行)
HTML标记的正则表达式:
<(\S*?)[^>]*>.*?</\1>|<.*? />
首尾空白字符的正则表达式:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等
^\s*|\s*$或(^\s*)|(\s*$)
IP地址:
((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))