测试必备linux知识
2022-05-07 14:52:09 0 举报
AI智能生成
Linux
作者其他创作
大纲/内容
说明
后续多动手搭建环境,命令就熟悉了
简介
百科
环境基础
https://www.processon.com/view/link/5fdf4ebee0b34d4632ddb8bb
开启虚拟机
登录
如果是root,提示符为#,普通用户则为$
退出
logout
重启
reboot
关机
halt
文件系统(了解)
Linux下一切皆文件
目录结构
分支主题
/为根目录
目录结构说明
/bin
bin是Binary的缩写。这个目录存放着最经常使用的命令,例如cp、mv、ls等
/boot
这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/dev
dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc
是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
/home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib
这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/opt
opt 是 optional(可选) 的缩写,这是给主机额外软件安装目录
cd /opt/lampp/
/proc
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
这个目录的内容不在硬盘上而是在内存里
less /proc/cpuinfo
/root
该目录为系统管理员,也称作超级权限者的用家目录
/sbin
s 就是 Super User 的意思,是 Superuser Binaries (超级用户root的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/tmp
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的
/usr
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
/usr/local
这是提供给一般用户的/usr目录,在这里安装一般的应用软件
/usr/lib
存放一些常用的动态链接共享库和静态档案库
/usr/include
用来存放Linux下开发和编译应用程序所需要的头文件
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序
/sbin, /usr/sbin 则是给 root 使用的指令
/usr/bin
系统用户使用的应用程序(指令)
/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
/usr/src
内核源代码默认的放置目录
/var
var 是 variable(变量) 的缩写,存放经常改动的数据文件,包括各种日志文件
如果你想做一个网站,你也会用到/var/www这个目录
颜色
蓝色
目录
绿底蓝字,说明这个目录加了x权限
绿色
可执行文件
红色
压缩文件
浅蓝
链接文件
灰色
其他文件
部分样例
子主题
常用命令
用户
#表示root,$表示普通用户
useradd
su
切换用户
su root
还是之前的目录
su - root
进入这个用户的家目录
sudo
获取超级用户权限
有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限
vi/vim文本编辑器(重要)
vi是Linux/Unix下最常用的文本编辑器
vim是vi的升级版本
安装
yum install vim -y
vim 就像 Windows 里面的 notepad 一样
用法
vim xxx.txt
如果没有这个文件,就先创建一个
移动光标的位置,通过上下左右键就行
命令模式
命令模式(默认)
常见操作
行号
显示
:set nu
不显示
:set nonu
光标定位
方向键
左
h
backsapce
右
l
空格
上
k
下
j
上一行行首
-
本行行首
0
本行末尾
shift +4 = $
指定行
nG
向上
n-
向下
n+
向后半屏
ctrl + d
向后全屏
ctrl + f
向前半屏
ctrl + u
向前全屏
ctrl + b
文件末尾
G
shift + g
搜索
/
向光标下搜索关键字
n
从上往下看结果
N
从下往上看结果
?
向光标上搜索关键字
替换
替换当前行首次出现
:s/old/new
old表示原来得
new表示你要改为的内容
替换当前行全部
:s/old/new/g
替换指定范围行的首次
:x,y s/old/new
从x行到y行
替换指定范围全部
:x,y s/old/new/g
修改全部
:%s/old/new/g
复制
行
单行
yy
粘贴p
多行
nyy
1,3y
复制1-4行
行内复制
yw
nyw
y^
y$
粘贴
小p
大P
删除
字符
x
光标所在位置
X
光标前
nx
删n个,从光标所在位置开始
nX
删n个,光标前的字符
单词(了解)
dw
de
dE
db
dB
行内删除
D
当行,光标及光标后的内容
d$
当行,光标及光标后的内容
d0
当行,光标前的内容
整行
dd
单行
ndd
多行
x,yd
多行
最后要按回车键
撤销
u
撤销最近的一次操作
U
撤销所以操作
退出
退出
:q
保存退出
:wq,w意思是write,保存文本,q是quit,这样就会退出 vim
不保存退出
如果编辑了,还没保存,不想要了,可以输入:q!,后面加叹号的话表示强制
编辑模式
进入编辑模式
i
I
a
A
o
O
退出编辑模式
esc
帮助
help
命令使用摘要及参数列表
xxx -h
示例
ls --help
说明:可能内核版本原因,如果不行,就用man
man
命令说明文件
比help更加详细的文档,man xxx
示例
man ls
文件管理
pwd
显示当前路径
ls
列举指定目录下的子目录和文件
参数
-a, --all
不隐藏任何以“.” 字符开始的项目
-l
用列表(长格式)的方式列出文件信息
ll
ls -l
drwxr-xr-x 3 root root 52 Feb 16 13:21 dockertest
其中第一个字段的第一个字符是文件类型
“-”表示普通文件
“d”代表目录
“l”代表连接文件
“b”代表设备文件
第一个字段剩下的 9 个字符是模式(这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限),其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限
421
第二个字段是硬链接(hard link)数目,这个比较复杂
第三个字段是所属用户
第四个字段是所属组
第五个字段是文件的大小(字节)
第六个字段是文件被修改的日期
Feb 16 13:21
第七个字段是最后是文件/文件夹名
你可以通过命令chown改变所属用户,chgrp改变所属组。
755含义
-t
以时间排序
时间由近及远
-r, --reverse
以相反次序排列
如果是-rt,表示时间由远及近
-R, --recursive
同时列出所有子目录层
-S
按大小排序
单位是字节
-h
易读方式,根据文件大小,转换为M、K
cd
change directory,就是切换目录
用法
cd回车
退到当前用户个人目录
同cd ~
cd /
进入根目录
cd ..
返回上级目录
cd ../xx
退到上级目录的xx目录
cd –
回到上一次操作的目录
cp
复制文件夹/文件
参数
-a:尽可能的将文件的属性、权限的内容都照原状复制
-b:如果目的文件存在,就创造一个备份
-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
-i:若目的地有重复的文件,询问是否覆盖
-f:若目的地有重复的文件,则覆盖原有文件
-L:复制符号链接,自动修改链接以保证链接有效
示例
复制目录并改名
cp -r phpwind_v9.0.1_20141223/upload/ ~/37/phpwind
mv
移到文件/文件夹、改名
用法
如果目标目录存在,则是复制到该目录下
如果目标目录不存在,则是改名
参数
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用
示例
rm
删除文件/文件夹
参数
-r:删除目录及子目录,目录下如果有子目录及文件也会被删除
-f:不询问直接删除
-i:删除前逐一询问确认
示例
rm -rf test/*
删除test目录下的所有内容
rm -rf test/
删除test目录
rm -rf test
删除test目录
mkdir
创建文件夹
mkdir -p /mysql/{data,redo,binlog,tmp,logs}
rmdir
用来删除一个空文件夹
rmdir不能删除非空目录
参数
-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
rmdir -p test1/test2
-p表示连同子目录一起删除
touch
创建一个空文件
cat
查看小文件内容,否则内存撑爆了
参数
-n:由第一行开始对所有输出的行数编号
-b:和-n相似,只不过对于空白行不编号
示例
将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件
cat a.txt b.txt > c.txt
对行进行编号(显示行号)
cat -b test.txt
cat -n test.txt
往文件中添加内容(如果文件不存在,会创建文件):cat 1.txt> test.txt
tac
反向显示文档内容,由最后一行到第一行反向在屏幕上显示出来,cat和tac相反
more
more 是分页后只能往后翻页,翻到最后一页自动结束返回命令行
用法
more [参数] 文件
下一行
回车
下一页
空格
less
less 是往前往后都能翻页
用法
less [参数] 文件
下一行
回车
j
方向键↓
上一行
k
方向键↑
下一页
空格
展示第一行
g
展示最后一行
G
head
显示文件的开头至标准输出中
参数
-n 显示的行数
示例
head -2 /etc/passwd
head -n2 /etc/passwd
tail
动态查看文件内容
查看文件末尾内容
参数
-f 动态读取
示例
查看passwd的后2行:tail -2 /etc/passwd
du
文件和目录的磁盘使用空间
用法
du -sh *
参数
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以K,M,G为单位,提高信息的 可读性
-m或--megabytes 以MB为单位输出
lsof
列出当前系统打开文件的工具
参数
lsof filename 显示打开指定文件的所有进程
lsof -i :80 查询指定端口打开的文件
lsof -p pid 查询指定的pid打开的文件
chmod
用来给文件或者文件赋权限
两种方式
数字
r=4 w=2 x=1
文本
示例
chmod 755 test.txt
chown
改变文件所有者和所属组
参数
-R 递归式地改变指定目录及其所有子目录、文件的文件主
chgrp
改变文件所属组
参数
-R 递归
wc
统计指定文件中的行数、字节数、字数,并将统计结果显示输出
参数
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
示例
cat access.log |wc -l
clear
清屏
history
查看历史命令
命令记录个数
echo $HISTSIZE
修改
export HISTSIZE=1000
清除历史命令
history -c
搜索
grep
显示文件中的匹配行
参数
-c:显示匹配行数
-e 字符串:匹配特殊字符串,如-开头
-i:忽略大小写
-v:输出不匹配行
-w:匹配指定字符串
可以和别的命令通过"|"管道符连接使用
示例
ps -ef|grep httpd |grep -v grep
grep ren /etc/passwd
grep -c ren /etc/passwd
去掉空行、注释
grep -Ev '#|^$' nginx.conf.default > nginx.conf
find
查找目录下的文件
用法
find 目标目录 搜索参数 操作参数
参数
-name 文件名:可以跟通配符
-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
-atime 天数:文件最后访问时间为指定天数之前,负数表示之后
-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
-user 用户名:属于用户的目录和文件
-type 文件类型
示例
find / -name lampp
定位文件位置
whereis
whereis mysql
which
which mysql
which lrzsz
区别
whereis是搜索程序名,如果是一个普通的文件是找不到的
which命令只查找环境变量中path里面的路径
归档压缩
zip/unzip
压缩zip包和解压缩以.zip结尾压缩文件
zip
命令格式
zip [选项] 压缩文件名 需要压缩的文档列表
参数
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-x “文件列表” 压缩时排除文件列表中指定的文件
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
unzip
参数
-x "文件列表" 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下
示例
tar
文件打包
参数
-c:创建新文档
-x:解压缩归档文件
-f 文件名:使用归档文件
-z:使用gzip解压缩
-v:详细输出模式
示例
压缩
tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt,命令可以将1.txt,2.txt,3.txt 打包并压缩成1.tar.gz
解压缩
tar zxvf 1.tar.gz,可以解压
进程
ps
显示瞬间进程 (process) 的动态,使用权限是所有使用者
参数
ps -aux
ps -ef
可以用管道符连接其他命令使用
示例
ps -ef|grep tomcat
kill
用来终止指定的进程
命令格式
参数
-9 强制终止进程
示例
kill -9 pid
杀所有java进程
ps -ef | grep java|grep -v grep | awk '{print $2}' | xargs kill -9
软件安装
rpm安装包
参数
-i 安装-U 更新(升级)-e 卸载 -v 显示安装信息-h 显示安装进度
使用
安装
rpm -ivh xxx.rpm
如果提示有依赖关系,我们忽略依赖关系强制安装
rpm -ivh --nodeps xxx
查询
rpm -qa|grep xxx
卸载
rpm -e xxx --nodeps
如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps
yum
yum install -y xxx
源码安装
参考nginx安装
https://www.cnblogs.com/uncleyong/p/10742883.html
二进制安装
参考jmeter安装
https://www.cnblogs.com/uncleyong/p/10731334.html
常见环境问题排查方法(无法访问)
selinux
https://www.cnblogs.com/uncleyong/p/14204262.html
检查防火墙
查看防火墙状态:systemctl status firewalld关闭防火墙:systemctl stop firewalld开机不启动防火墙:systemctl disable firewalld查看防火墙是否开机启动:systemctl is-enabled firewalld
服务是否正常启动
查看服务
ps -ef |grep xxx
jps -ml
java应用
要看端口是否处于监听状态
netstat -lntp |grep port
要看日志是否有异常
服务无法启动
查看端口占用
lsof -i:8780
netstat -lntp |grep 8780
ping服务器
ping ip
telnet端口
telnet 虚拟机ip 80
如果是云服务器,确保开放了端口
0 条评论
下一页