Linux 常用命令

203 阅读2分钟

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 查看进程信息
UIDPIDPPIDCSTIMETTYTIMECMD
用户id本进程id父进程的idcup暂用率

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地址

image-20210206195502689

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