【LINUX】linux 常用指令
查找操作文件
1、linux shell下除了某个文件外的其他文件全部删除的命令
rm -rf !(***.jar)
2、递归删除
find ./ -name "_remote.repositories" -print -exec rm -rf {} \;
3、全量替换文件
sed -i "s/10.12.3.4:8080/127.0.0.1:8080/g" `grep 10.12.3.4:8080 -rl .`
sed -i "s/baseUrl: http:\/\/localhost:9411/baseUrl: http:\/\/127.0.0.1:9411/g" `grep baseUrl: http://localhost:9411 -rl .` (当有转义符时,用反斜杠即可)
替换 feign 大小写
sed -i.java.bak "s/@FeignClient(\"AA-SERVICE\")/@FeignClient(\"aa-service\")/g" `grep '@FeignClient("AA-SERVICE")' -rl .`
特殊字符
- $ 这个要转义
sed -i'.bak.java' -e "s/namespace: \${ENV_TYPE:public}/namespace: \${ENV_TYPE:guangdong}/g" `grep 'namespace: ${ENV_TYPE:public}' -rl */**/bootstrap.yml`
- " 双引号要转义
sed -i.java.bak "s/@FeignClient(\"AA-SERVICE\")/@FeignClient(\"aa-service\")/g" `grep '@FeignClient("AA-SERVICE")' -rl .`
关于 sed 的注意事项
在 macos 里面, sed -i ... 这样是会报错的,要用 sed -i.bak 带一个副本的后缀
4、按文件大小排序
du -sh | sort -rh | more
5、删除文件名乱码的文件或文件夹
一般情况下,一般情况下通过复制粘贴文件名,或通过 tab 选中,都可以选中想要删除的文件,但如果文件名乱码并且文件非常多的情况下,这种方式就不适用了,但又没有办法敲出乱码,那该怎么办呢。
可以通过 ls -i 查看文件id,通过文件id 可以删除
ll -i // 查看文件id
find . -inum 5409797 -exec rm {} -rf \; // 通过文件id 去删除 (5409797是这个乱码文件的文件id)
根据文件id删除文件
find . -inum 133552222 -delete
grep搜索
1、多个关键字
grep 'aaa | bbb' (同时搜索关键字 aaa, bbb)
2、grep 不区分大小写
搜索 Abc 的时候,
grep Abc 是严格匹配的,
如果期望不区分在小写, 可用 grep -i abc
查看系统配置
----查看当前进程打开了多少句柄数
# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
-- 查看系统总共使用的句柄数
lsof|awk '{print $2}'|wc -l
文件传输
从服务器上下载文件
scp rviis@10.12.3.17:/opt/server/nginx/conf/nginx.conf /home/download
创建软链接
ln -s /Users/carrot/Documents/work/arthas arthas
删除软链接
进入软链接当前目录:rm arthas
查看文件大小
du -sh * (当前各目录文件/文件夹的大小)
du -sh (当前目录总大小)
du -sh * | sort -rn (排序)
df -h (整个系统的各挂载点的大小,比如)
文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 50G 45G 5.1G 90% / devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 1002M 15G 7% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/sda1 197M 126M 72M 64% /boot /dev/mapper/centos-date 234G 2.4G 232G 2% /date /dev/mapper/centos-opt 200G 53G 148G 27% /opt cm_processes 16G 0 16G 0% /run/cloudera-scm-agent/process tmpfs 3.2G 0 3.2G 0% /run/user/1012 tmpfs 3.2G 0 3.2G 0% /run/user/1000
由这个表,可以看到 /opt 这个挂载点,就有200G, /date 这个挂载点有234G, / (根目录下,只有50G了)
端口关闭 与 开放白名单
有一台 es 端口9200,想指定白名单创建连接,于是先把这个端口的所有监听先关闭掉,再对应添加白名单
iptables -I INPUT -p tcp --dport 9200 -j DROP
iptables -I INPUT -s 10.12.3.11 -ptcp --dport 9200 -j ACCEPT
iptables -I INPUT -s 10.12.3.12 -ptcp --dport 9200 -j ACCEPT
Nginx , 查看最后访问最多的 ip 和 访问次数
tail -200 /usr/local/nginx/logs/access.log | awk -F ' ' '{count[$1]++;} END {for(i in count){print i, count[i]}}'
cp 覆盖
一般来说,cp 进行覆盖的时候,它是一个一个提示的,加了rf 也是不行的,需要一个一个地按y,但这种方式显然是太low了的。要怎么办呢
/bin/cp -rf xxxx (用这个就好了)
查看注册了哪些服务:
ls -l /usr/lib/systemd/system
查看进程占用内存的情况
发现服务器中,内存快炸了,想看一下是哪一个进程占用了很大的内存:
方法1: top
然后按 M, 就会按内存排序。
按P, 就会按CPU排序
## 可参考: https://www.cnblogs.com/wangmo/p/9486569.html ##
查看占用端口的进程
netstat -nultp | grep 30000 (查看30000这个端口,被哪个进程占用着)
---
vim 翻屏
向上 翻屏,按键:ctrl + b (before) 或 PgUp
向下 翻屏,按键:ctrl + f (after) 或 PgDn
向上翻半屏,按键:ctrl + u (up)
向下翻半屏,按键:ctrl + d (down)
$ (shift + 4) : 跳到行末
^ (shift + 6):跳到行首
Linux scp 命令安装
服务器上,想使用 scp, 发现没有这个指令,然后想安装,
默认觉得是这个指令:
yum install -y scp
然后,发现不对!
实际上,它的指令是这样子的!!
yum install -y openssh-clients
yum list
yum list | grep ssh
服务器 清理缓存和内存
仅清除页面缓存(PageCache)
sync; echo 1 > /proc/sys/vm/drop_caches
清除目录项和inode
sync; echo 2 > /proc/sys/vm/drop_caches
清除页面缓存,目录项和inode
sync; echo 3 > /proc/sys/vm/drop_caches
(这些指令,非必要,不要随便清,可能会对运行中的程序有影响)