linux下常见命令及问题

linux常用命令

查看目录下各文件目录大小
du -sh * | sort -nr | head
查找大于1G的文件
find / -size +1G -exec du -sh {} \;
查看哪个目录占用过高 
du -h -x --max-depth=1
将最后100000行之后的内容重定向到另外一个临时文件中
tail -n100000 catalina.out > acess.log
查看该文件大小
ll -lh 文件名

测试网络接包
tcpdump -i ens192 icmp

通过rpm查看包是否安装
rpm -qa |grep clickhouse

linux下添加用户
groupadd shiq  #新建shiq组
useradd -g shiq shiq  #新建shiq用户并将shiq组添加进去
vim /etc/sudoers
添加 shiq    ALL=(ALL)       ALL
chown -R shiq:shiq /home/shiq
Linux中buff/cache内存占用过高解决办法
cat /proc/sys/vm/drop_caches

echo 1 > /proc/sys/vm/drop_caches
当然,这个文件可以设置的值分别为1、23。它们所表示的含义为
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。
开防火墙端口
#netstat -lnt |grep 80
tcp        0      0 :::80                      :::*                        LISTEN
linux下测试udp端口开放
nc -vuz 127.0.0.1 1194

想到用本机telnet IP 80
不通- -  但是telnet IP 22  通了 ~ ~
可能是80端口没开放。
于是 开启80端口
1、开启80端口命令:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
2、保存配置 命令:/etc/rc.d/init.d/iptables save
3、重启服务命令 :/etc/rc.d/init.d/iptables restart
4、查看已经开放的端口: /etc/init.d/iptables status

今天在一台Ubuntu服务器里面配置了一个Nginx服务,监听的8080端口。本机可以访问,但是局域网就是访问不到。首先怀疑防火墙没有开放8080端口,设置ufw防火墙开放8080端口
$ sudo ufw allow 80
然后局域网依然不能访问,接下来应该还要配置一下iptables,开放8080端口

$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
然后局域网就能访问到了。iptables规则设置后是即时生效的,在机器重启后,iptables中的配置信息会被清空,所以需要将配置保存下来。首先将防火墙规则保存到/etc/iptables.up.rules文件中

$ sudo iptables-save > /etc/iptables.up.rules
然后修改脚本/etc/network/interfaces在网络启动时应用防火墙规则,在末尾添加如下内容

pre-up iptables-restore < /etc/iptables.up.rules

https://www.jb51.net/article/135571.htm iptables详情明细
iptables 提供了一个参数 是检查状态的,下面我们来配置下 2280 端口,防止无效的数据包。
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
查看iptabless规则
iptables -L -n
删除第5条规则
iptables -D INPUT 5
删除对应规则
iptables -D OUTPUT 1
查看带编号规则
iptables -L -n --line-number

保存iptables
service iptables save
yum install iptables-services
systemctl enable iptables.service 添加开机自启

命令行下获取外网ip及归属地
curl -L ip.tool.lu
http://ip38.com/ 公网出口ip

批量注释---------------
2,10s/^/#/
1.vim 文件名,首先在命令模式下,输入“:set nu”显示行号;
2.通过行号确定你要删除的行;
3.命令输入“:32,65d”,回车键,32-65行就被删除了,很快捷吧
如果无意中删除错了,可以使用‘u’键恢复(命令模式下)
批量替换--------------------
(一)通过vi编辑器来替换。
vi/vim 中可以使用 😒 命令来替换字符串。
😒/well/good/ 替换当前行第一个 well 为 good
😒/well/good/g 替换当前行所有 well 为 good
:n,s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good :n,s/well/good/替换第n行开始到最后一行中每一行的第一个well为good:n,s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
😒#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
sed命令下批量替换文件内容
格式: sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl 路径 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i “s/shan/hua/g” lishan.txt
把当前目录下lishan.txt里的shan都替换为hua

:g/well/s//good/g

网线顺序接法
白橙橙,白绿蓝,白蓝绿,白棕棕

windows下编写在linux下需要全量替换换行
sed -i 's/\r$//' xxxxx.sh
bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory的解决方法
执行脚本找不到解释器目录
方法一:vim a.sh进入a.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的)

方法二:直接执行sed -i "s/\r//" a.sh来转化, 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的
linux下生成随机密码
openssl rand 14 -base64
linux下删除指定日期文件
https://www.cnblogs.com/wuning/p/11778348.html

find 参数说明

-amin -n: 最后一次访问发生在 n分钟 之内
-amin n:  最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟
-amin +n: 最后一次访问发生在 (n+1)分钟 之外
-atime -n: 最后一次访问发生在 n天 之内
-atime n: 最后一次访问发生在 n天 至 (n+1)天 
-atime +n: 最后一次访问发生在 (n+1)天 之外
-cmin -n: 最后一次文件状态修改发生在 n分钟 之内
-cmin n: 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟
-cmin +n: 最后一次文件状态修改发生在 (n+1)分钟 之外
-ctime -n: 最后一次文件状态修改发生在 n天 之内
-ctime n: 最后一次文件状态修改发生在 n天 至 (n+1) 天
-ctime +n: 最后一次文件状态修改发生在 (n+1)天 之外
-mmin -n: 最后一次文件内容修改发生在 n分钟 之内
-mmin n: 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟
-mmin +n: 最后一次文件内容修改发生在 (n+1)分钟 之外
-mtime -n: 最后一次文件内容修改发生在 n天 之内
-mtime n: 最后一次文件内容修改发生在 n天 至 (n+1)天
-mtime +n: 最后一次文件内容修改发生在 (n+1)天 之外

#查找文件内容修改发生在2天之内的文件
find /var/log/hive/ -name "*" -mtime -2 

#删除5天前的文件 
# -exec参数,如果查找有返回,可在exec参数后加上需要操作的命令,查找结果用{}来代替
find /var/log/hive/ -name "*" -mtime +5 -exec rm -rfv {} \;
使用xshell连接远程主机的时候一直卡在To escape to local shell, press 'Ctrl+Alt+]'.,要等很久才能连上
解决方法:
> vi /etc/ssh/sshd_config
UseDNS no # 修改UseDNS yes为UseDNS no,并去掉前面的#。
查看硬盘接口类型
smartctl -a -d megaraid,0 /dev/sda
linux配置环境变量操作失误出现:/usr/libexec/grepconf.sh: line 5: grep: command not found 的解决办法

export PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin
source /etc/profile

 

posted @ 2022-03-11 17:34  四毛二(ت)  阅读(111)  评论(0编辑  收藏  举报
/* 鼠标点击求赞文字特效 */