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、2、3。它们所表示的含义为 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 提供了一个参数 是检查状态的,下面我们来配置下 22 和 80 端口,防止无效的数据包。 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
作者:南辞、归
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!