1、查看端口占用
netstat -tunlp | grep 端口号
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名
或
lsof -i:端口号
2、查看ip:
ip a
3、vi命令
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。
「dd」:删除光标所在行。
「yy」:复制光标所在行到缓冲区。
「0」:移到文章的开头。
「G」:移动到文章的最后。
「$」:移动到光标所在行的"行尾"。
「^」:移动到光标所在行的"行首"
「/」:查找关键字,「n」:往下查找,「N」:往上查找
「set nu」:显示所有行号
4、生成公私钥
#添加用户
useradd worker
mkdir /home/worker/.ssh
cd /home/worker/.ssh
ssh-keygen -t rsa
密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(敲黑板:这个很重要,不能外泄),id_rsa.pub这个是公钥
添加公钥到 authorized_keys 文件,如果没有 authorized_keys 文件创建个
cat /home/worker/.ssh/id_rsa.pub >> /home/worker/.ssh/authorized_keys
或
cp id_rsa.pub authorized_keys
chmod 700 /home/worker/.ssh
chmod 600 /home/worker/.ssh/authorized_keys
5、改目录的所属用户
chown worker:worker -R /data/
-R是递归/data下所有用户,都改成worker用户
6、查看内存
free -h
7、查看硬盘
df -h
8、查看某一个目录下各个目录占多少磁盘
du -h --max-depth=1
9、查看cpu、内存情况
top
或
top -p 进程ID
10、查看JavaGC频率
jstat -gc 进程ID 1000 1000
前一个1000是1000ms,即是每1秒输出一次
后一个1000是输出1000次
S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
11、在path目录下建立软链接
which java
echo $PATH
cd /usr/local/bin
ln -s -f /opt/jdk1.8.0_141/bin/java
ln -s -f /opt/jdk1.8.0_141/bin/javac
这样就不用配置Java环境变量了
12、查网络延时
ping IP地址
看time字段延时是多少
13、切换root用户
sudo su -
切换worker用户
su worker
14、切用户的时候让环境变量生效
source /etc/profile
15、查看进程
ps -ef | grep 要搜的
16、在一个目录的所有文件中查找内容
find . -name “*” | xargs grep 要搜的
. 表示当前目录
xargs 表示要搜文件内容,而不是文件名
15、查看所有资源限制
ulimit -a
ulimit:linux shell 的内建命令,它具有一套参数集,用于对 shell 进程及其子进程进行资源限制。(退出 shell 后失效)
例如用户同时运行了两个shell终端进程,只在其中一个环境中执行了ulimit – s 100,则该 shell 进程里创建文件的大小会有相应的限制,而另一个 shell 终端包括其上运行的子程序都不会受其影响。
16、临时修改整个系统的内核参数(重启后失效)
sysctl
另外 linux 还有一个 /proc 文件系统,也是 Linux 内核提供的,用于临时查看/修改内核参数的机制,可通过修改文件内容临时修改内核参数。它和 sysctl 功能基本一致。
docker 和宿主机共用内核,因此直接修改宿主机的 sysctl 参数,在容器内也会生效。
17、上述两个命令都是临时修改,系统重启后又需要重新设置。要想做到永久修改,需要修改它们对应的默认配置文件:
/etc/security/limits.conf: ulimit 的默认配置
/etc/sysctl.conf: sysctl 的默认配置
18、Shell $0, $#, $*, $@, $?, $$和命令行参数
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
19、$* 和 $@ 的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
20、查看cpu,memory,disk
cores=`cat /proc/cpuinfo| grep "processor"| wc -l`
echo "逻辑cpu个数=$cores"
memory=`free -h|awk 'NR==2{print $2}'`
echo "内存大小=$memory"
disk=`lsblk -db|awk 'NR>1{sum+=$4} END {print sum/1024/1024/1024}'`
echo "磁盘总大小=${disk}G"
21、tar压缩解压缩
主选项: -c 建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename) -t 察看打包档案的内容含有哪些档名,重点在察看『档名』就是了; -x 解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开 辅选项: -j 透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2 -z 透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz -v 在压缩/解压缩的过程中,将正在处理的文件名显示出来! -f filename -f 后面要立刻接要被处理的档名! -C 目录 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 --exclude FILE:在压缩打包过程中忽略某文件 eg: tar --exclude /home/zenghao -zcvf myfile.tar.gz /home/* /etc -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件 -P(大写) 保留绝对路径,亦即允许备份数据中含有根目录存在之意; eg: 压 缩:tar -zcvf filename.tar.gz 要被压缩的档案或目录名称 查 询:tar -ztvf filename.tar.gz 解压缩:tar -zxvf filename.tar.gz -C 欲解压缩的目录
22、awk
-F 分隔符 以分隔符分隔内容
{} 要执行的脚本内容
cat /etc/passwd |awk -F ':' '{print $1"t"$7}'
23、上传下载文件
sz:下载文件 rz -ey、rz -e:上传文件
24、查看Linux内核版本
cat /proc/version
25、grep
「-n」打印行号
grep -n "root" h.txt 匹配的内容显示行号
「-v」不包括
「-E」表示过滤 多个参数
grep -Ev "sshd|network|crond|sysstat|"
「-o」仅打印你需要的东西,默认打印正行
grep -o "hello" h.txt
「-i」忽略大小写
grep -i "hello" h.txt
「-c」用于统计文中出现的次数
「--color」 搜索内容显示红色
grep "hello" h.txt --color
「-A 3」 字符的哪一行的前3行
grep -A 3 "hello" h.txt
「-B 3」 字符的哪一行的后3行
「-C 3」 字符的哪一行的前后3行



