Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。
安装wget
1 | yum install wget |
压缩/解压
1 | # 压缩文件 |
切割日志
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 | #dump 方法栈信息 |
linux的目录结构
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 | #从本地复制到远程 |
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
1 | #scp 命令使用端口号 4588 |
文件权限操作
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" |
通过这个命令,不但能得到服务器总的内存大小,还可以知道服务器上具体插了几个内存条以及每条内存的大小,很好用
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 | 进入块可视模式 |