10进制转16进制:printf %x 15

16进制转10进制:printf %d 0xF

查看进程占用的端口

netstat -nap | grep 进程pid

linux tc 限制网速及延时,可用于测试不同网络环境下的客户端响应时间。

查看linux page cache里的内容

jvm内存dump

jmap -dump:file=abc.jprof 86848   # 注 eclipse j9不支持该命令,需要使用-Xdump:heap:events=user启动jvm,然后发送kill -3信号量。参见https://blog.openj9.org/2018/10/29/introducing-option-builder-tools-for-xdump-and-xtrace/和https://www.eclipse.org/openj9/docs/dump_javadump/

jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。

命令格式:jps [options ] [ hostid ]

[options]选项 :
-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数(推荐) 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
-Joption:传递参数到vm,例如:-J-Xms512m

使用cgroup限制进程的cpu、内存、io

有时候不方便或无法docker,或者仅仅是希望部分资源不被某进程占用,如跑批和管理一起,使用cgroup是个不错的方法,尤其是在具有大量内存的一台服务器中。可以参考:

https://www.cnblogs.com/yanghuahui/p/3751826.html

https://blog.csdn.net/lbyyy/article/details/54342541

https://www.cnblogs.com/shishaochen/p/9735114.html

https://www.infoq.cn/article/docker-kernel-knowledge-cgroups-resource-isolation/

https://blog.51cto.com/wzlinux/2046566

watch more /proc/net/dev    # 实时监控流量文件系统 累计值

系统自带,比iftop等方便。

二、查看和修改Linux的时间

2.设置时间和日期
例如:将系统日期设定成2009年11月3日的命令

命令 : "date -s 11/03/2009"

将系统时间设定成下午5点55分55秒的命令

命令 : "date -s 17:55:55"

3. 将当前时间和日期写入BIOS,避免重启后失效
命令 : "hwclock -w"

============

Linux登录后设置提示信息:

  • /etc/issue 本地端登录前显示信息文件
  • /etc/issue.net 网络端登录前显示信息文件
  • /etc/motd 登陆后显示信息文件

可以添加以下几个常用选项

\r 操作系统的版本 (类似 uname-r)
\m 架构
\t 显示本地端时间的时间
\d 本地端时间的日期
\l 显示第几个终端机的接口
\n 显示hostname名称

如下所示:

在Linux下用split进行文件分割:

  模式一:指定分割后文件行数

  对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。

  命令:split -l 300 large_file.txt new_file_prefix

  模式二:指定分割后文件大小

split -b 10m server.log waynelog

对二进制文件我们同样也可以按文件大小来分隔。

awk根据非空格类分隔符获取第N列

ifconfig | awk '{print $2}' | awk -F: '{print $2}'

查看cpu socket数量、核心数、线程数

[root@oel-12c ~]# lscpu
Architecture: x86_64
CPU op-mode(s): -bit, -bit
Byte Order: Little Endian
CPU(s):
On-line CPU(s) list: ,
Thread(s) per core:
Core(s) per socket:
座:
NUMA 节点:
厂商 ID: GenuineIntel
CPU 系列:
型号:
型号名称: Intel(R) Core(TM) i5-8250U CPU @ .60GHz
步进:
CPU MHz: 1799.998
BogoMIPS: 3599.99
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 256K
L3 缓存: 6144K
NUMA 节点0 CPU: ,

非交互创建用户并设置密码

[root@specl ~]# useradd  -p  'pass' jean 
[root@specl ~]# echo 'jean:pass' | chpasswd  (指定密码,步骤不能缺少否则shadow里面密码是明文且密码是无效的)

注:pass--密码

jean--新建的帐号

linux查看内存插槽数、实际条数及大小

dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range

Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: No Module Installed

linux cp命令直接覆盖不提示按Y/N的方法

# cp -rf install.log 123/
cp:是否覆盖“install.log”? 
  加了-f了,依然有此提示。

服务器上查找后发现在默认的系统中是加了别名如下
[root@linuxzgf ~]# alias 
alias cp='cp -i'

去掉别名即可: unalias cp

一个命令杀死指定端口号进程:

kill -9 `lsof -t -i:port`

如果lsof需要root权限,非root可用netstat -ntlp | grep "\:1521\ "。

根据进程名杀:

ID=`ps axu | grep hsserver | grep -v grep | awk '{print $2}'`
for id in $ID
do
kill - $id
echo "killed $id"
done

nohup 不生成 nohup.out的方法

nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 &

关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海

>/dev/null 表示将标准输出信息重定向到"黑洞"

2>&1 表示将标准错误重定向到标准输出(由于标准输出已经定向到“黑洞”了,即:标准输出此时也是"黑洞",再将标准错误输出定向到标准输出,相当于错误输出也被定向至“黑洞”)

vim 多行删除:

首先在命令模式下,输入“:set nu”显示行号; 2.通过行号确定你要删除的行; 3.命令输入“:32,65d”,回车键,32-65行就被删除了,很快捷吧
如果无意中删除错了,可以使用‘u’键恢复(命令模式下)。

