测试常见八股之Linux命令
最近电脑要寄送,后面编辑不了Markdown文档,所以先把之前面试的一些八股文知识点整理出来分享给大家,里面可能会有一些纰漏或者错误,欢迎大家指正或批评~
Linux 命令作为测试岗位中的一项基础技能,同时也是提升效率和排查问题的核心工具。无论是服务器日志的快速定位、自动化脚本的编写,还是环境部署与权限配置,熟练掌握 Linux 命令都能让测试人员更高效地与系统打交道,缩短定位问题的时间,提升工作质量与交付速度。下面则是之前校招时整理大的Linux常用操作命令知识点:
1、linux常用命令
Linux命令组成: 命令 [选项] [参数] command [-options] [parameter]
常见命令:ls/pwd/cd/touch/mkdir/cp/mv/rm
cd (change directory) 切换文件夹
cd /home 绝对路径,以根目录开头 cd admin 相对路径,不以根目录开头,以文件名开头 cd .. 返回上一级目录 cd ~回到自己家的的目录,/home/damiin cd -电视回看功能 . 表示当前目录 .. 表示当前目录的上一级目录。 ./表示当前目录下的某个文件或文件夹,视后面跟着的名字而定 ../表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定。
pwd (print working directory) 查看当前目录
ls (list directory contents) 查看目录的内容
ls -l显示详细列表 ls -lh把文件大小以人性化的方式显示 ls -a显示所有的文件,包含隐藏文件,隐藏文件是以“.”开头的文件 ll 等于 ls -l ,ll-h ls 查看其它文件夹下面的内容 ls - la/home ls *txt 查看当前文件夹下以txt结尾的所有文件
mkdir (make directory) 创建文件夹(相对路径,当前目录下创建文件夹)
mkdir /home/admin/(绝对路径) mkdir /home/admin 如果上级目录不存在,加上-p 自动创建父目录、 mkdir a b 在当前目录创建多个文件夹 mkdir a/{c,d}在指定目录下创建多个文件夹 mkdir .abc 以.开头 创建隐藏目录
touch 创建一个空文件
touch abc.txt 在当前目录下创建 如果指定了目录,必须保证上级目录存在 touch .abc 创建隐藏文件 gedit abc.txt使用记事本打开文本
mv 移动或重命名文件或目录
mv old_name new_name mv a .a 隐藏a目录
cp 复制: cp index.txt 位置名(若无指定位置的地址,则默认创建一个新文本到当前位置)
cp index.txt 新文件 -a :复制所有内容,属性,时间,保持文本原有属性 cp index.txt 新目录 -r 复制目录 cp index.txt new.txt -i 是否覆盖 cp index.txt new inndex.txt -f 默认覆盖 index.text new index.txt -v显示拷贝进度 mv 移动(重命名) mv 1.txt 2.txt 重命名 mv 1.txt 目录/2.txt
rm 删除文件
rm a.txt 删除文件 rm abv -r 删除目录 rm * 删除当前目录下的所有内容 ,不能删除隐藏文件 . 和 .. 删除不掉
cat:连接和显示连接和文件内容
cat file_name
重定向:命令>位置 将返回结果写入文件中
>>覆盖 cat 将在文件中显示的内容返回到屏幕中(可显示多个),只具有查看功能 cat 1.txt 2.txt >3.txt 把多个文件的内容合并到新文件中 ls >>1.txt 把命令的结果输出到文件中,追加的返回方式 管道“|” 使用此管道符“|”可以将两个命令分隔开,“|”左边命令的输出就会作为“|”右边命令的输入 ls -l / | more 把左边的命令返回结果交给右边命令进行处理
head 显示文件头部的内容
查看/etc/profile 的前 10 行内容 head -n 10 /etc/profile
tail 显示文件尾部的内容
tail file1 显示文件file1的尾部10行内容; tail -n <行数> filename 显示文件尾部的n行内容; 例如:tail -n 5 file1 显示文件file1的末尾5行内容
echo 字符串的输出
显示结果定向至文件 echo "It is a test" > myfile
ps (processs status) 查看进程
ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。 ps -ax 显示查看当前所有运行的进程完整信息 ps -ef | grep xxx该命令用于查看进程xxx的相关信息。 基本参数: -A :所有的进程均显示出来,与 -e 具有同样的效用; -a :显示现行终端机下的所有进程,包括其他用户的进程; -u :以用户为主的进程状态 ; x :通常与 a 这个参数一起使用,可列出较完整信息。
netstat 查看服务及监听端口
根据端口号,查询进程名称和进程ID netstat -tunlp | grep 3306 根据进程名称,查询进程ID和端口号 netstat -tunlp | grep mysqld 根据进程ID,查询进程名称和端口号 netstat -tunlp | grep 29520
chmod 文件权限修改:
chmod [u/g/o/a] [+/-/=] [r/w/x] filename [ ]里都代表的意思: u表示User,是文件的所有者 g表示跟User同Group的用户 o表示Other,即其他用户 a表示ALL,所有用户 +表示增加权限 -表示取消权限 =表示取消之前的权限,并给予唯一的权限 r表示Read,即读文件 w表示Write,即写文件 x表示运行文件
ln -s 软链接:
软链接本事不存储内容,只记录源文件名称 ln -s 1.txt l_link 给1.txt创建一个软链接,相当于Windows中的快捷方式 ln -s 1.txt ~/1_link 给其他目录创建一个软链接,如果源文件不写绝对路径,软链接指向的文件是不存在的 ln -s /home/adime/1.txt ~/1_link ln -s abc abc_link 给目录创建软链接 只记录了源文件的名称
ln 硬链接:
硬链接本身占空间,相当于把源文件复制一份,与源文件同步变化,不能给目录创建硬链接 使用ll查看时,有一个数字在,代表有几个文件能同步发生变化 ln 1.txt 1.hard_link
grep 查找文件内容(可使用正则表达式)
grep hello text.txt 在某个文件中查找包含hello的内容,只要一行中有hello就会显示 grep -niv hello text.txt n显示查找到的内容的行号,i 查找时不区分大小写,v反向查找,查找不包含hello的行 grep -n hello /home/adime -r 查找整个目录中的所有文件,包含hello的内容
find 查找文件
find /home -name 1.txt 在home目录下查找文件名为1.txt 的文件 find /home -name '* txt' 在/home 目录下查找以txt 结尾的文件
grep 和 find的区别
- find基本上相当于 linux下的 “搜索” , 相当于windows下的搜索功能! 它是用来搜索文件的。
- grep是用来搜索文本的, 用来在standard input或文件内部的内容中, 来搜索文字内容的
- find 是完全匹配(通配符),而grep是包含匹配(正则表达式)
- 简单点说,grep 是查找匹配条件的行,find 是搜索匹配条件的文件。
tar 归档 打包
打包 tar cvf a.tar 1.txt 2.txt f 必须放在最后,f后面的第一个参数代表要生成的文件名,后面所有参数是要打包的文件 -t列出包里面的文件 tar tf a.tar 解包 tar xvf a.tar 如果没写目录,把包里面的文件解开放到当前目录 tar xvf a.tar -C tar 解包到指定文件夹吧,文件夹需要提前准备好 压缩 1. 打包 tar cf a.tar 生成a.tar文件 2. 压缩 gzip -r a.tar 生成a.tar.gz文件 解压 1. 解压 gzip -d a.tar.gz 生成a.tar 文件 2. 解包 tar xf a.tar -C ~/atar 解压到指定文件夹 一步到位打包并且压缩 tar czf b.tar.gz *txt 以gzip的格式打包并且压缩 一步到位解压并且解包 tar zxf b.tar.gz -C btar 以gzip 的方式解压并解包
zip 解压缩
zip -r zz *txt zz代表要生成的压缩文件,不需要扩展名,会自动生成zip扩展名 uuzip -d zz zz.zip 解压时会自动创建目录
压缩率:zip<gzip<bzip2
通用性:zip>gzip>bzip2
ifconfig/ip:查看和配置网络接口信息
ifconfig ip addr show
mount/umount:挂载和卸载文件系统
mount /dev/sdX1 /mnt # 挂载分区到指定目录 umount /mnt # 卸载挂载的文件系统
psql/mysql:用于与PostgreSQL或MySQL数据库交互的命令行工具
psql -U username -d database_name # 连接到PostgreSQL数据库 mysql -u username -p # 连接到MySQL数据库
history:查看命令历史记录
history
sudo:以超级用户权限运行命令
sudo command_to_run_as_superuser
2、vim :
vi有三种基本工作模式 命令模式 文本输入模式 末行模式 进入插入模式: i:插入光标前一个字符 I:插入行首 a:插入光标后一个字符 A:插入行末 o:向下新开一行,插入行首 O:向上新开一行,插入行首 进入命令模式 ESC:从插入模式或末行模式进入命令模式 h:左移 j:下移 k:上移 l:右移 M:光标移动到中间行 L:光标移动到屏幕最后一行 G:移动到指定行,行号-G w:向后一次移动一个字 b:向前一次移动一个字 {:按段移动,上移 }:按段移,下移 Ctr -d:向下翻半屏 Ctr-u:向上翻半屏 Ctr-f:向下翻一屏 Ctr-b:向上翻一屏 gg:光标移动到文件开头 G:光标移动到文件末尾 删除命令: x:删除光标后一个字符 X:删除光标前一个字符 dd:删除光标所在行,n dd 删除指定的行数 dD:删除光标前本行所有内容,不包含光标所在字符 dw:删除光标开始位置的字,包括光标所在的字符 撤销指令: u:一步一步撤销 Ctr-r:反撤销 重复命令: .:重复上一次操作的命令 文本行移动: >>:文本行右移 <<:文本行左移 复制粘贴: yy:复制当前行,n yy 复制 n 行 p:在光标所在位置向下新开辟一行,粘贴 可视模式: v:按字符移动,选中文本 V:按行移动,选中文本可视模式可以配合d,y,>>,<<实现对文本的删除,复制,左右移动 替换操作: r:替换当前字符 R:替换当前行光标后的字符,直到按ESC 查找命令: /:str查找 n:下一个 N:上一个