命令查找大文件
du -h --max-depth=1
du -h --max-depth=1 |grep 'G' |sort
linux查找所有日志log文件&并按从大到小排序&按M或G为单位显示
find / -name *.log | xargs ls -Slh
注释:
xargs 传递参数,find找到的结果传递给ls
ls -Slh
-Sl 从大到小显示详情
-Slr 从小到大显示详情
-h humans 以人类易读的方式显示(正常情况下显示为bit,加上-h后 显示的为KB MB GB TB等)
查找100兆以上的大文件
find . -type f -size +1000000k
========================================================================================
自动使用上次的路径)
cd !$
查看端口
netstat -lntp
netstat -lntp | grep 8080 --查看8080
文件操作
- 创建文件夹
mkdir aaa
mkdir -p /aaa/bbb 若父级目录不存在,自动创建
创建文件 touch /usr/local/a.txt回车
创建文件:cat>>base.sh(ctrl+d保存并退出编辑) 或 touch abc.txt
- 重命名
mv abc.txt abc_bak.txt
将abc.txt重命名为abc_bak.txt
- 复制文件夹
cp -rf base base1
复制base到base1
-
移动( -f 强制覆盖)
当前文件夹文件移动到上一层:mv -f * … -
删除当前目录下所有文件:rm -rf *
删除文件夹下的所有文件,并且不提示:rm -rf 文件具体路径
排除删除:删除当前目录中除了src.zip的所有文件:
find * ! -name src.zip -exec rm -rfv {} \;
连续指令:find * ! -name src.zip -exec rm -rfv {} \;; unzip -o src.zip; rm -rf src.zip;
删除指定:find * |grep -v '\(big\|123.zip\)'| xargs rm -rf
(删除big文件夹,以及123.zip文件,必须要加转移符斜杠/,,()和|都需要转义)
移动,复制,删除排除某个文件或目录
复制文件到/data/,排除file1和dir2:cp !(file1|dir2) /data/
移动文件到/data/,排除file1和dir2:mv !(file1|dir2) /data/
删除当前目录下的文件,排除file1和dir2:rm -rf !(file1|dir2) ./
排除移动:
当前目录下有a、b、c、d四个文件,在当前目录下新建new目录,并且将a、b、c三个文件移动到new中
解决方案,参考:https://blog.csdn.net/AnLau/article/details/73205749
mkdir new
find -maxdepth 1 \! -name d \! -name . -exec mv {} new \;
例子: find -maxdepth 1 \! -name 0324bak \! -name . -exec mv {} 0324bak \;
上传/下载
上传文件:rz
下载文件:sz h5.zip
压缩
将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -rq html.zip /home/html
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
如果在我们在 /home/html 目录下,可以执行以下命令:
zip -rq html.zip *
从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c
解压缩
##在unzip命令后,增加 -o的参数,则不再进行询问,直接覆盖原文件解压缩,节省了很多事儿。
unzip -o file_name.zip
如果要把文件解压到指定的目录下,需要用到-d参数。unzip -d /temp test.zip
例子:unzip -o /webapps/ruepay/boss.war -d /usr/local/ruepay/boss
linux下tar命令解压到指定的目录 :
tar zxvf /bbs.tar.zip -C /zzz/bbs
//把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录
vim操作
1G:跳转到第一行
:set nu : 显示行号
:1,10d : 删除1-10行
删除光标所在行,dd
删除光标所在行以下的N行,Ndd
u 是撤销你刚才做的动作
ctrl+r是恢复你刚才撤销的动作
scp远程拷贝文件夹
跨服务器拷贝需要用到的命令是scp
把当前文件夹tempA拷贝到 目标服务器10.1.1.1 服务器的 /tmp/wang/文件夹下
scp -r /tmp/tempA/ root@10.1.1.1:/tmp/wang/
其中root是目标服务器的用户名,执行命令提示输入密码,然后输入密码即可
scp拷贝文件
把当前文件夹tempA.txt拷贝到 目标服务器10.1.1.1 服务器的 /tmp/wang/文件夹下
scp /tmp/tempA.txt root@10.1.1.1:/tmp/wang/
其中root是目标服务器的用户名,执行命令提示输入密码,然后输入密码即可
实例1:从远处复制文件到本地目录
命令:
scp root@10.0.1.1:/usr/local/cloud/cloud-0728.zip /usr/local/cloud/cloud-0728.zip
批量授权
某个目录下所有文件授权:
chmod -R 777 /scripts/jenkins/
查找替换
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
"\c" 忽略大小写
"\C" 大小写敏感
n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
创建一个软链接
ln –s /var/www/test /var/test
- 修改指向的新路径
ln –snf /var/www/test1 /var/test
- 删除软链接
rm –rf test
查看文件大小
stat aaa.txt
du -h aaa.txt ---直接是人好识别的大小
wc -c nohup.out
ls -lh nohup.out
安装vim
安装命令:
1. rpm -qa | grep vim // 查看vim命令在什么软件包
出现 :vim-minimal-7.4.160-4.el7.x86_64
2. yum install -y vim* // 安装vim相关的软件包
3. rpm -qa | grep vim // 检测是否启用vim-minimal-7.4.629-6.el7.x86_64
出现:
vim-common-7.4.629-6.el7.x86_64
vim-enhanced-7.4.629-6.el7.x86_64
vim-filesystem-7.4.629-6.el7.x86_64
vim-X11-7.4.629-6.el7.x86_64
防火墙
#查看防火墙
service iptables status
#添加映射80端口:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80-j ACCEPT
#重启防火墙
service iptables restart
进程监控 操作关闭和启动
ps -aux|grep mysql
10921
Sl代表正常
暂停:kill -STOP 10921
启动:kill -CONT 10921
vnc
启动vnc服务
vncserver :1
杀死vncserver进程
vncserver -kill :1
批量结束进程
ps -ef|grep check_|awk '{print $2}'|xargs kill -9
ps -ef|grep -E 'lepus|check_'|awk '{print $2}'|xargs kill -9
清理swap
先应该同步一下
[root@mysql172 ~]# sync
再执行
echo 1 > /proc/sys/vm/drop_caches
grep同时搜索多个关键词
ps -ef|grep -E 'AutotestWebD|AutotestFramework'
下载yum依赖包rpm文件
yum install yum-plugin-downloadonly #先安装下载工具
yum install --downloadonly --downloaddir=/root XXX
注:downloaddir是rpm依赖下载到的路径
- 离线下载yum依赖
先安装工具:yum install yum-utils
下载依赖,下载到当前目录下:yumdownloader xxx
递归查询文件内容
简单用法:
grep 'XXX' -r1 (寻找当前目录下包含XXX的文件)
grep -E 'AAA|BBB' -r1 (满足AAA或BBB)
eg: 查询/tmp/test/目录下,内容包含pro的Dockerfile
grep 'pro' -r1 /tmp/test/ --include "Dockerfile"
递归查询文件内容,并替换
eg:查询/tmp/test/目录下,内容包含pro的Dockerfile,并把pro改成online
sed -i "s/pro/online/g" grep 'pro' -rl /tmp/test/ --include "Dockerfile"
#递归查询当前目录下(相对路径),文件内容,并替换
sed -i "s/pro/online/g" grep 'pro' -rl ./ --include "Dockerfile"