0%

Linux常用命令

Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。

安装wget

1
yum install wget    

压缩/解压

1
2
3
4
# 压缩文件
tar zcvf config.tar.gz config
# 解压文件
tar zxvf config.tar.gz

切割日志

1
sed -n '/2020-04-30 02:00:[0-9][0-9]/,/2020-04-30 03:00:[0-9][0-9]/p' /mnt/hug/service/server/service-server.log>/mnt/hug/service/server/lj0430.txt

查询日志关键字

1
cat 日志文件名.log | grep "关键字"

JVM堆栈信息dump及问题排查

1
2
3
4
5
6
7
8
#dump 方法栈信息
jstack $pid > /home/$pid/jstack.txt

#dump jvm内存使用情况
jmap -heap $pid > /home/$pid/jmapheap.txt

#dump jvm二进制的内存详细使用情况 (效果同在Tomcat的catalina.sh中添加 set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/heapdump 此文件需要借用内存分析工具如:Memory Analyzer (MAT)来分析)
jmap -dump:format=b,file=/home/$pid/jmapdump.txt $pid

linux的目录结构

hvmxfG1MIVnRwDH

  • bin (binaries)存放二进制可执行文件

  • sbin (super user binaries)存放二进制可执行文件,只有root才能访问

  • etc (etcetera)存放系统配置文件

  • usr (unix shared resources)用于存放共享的系统资源

  • home 存放用户文件的根目录

  • root 超级用户目录

  • dev (devices)用于存放设备文件

  • lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块

  • mnt (mount)系统管理员安装临时文件系统的安装点

  • boot 存放用于系统引导时使用的各种文件

  • tmp (temporary)用于存放各种临时文件

  • var (variable)用于存放运行时需要改变数据的文件

linux常用命令

命令格式:命令 -选项 参数 (选项和参数可以为空)

1
如:ls -la /usr

操作文件及目录

命令 参数 示例 说明
cd cd /home 切换目录
pwd pwd 显示当前工作目录
touch touch 1.txt 创建空文件
mkdir mkdir testdir 创建一个新目录
-p mkdir -p dir1/dir2/dir3/ 创建多级目录,父目录不存在情况下先生成父目录
cp cp 1.txt 复制文件或目录
-r cp -r dir1/ 递归处理,将指定目录下的文件与子目录一并拷贝
mv mv dir1 dir2 移动文件或目录、文件或目录改名
rm rm 1.txt 删除文件
-r
-f
rm -rf dir1 r 同时删除该目录下的所有文件
f强制删除文件或目录
rmdir rmdir dir1 删除空目录
cat cat 1.txt 显示文本文件内容
more more 1.txt 分页显示文本文件内容,可前后翻页,空格向后,b向前
less less 1.txt 分页显示文本文件内容,可前后翻译,空格向后,b向前,支持底行模式
head head 1.txt 查看文本开头部分,默认十行
-[num] head -20 1.txt 查看文本开头部分指定行数
tail tail 1.txt 查看文本结尾部分,默认十行
-[num] 查看文本结尾部分指定行数
-f 循环滚动读取文件并动态显示在屏幕上,根据文件属性追踪
-F 循环滚动读取文件并动态显示在屏幕上,文件文件名追踪
wc wc 1.txt 统计文本的行数、字数、字符数
-m wc -m 1.txt 字符数
-w wc -w 1.txt 文本字数
-l wc -l 1.txt 文本行数
find -name find / -name 1.txt 在文件系统中的指定目录下查找指定的文件
grep grep aaa 1.txt 在指定文件中查找包含指定内容的行,例:在1.txt中查找包含aaa的所有行
ln ln 1.txt 1_bak.txt 建立链接文件
-s ln -s 1.txt 1_bak.txt 对源文件建立符号连接,而非硬连接

系统常用命令

命令 参数 示例 说明
top top 显示当前系统中耗费资源最多的进程
date date 显示系统当前时间
ps 较少单独使用,配参数根据需求,ps -ef 或者 ps -aux
-e
/-A
ps -e 显示所有进程,环境变量
-f ps -ef 全格式显示
-a ps -a 显示所有用户的所有进程(包括其他用户)
-u ps -au 按用户名和启动时间的顺序来显示进程
-x ps -aux 显示无控制终端的进程
kill -9 kill -9 pid 强制杀死一个进程
df df 显示文件系统磁盘空间的使用情况
-h df -h 以人类可读的方式显示,Kb,Mb,GB等
du 显示指定的目录及其子目录已使用的磁盘空间的总和
-s du -s * 显示指定目录的总和,*当前目录下表示所有
-h du -sh * 以人类可读的方式显示,Kb,Mb,GB等
free free 显示当前内存和交换空间的使用情况
ifconfig ifconfig 网卡网络配置,常用于查看当前IP地址
ifconfig eth0 192.168.12.22 临时修改系统IP(重启后失效)
ping ping baidu.com 测试网络的连通性
hostname hostname 查看主机名
shutdown -r shutdown -r 先关机再重启
-h shutdown -h 关机后不重启
halt halt 关机后关闭电源,相当于shutdown -h
reboot reboot 重新启动,相当于shutdown -r