修改主机名,主机名不能含有下划线:

vim /etc/sysconfig/network

HOSTNAME=my-hostname

:wq

init 6

使用grep -v时候,想去除多个pattern

grep test somefile | grep -vE '(error|critical|warning)'

查看进行完整启动路径

[root@localhost src]# ll /proc/21375 | grep exe
lrwxrwxrwx 1 uft_trade_B dba 0 7Ղ 18 13:42 exe -> /home/uft_trade_B/uft2/bin/hsserver

查看Linux进程CPU过高具体的线程堆栈(不中断程序)
top -H -p 24714
pstack 24714

xargs的一个选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次:

ps aux | grep "hsserver" | grep -v "grep" | xargs -I {} pstree -p {} >> monitor.log
当某个命令的输出要做个后面一个命令的输入时,xargs -I {}特别有用。没有它,需要一大堆的shell命令拼凑。

查看目录下所有文件的大小,不仅仅只是目录

[root@rhel65 projects]# du . -a
36 ./HelloLinux/obj/x64/Debug/main.o
40 ./HelloLinux/obj/x64/Debug
44 ./HelloLinux/obj/x64
48 ./HelloLinux/obj
4 ./HelloLinux/main.cpp
32 ./HelloLinux/bin/x64/Debug/HelloLinux.out
36 ./HelloLinux/bin/x64/Debug
40 ./HelloLinux/bin/x64
44 ./HelloLinux/bin
100 ./HelloLinux
104 .

如果仅仅查看zip文件包含哪些文件
unzip -t a.zip

查看进程启动路径,有些时候,我们想知道进程启动的完整路径,此时top因为排序不一定方便看到。可查看/proc/PID,如下:

[root@iZ23nn1p4mjZ sbin]# cd /proc/9122/
[root@iZ23nn1p4mjZ 9122]# ll
total 0
dr-xr-xr-x 2 root root 0 Feb 28 10:25 attr
-rw-r--r-- 1 root root 0 Feb 28 10:25 autogroup
-r-------- 1 root root 0 Feb 28 10:25 auxv
-r--r--r-- 1 root root 0 Feb 28 10:25 cgroup
--w------- 1 root root 0 Feb 28 10:25 clear_refs
-r--r--r-- 1 root root 0 Feb 28 08:49 cmdline
-rw-r--r-- 1 root root 0 Feb 28 10:25 comm
-rw-r--r-- 1 root root 0 Feb 28 10:25 coredump_filter
-r--r--r-- 1 root root 0 Feb 28 10:25 cpuset
lrwxrwxrwx 1 root root 0 Feb 28 10:25 cwd -> /usr/local/src
-r-------- 1 root root 0 Feb 28 10:25 environ
lrwxrwxrwx 1 root root 0 Feb 28 08:49 exe -> /usr/sbin/nginx

top特定进程的线程,常用于jstack/pstack分析。

top -Hp 140201

查找指定目录下包含指定字符串的所有文件

grep -rl 'abc' /

grep -rn "hello,world!" *

* : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

top查看命令的完整启动路径

top

按c

top以MB为单位显示内存信息

top -M

查看内存top io趋势

pidstat -d  # 这不一定是最直观的,重点关注下列指标:

  •   await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
  •   svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.

iotop # 这应该是最直观的, 当iowait很高的时候,这必然是最需要的

查看进程top cpu趋势

pidstat -u 3 100 -p PID

查看进程内存趋势

pidstat -r

就多个应用共享一个服务器的情况来说,建个crontab监控关键应用的资源消耗趋势是绝对必要的,比如我们就很多次碰到因为配置被修改导致某应用的cpu从6%很稳的变成了cpu 60%。

查看某个进程的内存/交换区峰值

cat /proc/PID/status,比如

[root@iZ23nn1p4mjZ logs]# cat /proc/9758/status | grep Vm
VmPeak: 5104816 kB
VmSize: 5104816 kB
VmLck: 0 kB
VmHWM: 3174476 kB
VmRSS: 3174476 kB
VmData: 5022756 kB
VmStk: 104 kB
VmExe: 22772 kB
VmLib: 7996 kB
VmPTE: 7268 kB
VmSwap: 0 kB

查看进程可运行在cpu列表:

[root@iZ23nn1p4mjZ logs]# cat /proc/9758/status | grep Cpus
Cpus_allowed: f
Cpus_allowed_list: 0-3

显示线程

ps -eLf | grep PID

ping显示时间戳

windows:

@echo off
:START
echo ==============================================%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% >> pingwithtime.out
ping www.baidu.com -n 100 >>pingwithtime.out
goto START

linux: ping localhost | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } '

删除一天前的文件

find ./ -mtime +1 -exec rm -rf {} \;

linux tcp抓包

