本文主要是介绍Linux日常操作命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
查看指定端口是否启动
netstat -na|grep 8265
查看指定进程的进程号
ps -ef|grep BPMSRV|awk '{printf "%s\n",$2}'
查看进程BPMSRV的进程号
vi置换
:%s/旧/新/g
:g/旧/s//新/g
查看java进程占用内存情况
ps -el|grep java
添加环境变量
修改用户根目录下的.profile文件
例如添加环境变量LANG:export LANG=C
然后运行该文件:./.profile
查看内存使用情况
vmstat
杀死指定服务进程
kill -9 `ps -ef |grep bizware|grep BPMS|awk '{ printf " %s ",$2}'`
或
kill -9 `ps -ef|grep bmpcollect|grep -iv grep|awk '{print $2}'`
打印变量中指定的子字符串
echo |awk '{print substr('$end_date',3,4)}'
打印变量end_date中的第3位至第6位
获取变量中指定的子字符串,并赋值给新变量
DATE=`echo |awk '{print substr('$end_date',3,4)}'`
将变量end_date中的第3位至第6位赋值给变量DATE
关闭正在监听的端口
lsof -i :<port>
kill <pid>
如:
lsof -i :8002
查看相关软件是否安装
rpm -qa|grep 软件名称
如:
rpm -qa|grep gcc
删除当前目录下所有一周之内没有被访问过的a .out或*.o文件
find . (- name a.out - o - name ‘*.o')> - atime +7 - exec rm {} ;
只列子目录的方法
ls -F | grep /$
或
ls -l | grep "^d"
将指定的多个文件合并成一个文件
cat `find . -name S_CHK04_20090629`
先搜索指定的行,再取指定的列的值
grep 00262605442901 S_CHK04_20090629|awk -F"|" '{printf "%s",$9}'
批量删除指定文件
find . -name CVS|awk '{printf "rm -rf %s\n",$0}'|sh
统计指定日期、指定时间内生成的txt文件个数
ls -lR |grep 1月26 |grep 18时|grep txt |wc -l
写日志文件的同时,界面也显示
db2 -td@ -f up.sql |tee -a 1.log
统计当前目录及子目录下的文件个数
ls -l |grep "-" |wc -l
统计当前目录下的子目录个数
ls -l |grep "d"|wc -l
查看操作系统版本信息
uname -a
查看操作系统版本号
uname -r
查看内核版本
cat /proc/version
显示的结果如下:
Linux version 2.6.18-164.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Thu Sep 3 03:28:30 EDT 2009
其中:Linux version 2.6.18-164.el5 为linux内核版本号
gcc version 4.1.2 20080704 为gcc编译器版本号
Red Hat 4.1.2-46 为Red Hat版本号
查看CPU信息
grep "model name" /proc/cpuinfo
查看内存大小
grep MemTotal /proc/meminfo
只显示当前路径下的所有文件的文件名
ls -l| grep "^-"|awk '{ printf "%s\n",$9}'
root用户的环境变量保存在/root/.bash_profile下
关闭TCP、UDP端口
lsof -P -n -i :port
kill pid
$! 可以表示前一个你在后台执行的pid
查找以sh结尾的文件
ls |grep "sh$"
查找以sh开头的文件
ls |grep "^sh"
后台运行
commond & (这种方式在关闭当前窗口时,会导致运行终止)
后台运行,并将输出重定义到文件中
nohup command > myout.file 2>&1 &
在当前路径及子路径下查找包括指定字符的文件
grep INDEX `find . -name *.cpp`
grep INDEX `find . -name *.cpp`|awk '{printf "%s\n", $1}'
去除重复
awk -F'|' '!a[$1,$3]++' test > test.bak
关闭防火墙
/etc/init.d/iptables stop
# linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
# linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
使用top,按用户查看
如查看yanyf用户下的进程情况,执行命令:top -u yanyf
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
使用top,按进程号查看进程占用资源情况
如执行命令:top -p 4930
使用ps,按进程号查看进程占用资源情况(其中rsz是是实际内存)
如执行命令:ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 4930
循环显示用户yanyf下的进程信息,间隔2秒,命令如下:
while true; do ps -ef |grep yanyf ; sleep 2; done
使用su切换用户时,出现如下错误:
su: failed to execute /bin/bash: Resource temporarily unavailable
解决办法,修改/etc/security/limits.conf文件,添加如下两行:
* soft nproc 65535
* hard nproc 16384
awk过滤前几行和最后的空行:
释放共享内存
ipcs -m | awk '$2 ~/[0-9]+/ {print $2}' | while read s; do sudo ipcrm –m $s; done
列出当前目录下的文件,不显示目录
ls -lR | grep "^-"|awk '{print $9}'
使用grep在当前目录下搜索所有文件中含有的字符串
grep -r UpdateTaskSum ./
使用grep搜索当前目录下、所有包含BILLFLAG的、文件名以.cpp结尾的文件
grep -r --include="*.cpp" BILLFLAG .
根据进程号查看进程包含的线程信息
ps -Lf 277999
查找最近两小时内生成的文件:
find . -amin -120
查找2020-06-30 09:20:00后生成的文件:
find . -newermt '2020-06-30 09:20:00'
针对文件名中包含20200630的文件,若其中第21列的值为空,则输出第1列的值
awk -F '|' '{if(length($21)==0 && length($1) > 3) print($1)}' `ls *20200630*`
查找当前目录下为空的子目录:
find -type d -empty
查看进程占用的端口
netstat -nap | grep 进程pid
查看当前pid进程启动时的工作目录
pwdx pid
调整swap和mem内存使用
这个交换参数控制内核从物理内存移出进程,移到交换空间。该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。
PS:设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区,默认的值是60
第一步:vi /etc/sysctl.conf
//必须修改此项,最小预留空间,如果过大,也会导致使用swap频繁
vm.min_free_kbytes = 5242880
vm.swappiness = 10
第二步:cat /proc/sys/vm/swappiness
第三步:执行 sysctl -p让系统参数生效
这篇关于Linux日常操作命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!