【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
(这些指令,非必要,不要随便清,可能会对运行中的程序有影响)

参考这一篇: https://www.cnblogs.com/getFive101/p/11422052.html

posted @ 2022-02-22 13:48  aaacarrot  阅读(184)  评论(0编辑  收藏  举报