tcpdump, 分析使用wireshark。
查看进程启动时间
# ps -A -opid,stime,etime,args
PID STIME ELAPSED COMMAND
1 09:21 08:56:14 init [3]
2 09:21 08:56:14 [migration/0]
3 09:21 08:56:14 [ksoftirqd/0]
4 09:21 08:56:14 [watchdog/0]
5 09:21 08:56:14 [events/0]
6 09:21 08:56:14 [khelper]
7 09:21 08:56:14 [kthread]
10 09:21 08:56:14 [kblockd/0]
11 09:21 08:56:14 [kacpid]
47 09:21 08:56:14 [cqueue/0]

vi

删除当前字符到行尾的所有字符

dw       删除光标之后的单词剩余部分。
d$ 删除光标之后的该行剩余部分。有些时候一行特别长,想删除后面的部分比如注释的时候就很有用了
删除每行第一个字符    :%s/^.//g
多行删除
法一:
单行删除,:1(待删除行)d
多行删除 ,:1,10d
法二:
光标所在行,dd
光标所在行以下的N行,Ndd 查看进程的内存块组成
pmap -x PID

												

linux不常用但很有用的命令(持续完善)的更多相关文章

  1. linux非常用但很有用的命令

    查找指定目录下包含指定字符串的所有文件 grep -rl 'abc' / top查看命令的完整启动路径 top 按c top以MB为单位显示内存信息 top -M 查看内存top io趋势 pidst ...

  2. Linux中常用的监控性能的命令(sar、mpstat,vmstat, iostat,)详解

    Linux中常用的监控性能的命令有: sar:能查看CPU的平均信息,还能查看指定CPU的信息.与mpstat相比,sar能查看CPU历史信息 mpstat:能查看所有CPU的平均信息,还能查看指定C ...

  3. 【工匠大道】一些Vim(Linux)不常见但很逼格的命令(不断更新中)

    本文地址 分享提纲: 1. :Tlist 2. :colorscheme 3. :set cursorline 4. ma 5. vim -x 6. CTRL-] 7. 折叠 8. 向别的用户终端写信 ...

  4. Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 ...

  5. 【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别

    Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行 ...

  6. Linux中常用的查看系统信息的命令

    导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到una ...

  7. 继承自NSObject的不常用又很有用的函数(2)

    函数调用 Objective-C是一门动态语言,一个函数是由一个selector(SEL),和一个implement(IML)组成的.Selector相当于门牌号,而Implement才是真正的住户( ...

  8. linux下一些很有用的命令

    ps -ef | grep keepalive | grep -v grep | awk '{print $2}' | xargs kill -9 wget --random-wait -r -p - ...

  9. Linux下常用的硬件信息查看命令

    1.查看CPU型号,这里为了方便查看结合管道符用grep进行了匹配,当然只需要前面的命令也可以,命令如下: cat /proc/cpuinfo | grep "model name" ...

随机推荐

  1. Python面向对象之方法

    普通方法要执行类里面的方法是通过对象触发的 触发的时候把自己赋值给self 类方法 vim day7-7.py #!/usr/bin/python # -*- coding:utf-8 -*- cla ...

  2. jquery 1.9 1.8 判断 浏览器(IE11,IE8,IE7,IE6)版本

    1.9以后很我方法删除了,所有和之前版本判断浏览器版本有所差记录一下 1.9 ------------------------------------------------------------- ...

  3. POJ3268 Silver Cow Party【最短路】

    One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big co ...

  4. poj2406 Power Strings 【KMP】

    Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...

  5. BAT等大厂已开源的70个实用工具盘点(附下载地址)

    前面的一篇文章<微软.谷歌.亚马逊.Facebook等硅谷大厂91个开源软件盘点(附下载地址)>列举了国外8个互联网公司(包括微软.Google.亚马逊.IBM.Facebook.Twit ...

  6. 2018牛客网暑期ACM多校训练营(第三场) A - PACM Team - [四维01背包][四约束01背包]

    题目链接:https://www.nowcoder.com/acm/contest/141/A 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K ...

  7. POJ 1986 - Distance Queries - [LCA模板题][Tarjan-LCA算法]

    题目链接:http://poj.org/problem?id=1986 Description Farmer John's cows refused to run in his marathon si ...

  8. python字典获取最大值的键的值

    有时我们需要字典中数值最大的那个键的名字,使用max(dict, key=dict.get)函数非常的方便 key_name = max(my_dict, key=my_dict.get) 获取之后你 ...

  9. IDEA 配置环境和相关工具整理(新手入门)

    转载自:https://blog.csdn.net/moneyshi/article/details/79722360 因项目环境需要,开发工具需要统一 , 项目团队都使用idea,所以不得已自己也配 ...

  10. 【make install】自定义安装目录,添加动态链接库 【--prefix】 【ldconfig】 【LD_LIBRARY_PATH】

    怎么卸载make install安装的软件? https://www.zhihu.com/question/20092756 怎么指定安装目录以及对应的添加动态库的方法 linux库在不指定安装路径时 ...