linux常用命令
1. ls
ls -al 所有文件,包括隐藏文件,显示文件的详细信息
ls -d yy* 以yy开头的所有目录
ls yy* 以yy开头的所有文件,等价于 ls | grep yy*
ls /dev/vcs* dev目录下的所有vcs开头的文件
ls *.* 查找所有带点的文件,等价于 ls | grep .
ls -l | grep "^-" | wc -l : 统计某文件夹下文件的个数
ls -l | grep "^d"| wc -l : 统计某文件夹下目录的个数
ls -lR | grep "^-" | wc -l : 统计文件夹下文件的个数,包括子文件夹里的
ls -lR /home/han | grep js | wc -l : 如统计/home/han目录(包含子目录)下的所有js文件
2. find
find /etc -name 'test*' 查找以test开头的文件
find /etc -name 'test*' -size +50k 查找以test开头大于50K的文件
find /etc -size +50M 查找大于50M的文件
3. grep
grep 123 a.txt 从a文件搜索123
grep -v 123 a.txt 反向搜索
grep -i aaa a.txt 忽略大小写搜索aaa
grep 123 a.txt | wc -l 统计123在a文件中出现的次数
grep 123 a.txt > res.txt 覆写
grep 123 a.txt >> res.txt 追加
ls | grep .sh 查找所有.sh后缀的文件
grep -A 4 a.txt -A是显示匹配后和它后面的n行,-A -B -C 后面都跟阿拉伯数字
grep -B 4 a.txt -B是显示匹配行和它前面的n行。
grep -C 4 a.txt -C是匹配行和它前后各n行, -C覆盖面最大,A,B,C这3个开关都是关于匹配行的上下文的(context)
grep -c keyword 文件名 返回一个文件中字符串的个数
grep -c keyword 文件名1 文件名2 ... 分别返回 多个文件中 各自的个数
grep match_pattern file_name
grep "match_pattern" file_name
grep "match_pattern" file_1 file_2 file_3 ... 多个文件中查找
grep -v "match_pattern" file_name 不包含字符串的行
grep -i 'string' dirPath/* 文件夹下所有文件查找,忽略大小写
grep -r 'string' /etc/ 目录中递归查找
grep '^the' file_name 查找行首的字符串
grep 'the$' file_name 查找行尾的字符串
grep ^$ file_name 查找文件中的所有空行
grep -n 'string' file_name 查找结果带行号
grep -nR entry * 递归在所有文件中查找entry字符串,并显示行号
4. cat
cat a.txt 查看短文件
cat -n a.txt 显示行号
5. head
head /etc/passwd 默认显示前10行
head -k /etc/passwd 显示前k行
head -n -k /etc/passwd 除最后k行外,显示剩余全部内容
6. tail
tail a.txt 默认显示末尾10行
tail -100f a.txt 查看最后100行,持续刷新
tail -k a.txt 显示末尾k行
tail -n +k /etc/passwd 从开头第k行到末尾
7. wc
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字(单词)数
8. diff
diff -b -B a.txt b.txt 比较文件差异,忽略空格和空行
9. tr
tr命令可以对来自标准输入的字符进行替换、压缩和删除
选项
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
echo "HELLO WORLD" | tr 'A-Z' 'a-z': 将输入字符由大写转换为小写
echo "hello 123 world 456" | tr -d '0-9' : 删除数字
cat text | tr '\t' ' ': 将\t替换为' '
echo "thissss is a text linnnnnnne." | tr -s ' sn': 用tr压缩字符,可以压缩输入中重复的字符
10. echo
输出字符串或变量 echo [string]
# read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/sh
read name
echo "$name It is a test"
echo -e "OK! \n" # -e 开启转义
echo "a test" > myfile # 显示结果定向至文件
echo '$name\"' # 原样输出字符串,不进行转义或取变量(用单引号)
echo `date` # 显示命令执行结果,此处为显示当前日期
11. chmod
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
-rw------- (600) 只有属主有读写权限。
-rw-r--r-- (644) 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有属主有读、写、执行权限。
-rwxr-xr-x (755) 属主有读、写、执行权限;群组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。更不可取的做法。
范例:
chmod -R 755 /home/test 给目录添加755权限,执行权限,当前用户可写,其他用户只能看和执行
chmod 777 file 给文件添加读写执行权限,所有用户,用户组和其他用户
12. chown
只有管理员可用,修改用户和用户组
chown pm:pm a.txt
13. whoami
查看当前用户
14. who
查看登录用户
15. exit
退出登录账户
16. 修改文件或目录名称
mv abc abd 修改文件名称
mv A B 修改目录名称
mv /a /b/c 将/a目录移动到/b下,并重命名为c
17. 查找文件命令
which 查看可执行文件的位置,which nginx,可以查看nginx的运行程序在什么位置
whereis 查看可执行文件的位置及相关文件
locate 配合数据库缓存,快速查看文件位置
grep 过滤匹配,它是一个文件搜索工具
find 查找相关文件
18. 查看进程
ps -ef 查看所有进程
19. 查看端口
netstat -na|grep 8080 查看端口是否在运行