1.shell命令
(一)输出命令echo
字符串用单引号或者双引号
#!/bin/bash
echo "hello world"
(二)变量
变量名与等号之间不能有空格
your_name="runoob.com"
可以将shell命令的结果赋值给一个变量,shell命令使用``包围
for file in `ls ~/桌面/test`
do
echo $file
done
变量使用:使用${var}取出变量
加花括号是为了帮助解释器识别变量的边界
your_name="qinjx"
echo $your_name
echo ${your_name}
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
name="qinjx"
readonly name
echo $name
删除变量
使用 unset 命令可以删除变量。语法:
unset variable_name
(三)字符串
字符串可以用单引号,也可以用双引号,双引号里可以有变量,双引号里可以出现转义字符
#!/bin/bash
var='this is a var'
str='this is a string var is ${var} dispaly'
获取字符串长度
name="runoob"
echo ${#name}
提取字符串
string="xzcunoooob"
echo ${string:1:4} # 输出 unoo
(四)数组
array=('aaa' 'bbb' 'ccc')
array1=(11 22 33)
for((i=0;i<3;i++))
do
echo ${array[$i]}
echo ${array1[$i]}
done
获取数组的长度
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
(五)shell参数传递
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
| 参数 | 说明 |
|---|---|
| $# | 传递到脚本的参数个数 |
| $* | 以一个单字符串显示所有向脚本传递的参数 |
| $$ | 脚本运行的当前进程ID号 |
| * 相同 | 但是使用时加引号,并在引号中返回每个参数 |
echo "文件名为$0"
var=$@
echo $var
for i in $var
do
echo "第个参数为:${i}"
done
2.vim命令
(一)增减行号
set nu
set nonu
(二)文本处理
命令模式
删除光标当前行 dd
删除含光标后多少行 d数字d
撤销上一步 u
复制光标当前一行 yy
复制光标当前n行 y数字y
粘贴在光标的下一行p
删除一个字符 x相当于del,X相当于backspace
删除一个词 dw
复制一个词yw
移动到行头sheft+^
移动到行尾shift+$
移动到页头1+shift+g
移动到指定行 n+shift+g
编辑模式:在默认模式下按i/o/a进入编辑模式
编辑模式退出为一般模式Esc
i当前光标前
a当前光标后
o下一行插入
强制操作!
只退出不保存q
指令模式
:
:%s/old/new /g 替换
/
/word 查找 n下一个,shift+n上一个
?
/word 查找 n上一个,shift+n下一个
3.文本处理命令
4.将文件发送至制定的服务器
scp -r 文件名/目录名 root@IPaddress:/home/
5.系统与进程命令
- ps -ef 查看进程信息
| UID | PID | PPID | C | STIME | TTY | TIME | CMD |
|---|---|---|---|---|---|---|---|
| 用户id | 本进程id | 父进程的id | cup暂用率 |
ps -Lf pid 查看指定进程的线程信息
- free 查看内存使用信息
free -m 改变单位
- top命令
产看cup,内存信息
6.磁盘管理
df =disk free 查看磁盘的大小,会显示使用比例等信息
df -h 以k显示文件大小
du 查看文件夹的大小 sudo du -h --max-depth=1 /home/
7.网络
7.1修改ip地址
7.2netstat命令
netstat命令显示网络链接,路由表,接口链接,无效链接等信息
使用netstat -anp | grep xxxPORT命令查看端口占用情况
输出结果可以分为 Active Internet connections 和 Active UNIX domain sockets 两个部分
列数说明
Active Internet connections 指有效的网络连接,默认显示6列内容:
- Proto:协议名字,包括tcp, udp, udpl, raw等
- Recv-Q:表示网络接收队列,表示收到的数据已经在本地接收缓冲,还有多少没有被应用程序取走
- Send-Q:表示网络发送队列,表示存在本地缓冲区,但对方没有收到的数据或者没有 ACK 的
- Local Address:本地IP地址和端口
- Foreign Address:外部IP地址和端口
- State:网络连接状态,包括 ESTABLISHED、SYN_SENT、SYN_RECV、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSE、CLOSE_WAIT、LAST_ACK、LISTEN、CLOSING、UNKNOWN 等状态
参数说明
- a:显示所有连接,包括 LISTEN 状态的连接
- l:仅显示 LISTEN 状态的连接
- t:仅显示tcp相关选项
- u:仅显示udp相关选项
- n:拒绝显示别名,能显示数字的全部转化成数字
- o:显示信息中包括与网络计时器相关的信息
- e:显示扩展信息,例如uid等
- p:显示建立相关链接的程序名
- r:显示路由信息,路由表
- s:按各个协议进行统计
- c:每隔一个固定时间,执行该netstat命令。
常用命令
[root@node1 /]# netstat -anp | grep 8889 //查看端口调用
[root@node1 /]# netstat -at //查看tcp链接
[root@node1 /]# netstat -l //查看listen状态的接口
root@node1 /]# netstat -c //每秒显示一次信息
[root@node1 /]# netstat -r //显示核心路由信息
8.解压与压缩
8.1:gzip
解释:压缩文件,只能将文件压缩成为*.gz文件
命令:gzip+文件
特点:只能压缩文件,不能压缩目录,原来的文件不保存
解压缩:gunzip
8.2:tar
解释:打包目录,压缩后的文件格式为.tar.gz
参数:
-c 产生.tar打包文件
-v 显示详情信息
-f 制定压缩后的名字
-z 打包同时压缩
-x 解压
tar -zcvf XXX.tar.gz a.txt b.txt
tar -zxvf xxx.tar.gz
8.3:zip
解释:压缩文件和目录的命令,windows/linux通用且可以压缩
参数 -r 压缩目录
zip myzip.zip 1.txt 2.txt
unzip myzip.zip
9内存
内存占用高的前20
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20
查看内存情况
#按 k 查看
free
#按兆M查看
free -m
10文件管理
查看home目录下的文件大小 sudo du -h --max-depth=1 /home/
查看文件夹下文件的大小 du -sh * |sort -nr
tail -f vacation.log | grep -E 'ERROR|Exception' -n10
ps -ef|grep ssh|awk '{print $2}' 打印某一列
查看端口占用
sudo lsof -i:8080
查看未释放的文件描述符
sudo lsof | grep deleted
置空文件描述符
truncate -s 0 /proc/进程号/fd/文件描述符号
查看网络端口占用
netstat -anp|grep 8080
11 maven树查看
mvn 查看依赖: mvn dependency:tree