工作中linux常用命令记录


查看磁盘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
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值