工作中linux常用命令记录
- 查看磁盘IO使用率[iostat]
- 查看内存使用率[free]
- 查看Cpu使用率[top]
- 查看文件大小[du/ll等]
- 查看进程启动的精确时间和启动后所流逝的时间
- 查看文件内容
- 查看日志内容[tail]
- 找出目录下特定文件特定内容的linux命令
- 找出linux大文件命令[find]
- 解压/压缩
- 将文件清空的方法
- linux代理上网设置
- 找出某目录下修改时间为7天前的文件并删除
- 某目录下查找并只保留最近的几个文件,其他的都删除
- 某目录下查找查找最新或最老的几个文件并删除
- linux添加用户/删除用户
- linux命令行修改当前用户密码
- linux设置静态Ip样例(centos7下)
- 设置linux的history操作历史的条数仅为3条
- 转换文件编码[gbk转utf8]
- cat
- cd
- crontab
- echo
- ls
- mkdir
- netstat
- ps
- rm
- rpm
- sed
- VBox相关
- CentOS系统以限制root用户远程登录
- 修改CentOS 中history上限
- 执行shell脚本时 $'\r': command not found
- 解压jar中的文件或目录到本地
- linux下用户维护
- Centos系统网卡设置
查看磁盘IO使用率[iostat]
iostat -x 2 5 ##查看IO情况,每2秒执行一次,总执行5次
查看内存使用率[free]
free -m ##查看内存占用情况
查看Cpu使用率[top]
top ##动态显示cpu、内存等资源占用情况,隔几秒刷新一次
top -n 1 ##查看一次top命令执行情况,直接返回
top后,按shift键+大写M ##执行top,然后按内存占用倒序排序
top后,按shift键+大写P ##执行top,然后按Cpu占用倒序排序、
查看文件大小[du/ll等]
du -h --max-depth=1 ##查看各文件夹大小
du --max-depth=1 | sort -nr ##查看各文件夹大小后排序
du -sh . ##查看当前文件夹大小,人容易识别的单位显示
ll -hrS ##目录下文件大小排序倒序
ll -hS ##目录下文件大小排序升序
查看进程启动的精确时间和启动后所流逝的时间
##如查看进程Ete100015CollectStart的精确时间和启动后所流逝的时间
ps -eo pid,lstart,etime,cmd | grep Ete100015CollectStart |grep -v grep
结果示例:
[sendi@localhost ~]$ ps -eo pid,lstart,etime,cmd | grep qmgr |grep -v grep
1800 Wed May 19 15:21:12 2021 56-21:39:17 qmgr -l -t unix -u
查看文件内容
vi ##通过vi 文件名可以查看
more ##通过more 文件名可以查看
cat ##通过cat文件名可以查看
查看日志内容[tail]
##tail -f 用于查看文件的末尾日志,并锁住滚动刷新,用于看tomcat或springboot程序日志,如:
tail -f /home/testuser/tomcat/logs/error.log
##tail -1000 用于查看文件的末尾1000行日志,如
tail -1000 /home/testuser/tomcat/logs/error.log
找出目录下特定文件特定内容的linux命令
##找出当前目录下文件名包含"trace-"的,且文件内容包含"172.168.201.177#13"的文件
find . -type f -name “trace-” | xargs grep “172.168.201.177#13” -l
##查询文件时并过滤无权限的内容,如
find / -name “bloc-cloud-gateway-2.1.4.RELEASE.jar” 2> /dev/null
找出linux大文件命令[find]
##找出目录下大于800M的文件,会显示大于800M的文件的全路径
find . -type f -size +800M
##找出目录下大于800M的文件并显示大小
find . -type f -size +800M -exec ls -lh {} \;
##找出目录下大于800M且小于2G的文件并显示大小
find . -type f -size +800M -size -2048M -exec ls -lh {} \;
解压/压缩
tar zxvf FileName.tar.gz ##tar把FileName.tar.gz解压到当前文件夹
tar zcvf FileName.tar.gz DirName ##tar把文件夹DirName压缩成FileName.tar.gz
unzip filename.zip ##unzip解压filename.zip
unzip -o -d /home/sunny myfile.zip ##把myfile.zip文件解压到 /home/sunny/
zip -r filename.zip dirName ##把dirName目录压缩成filename.zip文件
将文件清空的方法
##第一种方法
echo “” > a.txt ##通过echo将文件清空
##第二种方法通过重定向将文件清空
> a.txt
##第三种方法通过cat命令将文件清空
cat > a.txt << EOF
EOF
linux代理上网设置
##如已有http代理服务器192.168.56.1,端口1080,账号admin,密码admin123
export http_proxy=http://admin:admin123@192.168.56.1:1080 ##http访问走代理
export https_proxy=http://admin:admin123@192.168.56.1:1080 ##https访问走代理
export no_proxy=‘127.0.0.1’ ##过滤127.0.0.1的访问不走代理
找出某目录下修改时间为7天前的文件并删除
find . -mtime +7 -type f -name catalina.*.log | xargs rm -rf ##找出当前目录下修改时间为7天前的以catalina开头的log文件并删除
find /home/testuser/apache-tomcat-8.5.51/logs -mtime +7 -type f -name catalina.*.log | xargs rm -rf ##找出指定绝对路径目录下修改时间为7天前的以catalina开头的log文件并删除
某目录下查找并只保留最近的几个文件,其他的都删除
ls -t /home/bycgZtcservice.jar* |awk 'NR>5'|xargs rm -rf `#home目录下只保留最新的5个文件,其他的都删除
某目录下查找查找最新或最老的几个文件并删除
ls -t |grep bycgZtcservice.jar| head -2 |xargs rm -rf #查找最
新
的2个文件并删除
ls -rt |grep bycgZtcservice.jar| head -2|xargs rm -rf #查找最老
的2个文件并删除
linux添加用户/删除用户
useradd testuser #添加一个用户
passwd testuser #设置密码
userdel -r testuser #删除用户
linux命令行修改当前用户密码
##命令行修改linux当前用户密码
echo -e 'linuxoldpwd\nlinuxnewpwd\nlinuxnewpwd' | passwd
如:echo -e 'Sd_126().\nZc98A1Qc!\nZc98A1Qc!' | passwd
linux设置静态Ip样例(centos7下)
[root@localhost testuser]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
#UUID=08e06de3-0f6c-45c7-bed0-916ab128dcfa
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.101
NETWORK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=114.114.114.114
设置linux的history操作历史的条数仅为3条
#修改/etc/profile文件
cat >> /etc/profile << EOF
HISTSIZE=3
EOF
转换文件编码[gbk转utf8]
##查看文件格式编码
file -bi data.txt
##以utf8编码方式查看gbk的文件
iconv -f gbk -t utf8 data.txt
##转换编码并输出到新文件
iconv -f gbk -t utf8 data.txt >> datanew.txt
cat
cat top.out ##查看top.out文件的内容
cat top.out | grep nginx ##查看top.out文件的内容并过滤只显示带"nginx"的部分
##在/etc/security/limits.conf文件中追加内容到文件最后,如果将>>换成>,则为替换而不是追加
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
EOF
cd
cd /root ##进行/root目录下
cd liu ##从当前目录进行子目录liu下
cd .. ##退回上一级目录
cd /usr/local/jdk ##cd+绝对路径,直接进入路径参数所在目录
crontab
crontab -l ##查看linux下当前用户定时任务情况
crontab -e ##编辑linux下当前用户定时任务情况,类似vi操作的方式,执行wq进行保存
echo
echo “ab” >> a.txt ##echo将"ab"追加一行到a.txt末行处。
echo “ab” > a.txt ##echo将"ab"写入a.txt文件,a.txt原有的内容被清除。
ls
##ls只显示文件名
ls -l | grep ^[^d] | awk '{print $9}'
ls -hl ##按人类习惯的方式显示目录下的所有文件,一行一个
mkdir
mkdir liu ##在当前目录下创建目录liu
mkdir /home/testuser/tempdir ##创建tempdir,这里需要/home/testuser目录已建好
mkdir /home/testuser/tempdir -p ##带了-p参数,功能同上,/home/testuser不存在时,会递归建不存在的目录,
netstat
netstat -lntup ##查看系统的端口占用情况
netstat -lntup|grep 8188 ##查看系统中占用了8188的程序情况,
ps
ps -ef ##查看所有的进程
ps -ef|grep java ##查看所有的java进程
rm
##通过rm -rf 文件绝对路径,删除文件如
rm -rf /home/testuser/teerror.log
rpm
rpm -qa ##查看已安装的所有rpm包
rpm -qa|grep python ##查看名称包含python的rpm包
rpm -ivh rpmName ##rpm安装软件,带上rpm文件名
sed
##文件内容替换,好用的命令,示例如下,将* soft nproc 4096这一行的内容的4096换成65536:
sed -i ‘s/^* soft nproc 4096$/* soft nproc 65536/’ /etc/security/limits.d/20-nproc.conf
####常见的 sed 替换字符串的语法
sed -i 's/Search_String/Replacement_String/g' Input_File
####将包含"#current version service now is."内容的所有行替换成" #current version service now is blue and green together."
sed -i 's/.*#current version service now is.*/ #current version service now is blue and green together./g' nginx.conf
####通常/也可以换成其他字符,比如要替换的内容中就存在/,可以用其他分隔符
####比如要使用 sed 命令将 doc.json 文件中以 "serverUrl": 开头的行替换成 "serverUrl": "http://xxxx",你可以使用以下命令:
####因为我们要替换的内容中包含 /,所以这里使用 | 作为分隔符以避免混淆。
sed -i 's|"serverUrl":.*|"serverUrl": "http://xxxx"|' doc.json
VBox相关
虚拟机复制VBox:
D:\Program Files\VirtualBox\VBoxManage.exe clonehd "E:\VirtualBox VMs\Linux5.4_a\Linux5.4_a.vmdk" "E:\VirtualBox VMs\Linux5.4_b\Linux5.4_b.vmdk"
重新设置虚拟磁盘ID:
VBoxManage internalcommands sethduuid "E:\VirtualBox VMs\winxp2\winxp2.vmdk"
CentOS系统以限制root用户远程登录
## sudo vi /etc/ssh/sshd_config
找到 #PermitRootLogin yes
修改成 PermitRootLogin no
## 重启sshd服务
systemctl restart sshd
修改CentOS 中history上限
# vi /etc/profile
:/HISTSIZE
找到histsize把默认的1000改成10
history的上限就可变成10条
执行shell脚本时 $‘\r’: command not found
在 Linux 系统中,如果你的脚本或者执行文件包含 /r(即回车符,Carriage Return),它可能是因为该文件是在 Windows 系环境下编辑的。Windows 系统中的文本文件使用回车符和换行符(\r\n)作为行结束符,而 Linux 和 Unix 系统仅使用换行符(\n)。
如果你尝试在 Linux 系统上执行这样的文件,你可能会遇到错误,因为 Linux 系统不识别 \r 作为有效的行结束符。这通常会导致 command not found 或者类似的错误,因为 shell 会尝试执行带有额外 \r 字符的命令。
要解决这个问题,你可以使用 dos2unix 工具,它可以将文件格式从 Windows 格式转换为 Unix 格式。如果 dos2unix 没有预装在你的系统上,你可以通过包管理器安装它。例如,在 Debian 或 Ubuntu 上,你可以使用以下命令安装:
sudo apt-get update
sudo apt-get install dos2unix
安装完成后,你可以运行以下命令来转换文件:
dos2unix filename
如果你没有 dos2unix 工具,你也可以使用 sed 命令来移除 \r 字符:
sed -i 's/\r$//' filename
这个命令会在原地(-i 选项)删除文件中每一行末尾的 \r 字符。
解压jar中的文件或目录到本地
# 1.查看jar包中的目录
列出JAR文件中的所有文件和目录
jar -tf example.jar
只想查看JAR文件中的特定目录下的文件,可以在jar命令后加上目录的路径
jar -tf example.jar dir1
# 2.解压jar中的文件或目录到本地
jar -xvf test.jar static/ -C /home/testDir/
解释一下上述命令的各个部分:
-xvf:这是jar命令的选项,其中:
x 表示解压。
v 表示详细输出(verbose)。
f 表示指定要操作的jar文件。
test.jar:这是你要解压的JAR文件的名称。
static/:这是你要从JAR文件中解压的目录的名称。
-C /home/testDir/:这个选项指定了解压的目标目录。-C选项后面跟的是目标目录的路径。
linux下用户维护
#添加用户
useradd testuser
#设置密码
passwd testuser
#删除用户及用户目录
userdel -r testuser
Centos系统网卡设置
网卡设置记录(Vbox中虚机设置动态获取IP)
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
#UUID=08e06de3-0f6c-45c7-bed0-916ab128dcfa
DEVICE=enp0s3
ONBOOT=yes
网卡设置记录(Vbox中虚机设置静态IP)
[testuser@localhost ~]$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
#UUID=08e06de3-0f6c-45c7-bed0-916ab128dcfa
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.101
NETWORK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=114.114.114.114
Linux断点续传下载
# wget方式
wget -c -O /home/liutest/ubuntu-20.04.6-desktop-amd64.iso http://192.168.56.1:18080/ubuntu-20.04.6-desktop-amd64.iso
-c:表示wget从上一次下载的位置继续下载,这里的c是小写
-O:将文件保存到一个目录和文件名称组成的的绝对路径中,这里的O是大写
# curl方式
curl -C - -o /home/liutest/ubuntu-20.04.6-desktop-amd64.iso "http://192.168.56.1:18080/ubuntu-20.04.6-desktop-amd64.iso"
"-C -":表示wget从上一次下载的位置继续下载,这里以的C是大写
-o:将文件保存到一个目录和文件名称组成的的绝对路径中,这里的o是小写
linux文件中如何把^M去掉
#如果出现^M,vi文件模式下输入
:%s/\r//gc