Linux 常用命令总结

1、mkdir  make directorys 创建目录

例子:mkdir /data  在根下创建data目录

2、ls  list 列表列表目录文件

-a 隐藏文件  -l 长格式  -F 给不同文件结尾加标识  -p 给目录结尾加斜线  -t 按修改时间排序  -r 反转排序(倒序)

3、echo  打印输出内容

例子:echo "abc" >>a.txt  将内容abc追加到a.txt里

4、cat  查看文件内容

-n 显示行号

5、xargs  从标注输入的内容创建和执行命令

例子:xargs -n 4 <a.txt  分成每四个为一行输出

6、cp  copy  拷贝文件或目录

-r  递归,用于拷贝目录 例子:cp -r /test/ /data/

-p  保留属性

7、rm  remove删除文件或目录  -f 强制 -r 递归

8、mv  move移动文件或目录  在当前目录下:重命名

9、find  查找

-type 文件类型 (f 文件 d目录 c字符 b 块设备)

-name 文件名

-exec 操作

例子:1、find /data -type f -name "*.txt" -exec rm {} ;

   2、find /data -type f -name "*.txt" | xargs rm -rf  删除data目录下所以txt结尾的文件

-mtime  文件修改时间(+7 七天以前 7 第七天 -7 最近七天)

例子:1、find /data -type f -name "*.log" -mtime -7 -exec rm {} ; 删除最近七天的文件

   2、find /data -type f  -mtime +7 | xargs rm -rf  删除最近七天以前的文件

10、grep  过滤内容

--color=auto 对过滤字符设置颜色 

-n . 显示行号 

-v 排除内容  例子:grep -v test a.txt  排除a.txt中test内容

-A 除了显示匹配的一行之外,并显示该行之后的num行 例子:grep 20 -A 10 a.txt 打印文件的20-30行内容

-B 除了显示匹配的一行之外,并显示该行之前的num行 例子:grep 30 -A 10 a.txt 打印文件的20-30行内容

-C 除了显示匹配的一行之外,并显示该行前后的num行 例子:grep 25 -A 5 a.txt 打印文件的20-30行内容

11、sed  留编辑器,实现对文件的增删改查替换

参数-n  取消默认输出 p(打印) 例子:sed -n '2,10'p a.txt  打印文件的2-10行内容

替换 s 全局 g 修改文件内容 -i 例子:sed -i 's/abc/cba/g' a.txt  把a.txt中所有abc替换为cba

* /是分隔符 可用任意3个相同的字符代替 

12、awk  过滤输出,一门语言

NR行号  例子:awk '1<NR && 11>NR' a.txt  打印文件的2-10行内容

$1 第一列、$2第二列,但$0标识一行

-F指定分隔符 -NF 结尾

13、head  头,输出文件前N行内容,默认前10行

14、tail  尾,输出文件后N行内容,默认后10行

15、alias  查看和设置别名

例子:alias mv='echo mv is dangerous command'  用于提示用户mv是危险指令

例子:alias net='systemctl restart network'  简化操作,输入net后重启网络

unalias  取消别名  例子:unalias net

*仅保存在内存,永久生效需要保存在 ~/.bashrc(当前用户生效)/etc/profile(全局生效)

16、sourec  常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

17、seq  序列  

例子:seq 100 >a.txt 生成100列1-100的序列

-s  横向打印  例子:seq -s " " 1 10

18、netstat  用于显示各种网络相关信息

19、在secureCRT中  yum install lrzsy -y 下载

rz  命令本地上传文件到服务器

sz filename 命令发送文件到本地

20、su  变更使用者身份

例子:su - abc

21、date  系统时间

date +%F 当天日期  date +%s 时间戳 

22、chmod  更改文件系统的权限

r=4 w=2 x=1  u=用户 g=组 o=表示其他 a=表示全部

-R  递归,更改整个目录的权限

例子:chmod a+x test  给test所有用户组其他x权限

例子:chmod 777 test  给test777最高权限

23、chown  更改文件所有权

例子:chown root test1  更改test1的所有权

例子: chown :root test1  使用:更改组的所有权

例子:chown root:root test1  同时更改所有者和组

-R  递归,更改整个目录的所有权

24、scp  机器之间的复制 可用hostname与id指定

例子:scp /home/a xxxxip:/root  将本地/home/a文件目录复制到xxxx的/root目录

scp -r xxxip:/root /home  将xxxx的root目录复制到本地/home

25、sftp  用户两台机器的交互式远程传输

sftp可使用ls,pwd,mkdir等命令,put用于上传,get用于下载

例子:sftp<put -r /home  将xxxxip主机上的/home目录下载至本地目录

26、ln 软、硬链接

ln -s 源文件 目标文件 软连接 相当于快捷方式 例子:ln -s test newtest

ln  源文件 目标文件 硬连接 相当于更新+实时更新    例子:ln  test newtest

 27、uname  打印系统信息

-a (all)  -n 显示主机名

28、shutdown  halt  init 0  关机

init 6  reboot  shutdown -r  重启

例子:shutdown -h now  关机

29、history  查看历史记录

-c  清除记录  -d num  清除指定行的记录

30、wc  统计

-l 统计总行数  -L显示字符数

其他补充&面试题

创建100个txt文件/目录:

#touch/mkdir {1..100}.txt

查找opt下所以txt文件移动到data目录:

#mv ` find /opt/ -type f -name "*.txt"  ` /data/

删除一个目录下所有文件,只保留一个指定文件:

#find /opt/ -type f ! -name "1.txt" -exec rm {} ;
#find /opt/ -type f ! -name "1.txt" | xargs rm

打印一个100行文件的20-30行内容

#sed -n '20,30'p a.txt

 将/opt目录下所有.sh文件的内容内的abc替换为jty

#find /opt -type f -name '*.sh' |xargs sed -i 's/abc/jty/g' 

 使用awk抓取/etc/passwd文件中的10-20行的第三列,重定向到/data/test.txt文件里

#awk -F ":" '9<NR && NR>21 {print $3}' > /data/test.txt 

 将目录下所有.txt文件名的后缀改为.sh 

#rename .txt .sh *.txt

 查找当前目录下的所有隐藏目录和一级目录(仅包含一级目录)

#ls -F | grep "/$"
#ls -l | awk '{(if $2>1) prinf $0}'

已知服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只保留最近7天访问日志,请问如何解决?至少三种方法

find /app/logs -type f -mtime +7 | xargs rm -f 
find /app/logs -type f -mtime +7 -exec rm -f {} ;
rm -f `find /app/logs -type f -mtime +7`

特殊符号

|  管道符

.  当前目录

..  上级目录

·  反引号

1>或>  输出重定向:把前面输入的东西放到文件后面,会清空原有内容

1>>或>>  追加重定向:把前面输入的东西放到文件后面,不会清空原有内容

https://blog.51cto.com/yangrong/1288072

原文地址:https://www.cnblogs.com/yushui1995/p/10944707.html