压缩解压缩

命令 参数 示例 说明
gzip gzip 1.txt 压缩后面的文件或者文件夹
-d gzip -d 1.txt.gz 解压后面的压缩文件
-[num] gzip -9 1.txt 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6
tar -c tar -cvf 1.tar 1.txt 建立一个压缩文件的参数指令,例,将1.txt压缩为1.tar,也可指定多个文件或文件夹
-x tar -xvf 1.tar 1.txt 解开一个压缩文件的参数指令
-z tar -acvf 1.tar.gz 1.txt
tar -zxvf 1.tar.gz 1.txt
是否需要用gzip,使用gzip压缩或解压
-v 压缩的过程中显示文件
-f 使用档名,再f之后要立即接档名

SCP

scp命令用于Linux之间复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

1
2
3
4
5
6
7
#从本地复制到远程
scp local_file remote_username@remote_ip:remote_folder
scp -r local_folder remote_username@remote_ip:remote_folder

#从远程复制到本地
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/

如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

1
2
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

文件权限操作

  • linux文件权限的描述格式解读

  • r 可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 –> 764)

  • 第1位:文件类型(d 目录,- 普通文件,l 链接文件)

  • 第2-4位:所属用户权限,用u(user)表示

  • 第5-7位:所属组权限,用g(group)表示

  • 第8-10位:其他用户权限,用o(other)表示

  • 第2-10位:表示所有的权限,用a(all)表示

命令 参数 示例 说明
chmod chmod u+r 1.txt 修改文件或目录的权限
u表示当前用户,g表示同组用户,o表示其他用户,a表示所有用户
r表示可读,w表示可写,x表示可执行
例:修改1.txt文件给当前用户添加可执行权限
-R chmod -R u+r dir1 修改指定目录及其子目录的所有文件的权限
三位数字 chmod 764 1.sh 直接指定文件的权限
7:表示可读可写可执行,4+2+1
6:表示可读可写,4+2
chown chown user1:group1 1.txt 修改文件的所属用户和组
例:将1.txt文件的所属用户指定为user1,组为group1
-R chown -R user1:group1 1.txt 修改目录下所有文件及子目录的所属用户和组,用数字来表示泉下(r=4,w=2,x=1,-=0)

linux系统常用快捷键及符号命令

命令 参数 实例 说明
ctrl + c 停止进程
ctrl + l 清屏
ctrl + r 搜索历史命令
ctrl + q 退出
tab 自动不全
> echo “haha” > 1.txt 将前一条命令的输出,写入到后面的文本中
将文本清空,然后写入
>> echo “lala” >> 1.txt 将前一条命令的输出,写入到后面的文本中
不清空文本,追加到文本最后
| cat 1.txt | grep 'hello' 管道命令,以前一个命令的输出作为输入,然后进行运算
例:打印1.txt中带有hello字符串的行
* 通配符,指所有

查看物理内存大小

这是因为free 命令看到的内存为可供kernel分配的物理内存,非全部物理内存,系统启动后,物理内存会保留一部分给BIOS,linux内核本身也要占用一部分,所以进行系统后可供分配的物理内存就少了一点

想看到全部物理内存可以用dmidecode命令

1
dmidecode -t memory | grep Size: | grep -v "No Module Installed"

通过这个命令,不但能得到服务器总的内存大小,还可以知道服务器上具体插了几个内存条以及每条内存的大小,很好用

image.png

vim编辑器

vi / vim是Linux上最常用的文本编辑器而且功能非常强大。

修改文本

操作 说明
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
:wq 保存并退出

定位命令

操作 说明
:set nu 显示行号
:set nonu 取消行号
gg 跳到首行
G 跳到末行
:n 跳到第n行

替换和取消命令

操作 说明
u undo,取消上一步操作
ctrl + r redo,返回到undo之前
r 替换光标所在处的字符
R 从光标所在处开始替换,按Esc键结束

删除命令

操作 说明
x 删除光标所在处字符
nx 删除光标所在处后的n个字符
dd 删除光标所在行。ndd删除n行
dG 删除光标所在行到末尾行的所有内容
D 删除光标所在处到行尾的内容
:5,7d 删除指定范围的行

常用快捷键

操作 说明
Shift + zz 保存退出,与“:wq”作用相同
v 进入字符可视模式
V 进入行可视模式
ctrl + v 进入块可视模式