Linux命令积累(持续更新)
grep命令
grep -r "xxx" 查找的目标路径
例: grep -r "6yi" /root
模糊查询“6yi”字符串在root目录下出现的文件
# 反向匹配, 查找不包含xxx的内容
grep -v xxx
# 排除所有空行
grep -v '^/pre>
# 返回结果 2,则说明第二行是空行
grep -n “^$” 111.txt
# 查询以abc开头的行
grep -n “^abc” 111.txt
# 同时列出该词语出现在文章的第几行
grep 'xxx' -n xxx.log
# 计算一下该字串出现的次数
grep 'xxx' -c xxx.log
# 比对的时候,不计较大小写的不同
grep 'xxx' -i xxx.log
find命令
# 在目录下找后缀是.mysql的文件
find /home/eagleye -name '*.mysql' -print
# 会从 /usr 目录开始往下找,找最近3天之内存取过的文件。
find /usr -atime 3 –print
# 会从 /usr 目录开始往下找,找最近5天之内修改过的文件。
find /usr -ctime 5 –print
# 会从 /doc 目录开始往下找,找jacky 的、文件名开头是 j的文件。
find /doc -user jacky -name 'j*' –print
# 会从 /doc 目录开始往下找,找寻文件名是 ja 开头或者 ma开头的文件。
find /doc \( -name 'ja*' -o- -name 'ma*' \) –print
# 会从 /doc 目录开始往下找,找到凡是文件名结尾为 bak的文件,把它删除掉。-exec 选项是执行的意思,rm 是删除命令,{ } 表示文件名,“\;”是规定的命令结尾。
find /doc -name '*bak' -exec rm {} \;
端口查看相关
netstat -lnpt
列出所有的tcp 和 tcp6的占用情况端口
防火墙相关
firewall-cmd --list-ports #列出所有的已经开放的端口
firewall-cmd --add-port=xxxx/tcp #对防火墙开放哪些端口
firewall-cmd --add-port=xxxx/tcp --permanent #永久开放
firewall-cmd --reload #添加或者修改完进行重新加载操作生效
systemctl某个service服务的启动日志查看命令
$journalctl -u `service-name`
Linux查看登录日志
$cat /var/log/secure
# 最近登录的5个账号
last -n 5
yum安装各类工具(持续更新)
$ yum install -y net-tools # 安装ifconfig,netstat命令
$ yum install -y vim # 安装vim编辑器
查看本机IP
# (6) Could not resolve host: cc.cip; 未知的错误
出现如上错误可运行下方的curl 其他网址
$ curl cc.cip
$ curl http://members.3322.org/dyndns/getip
$ curl icanhazip.com
$ curl ident.me
$ curl ifconfig.me
$ curl ifconfig.co
$ curl ip.6655.com/ip.aspx
$ curl ip.cip.cc
$ curl ipecho.net/plain
$ curl myip.dnsomatic.com
$ curl whatismyip.akamai.com
查看本机Linux发行版本
$cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
安装命令补全工具
$yum install bash-completion
$source /usr/share/bash-completion/bash_completion
开关机命令
# 关机
$shutdown -h now
# 重启
$shutdown -r now
生成sshkey命令
# 创建sshkey
ssh-keygen -t rsa -C [email protected]
#id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建(.ssh权限为700, authorized_keys权限为600)
后台运行命令
# 后台运行,并且有nohup.out输出
nohup xxx &
# 后台运行, 不输出任何日志
nohup xxx > /dev/null &
# 后台运行, 并将错误信息做标准输出到日志中
nohup xxx >out.log 2>&1 &
配置dns
vim /etc/resolv.conf
vim操作
#normal模式下 g表示全局, x表示查找的内容, y表示替换后的内容
:%s/x/y/g
#normal模式下
0 # 光标移到行首(数字0)
$ # 光标移至行尾
shift + g # 跳到文件最后
gg # 跳到文件头
# 显示行号
:set nu
# 去除行号
:set nonu
# 检索
/xxx(检索内容) # 从头检索, 按n查找下一个
?xxx(检索内容) # 从尾部检索
#打开只读文件,修改后需要保存时(不用切换用户即可保存的方式)
# 在normal模式下
:w !sudo tee %
# vim中复制50行以上
比如你要复制连续的60行,光标到你要复制的第一行,输入60yy,然后再到你需要数据的地方,输入p
查看磁盘, 文件目录基本信息
# 查看磁盘挂载情况
mount
# 查看磁盘分区信息
df
# 查看目录及子目录大小
du -H -h
# 查看当前目录下各个文件, 文件夹占了多少空间, 不会递归
du -sh *
常用压缩, 解压缩命令
# 压缩相关
tar czvf xxx.tar 压缩目录
zip -r xxx.zip 压缩目录
# 解压相关
tar zxvf xxx.tar
# 解压到指定文件夹
tar zxvf xxx.tar -C /xxx/yyy/
unzip xxx.zip
变更文件所属用户, 用户组
$ chown eagleye.eagleye xxx.log
复制创建文件夹,跨服务器传输相关
#复制
cp xxx.log
# 复制并强制覆盖同名文件
cp -f xxx.log
# 复制文件夹
cp -r xxx(源文件夹) yyy(目标文件夹)
# 远程复制
scp -P ssh端口 [email protected]:/home/username/xxx /home/xxx
# 级联创建目录
mkdir -p /xxx/yyy/zzz
# 批量创建文件夹, 会在test,main下都创建java, resources文件夹
mkdir -p src/{test,main}/{java,resources}
比较两个文件
diff -u 1.txt 2.txt
命令行上传、下载文件
# 安装rz 和命令包
$yum install -y lrzsz
rz 上传
sz 下载
奇淫巧技
Ctrl + a:移到行首。
Ctrl + b:向行首移动一个字符,与左箭头作用相同。
Ctrl + e:移到行尾。
Ctrl + f:向行尾移动一个字符,与右箭头作用相同。
Alt + f:移动到当前单词的词尾。
Alt + b:移动到当前单词的词首。
Ctrl + d:删除光标位置的字符( delete )。
Ctrl + w:删除光标前面的单词。
Ctrl + t:光标位置的字符与它前面一位的字符交换位置( transpose )。
Alt + t:光标位置的词与它前面一位的词交换位置( transpose )。
Alt + l:将光标位置至词尾转为小写( lowercase )。
Alt + u:将光标位置至词尾转为大写( uppercase )。
Ctrl + k:剪切光标位置到行尾的文本。
Ctrl + u:剪切光标位置到行首的文本。
Alt + d:剪切光标位置到词尾的文本。
Alt + Backspace:剪切光标位置到词首的文本。
Ctrl + y:在光标位置粘贴文本。
查看本地端口的详细信息
例如查询本地的50222端口的运行情况
- 首先,使用 netstat 命令找到使用50222端口的进程信息:
netstat -tnp | grep 50222 - 根据输出结果显示端口由4031进程运行 这里的 4031 是进程ID(PID)。
tcp6 0 0 172.17.224.21:50222 172.17.44.142:5672 ESTABLISHED 4031/java - 然后,使用 ps 命令结合进程ID来查找对应的进程信息:
ps aux | grep 4031
这将显示进程ID为4031的进程的详细信息,包括进程名称、运行状态等。
root 4031 2.0 3.1 4694480 1006124 ? Ssl Mar20 141:25 java -server -Xmx1024m -Xms1024m -Xmn512m -Xss256k -verbose:gc -Xloggc:/work/logs/xxxx-push-msg/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+DisableExplicitGC -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/work/logs/xxxx-push-msg/ -jar xxxx-push-msg.jar --spring.profiles.active=prod
root 29105 0.0 0.0 112816 976 pts/0 S+ 13:46 0:00 grep --color=auto 4031