linux常用命令

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  查找结果带行号

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 ' ' ' ': 将 替换为' '
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! " # -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

退出登录账户