您的位置:首页 > 运维架构 > Linux

关于测试工程师 linux的常用命令

2018-01-04 17:43 344 查看
/bin 该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。
/boot 该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这里的一些信息
/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访
问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以
看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。
/cdrom 该目录在刚安装系统时是空的,你可以将光驱文件系统挂在这个目录下, 例如
“mount /dev/cdrom /cdrom”
/etc 该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统
配置文件、设备配置信息、设置用户信息等。
/sbin 该目录用来存放系统管理员的系统管理程序。
/home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存
放该用户的主目录。
/lib 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库
/lost+found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存
放在这里。
/mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。
/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的
/root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录
/tmp 用来存放不同程序执行时产生的临时文件
/usr 用户的很多应用程序和文件都存放在该目录下

mount -t iso9660 /dev/cdrom /mnt/cdom 把光驱挂装到/mnt/cdrom目录
-t参数是指定光盘的文件系统类型,一般来说,光盘都是用的iso9660标准的格式。接下来的/dev/cdrom
是你的光驱对应的设备文件,我们前面说过每一个硬件设备都对应了一个标准的设备文件。最后一
个/mnt/cdrom目录是你的一个本地硬盘上的目录,在使用以前如果发现没有这个目录,可以建立一个。
当然也不一定非要使用这个目录,你甚至可以很变态的使用mount /dev/cdrom /root命令把你的光驱挂
装到你的的/root目录,这样一来你的/root的内容将不再是原来的内容,直到你取消挂载。
下面的命令取消挂载:
umount /mnt/cdrom 或 umount /dev/cdrom
这两个命令都可以把刚才挂装上去的光盘取消挂载,只有这样你的光盘才能取出。不行的话,你再执行
一次挂装命令,然后按一下光驱上的Eject按钮,看看有没有什么反应啊?没有,对不对?这就是Linux
的一个优点,虽然操作起来有点麻烦的感觉,但是想想看,非常安全和稍微的复杂,你选哪一个?
使用软盘的方法也很类似:
mount /dev/fd0 /mnt/floppy
/dev/fd0是你的软盘对应的设备文件,后面的自然是你的挂装目录。但是如果这个时候你想要尝试能不
能在没有取消软盘的挂装就推出软盘,你就是一个非常BT的人了。有没有搞错?软盘的退出是机械的操
作,你硬要按出来,我有什么办法?那么取消软盘挂载的方法也是很类似的:
umount /dev/fd0 或 umount /mnt/floppy
其实挂装时候第一个参数-t,可以省略,因为系统会自动的判断应该用什么样的格式来识别。不过知道
了我们用的软盘或者光盘的格式,对于挂装一个ISO文件有帮助。
mount -t iso9660 -o loop /home/kris/somewhat.iso /mnt/cdrom
我们都知道现在网上有很多的ISO文件,就是把光盘的所有内容打包成为一个文件,方便网上的传送。我
们获得这样的文件以后不一定非要用刻录机把它刻录成为光盘,我们只要用上面的命令就可以把光盘的
ISO文件挂载到/mnt/cdrom目录了。第一个参数-t iso9660就是光盘使用的文件系统格式,第二个参数是
loopback的意思。
取消挂装:umount /mnt/cdrom

bzip2既是一个压缩工具也是压缩时的命令:

语法:bzip2 [-option] 文件名    后缀 .bz2

-d:解压

-z:压缩

-k:压缩后保留源文件
-----------------------------
gzip  既是一个压缩工具也是压缩时的命令:

语法:gzip [-option] 文件名  后缀 .gz

-d:解压

-数字 (指定压缩率:1为最低,9为最高,默认是6)

压缩率越高压缩所消耗的时间越长

tar  是一个打包工具

语法:tar [-option] 打包名  需要打包的文件

-c:建立一个包
-t:查看包中文件
-v:打包过程中显示打包文件
-f:需要打包的内容为文件
-x:解开一个包
-z:同时启用gzip工具进行压缩或者解压

tar -cvf 打包

tar -xvf 解包

打包时需要手动加上后缀 .tar,不加后缀不容易辨识。

tar -zcvf 打包

tar -zxvf 解包

ls 列出文件和目录的命令
-A 选项用来列出所有的文件,包括那些隐藏的文件
-l 这个选项用来显示一个列表
-R R的意思就是recursive递归,明显这个选项让系统显示出这个目录下面的所有文件以外,还要显示出
所有子目录下面的文件。也就是把我们那一大堆水果全部抖出来。
--color 这个选项特别有用,我估计大家的显示器都是彩显吧,什么?你的显示器还是黑白的?天哪!
既然是彩显,那么我们可以让ls命令用不同的眼色代表不同的文件类型。比如可执行文件用绿色,普通
文件是白色,目录是蓝色。也许你会问,目录也是文件吗?对的,在Linux里面一切都是文件,所有的硬
件设备都用一个文件来代替,比如你的软驱,就是用/dev/fd0来代替的。目录也是一个文件。

mv 改变文件名和目录名的命令
cp 复制文件和目录命令
man 命令名字   帮助查看命令
nano 和
vi编辑文件的命令 和 cat (内容少)以及
more(内容多)显示文本文件

管道命令
可是如果我们用ls命令显示一个目录的所有文件的时候遇到一页不能显示完的情况该怎么办?这就需要
一个管道符号“|”,就是“\”按钮上面的字符:
ls /dev | more

用一个文件
来纪录刚才ls的命令显示的所有结果
ls /dev > filenames.txt
> 创建一个新的文件filenames.txt,如果已经有了同名的文件就复盖掉以前的内容
>>是用来在已经存在的文件后面追加新的内容,如果没有这个文件就创建它

cat >> friends << "EOF"
> a
> b
> c
> EOF
运行第一行以后,意思就是把我们接下来的输入内容保存到friends文件里面,当我们输入“EOF”的时
候结束。“<<”的意思就是向前面的命令传送一个数据。
中间我象征性的输入了a b c三行,每一行前面的“>”是系统自动产生的提示符号。第四行输入“EOF”
系统就保存刚才输入的a b c三行到一个叫做friends的文件里面去。

find -iname [目录] 文件名 在指定目录里面(如果不指定目录就是当前目录)查找指定文件名的文件

ps -a | grep some_command
用ps命令加上-A参数显示所有的当前运行的进程,用管道符号“|”加上grep命令检索是否有我们指定的
some_command运行

chmod 771 file 
更改一个文件的权限  
rwx  = 7
r*x = 5
4 2 1 r w x   

chgrp
-R mengxin /usr/meng

/usr/meng及其子目录下的所有文件的用户组改为mengxin

chattr命令用来改变文件属性
a:让文件或目录仅供附加用途; 
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>:设置文件或目录版本;
-V:显示指令执行过程;
+<属性>:开启文件或目录的该项属性;
-<属性>:关闭文件或目录的该项属性;
=<属性>:指定文件或目录的该项属性。
chattr
+i /etc/fstab

然后试一下rmmvrename等命令操作于该文件,都是得到Operation
not permitted的结果。


让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:
chattr
+a /data1/user_act.log


在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:

grep

match_pattern
file_name
grep

"match_pattern"
file_name

在多个文件中查找:

grep "match_pattern" file_1 file_2 file_3 ...
输出除之外的所有行 -v 选项:

grep

-v
"match_pattern" file_name
标记匹配颜色 --color=auto 选项:

grep "match_pattern" file_name

--color=auto
使用正则表达式 -E 选项:

grep

-E
"[1-9]+"

egrep

"[1-9]+"

只输出文件中匹配到的部分 -o 选项:

echo

this is a
test
line. | grep
-o
-E "[a-z]+\."
line.

echo this is a test line. |

egrep -o
"[a-z]+\."
line.

统计文件或者文本中包含匹配字符串的行数 -c 选项:

grep

-c
"text" file_name
输出包含匹配字符串的行数 -n 选项:

grep "text"

-n
file_name

cat

file_name | grep "text" -n

#多个文件
grep "text" -n file_1 file_2

打印样式匹配所位于的字符或字节偏移:

echo gun is not unix | grep -b -o "not"
7:not

#一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项

-b -o
一般总是配合使用。

搜索多个文件并查找匹配文本在哪些文件中:

grep -l "text" file1 file2 file3...


grep递归搜索文件

在多级目录中对文本进行递归搜索:

grep "text" . -r -n
# .表示当前目录。

忽略匹配样式中的字符大小写:

echo "hello world" | grep

-i
"HELLO"
hello

选项 -e 制动多个匹配样式:

echo this is a text line | grep

-e
"is"
-e
"line" -o
is
line

#也可以使用-f选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。
cat patfile
aaa
bbb

echo aaa bbb ccc ddd eee | grep

-f
patfile -o

在grep搜索结果中包括或者排除指定文件:

#只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" . -r

--include
*.{php,html}

#在搜索结果中排除所有README文件
grep "main()" . -r

--exclude
"README"

#在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r

--exclude-from
filelist

使用0值字节后缀的grep与xargs

#测试文件:
echo "aaa" > file1
echo "bbb" > file2
echo "aaa" > file3

grep "aaa"

file*

-lZ
| xargs -0
rm

#执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(\0),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。

grep静默输出:

grep

-q
"test" filename

#不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。

打印出匹配文本之前或者之后的行:
#显示匹配某个结果之后的3行,使用 -A 选项:seq 10 | grep "5"
-A 3
5
6
7
8

#显示匹配某个结果之前的3行,使用 -B 选项:
seq 10 | grep "5" -B 3
2
3
4
5

#显示匹配某个结果的前三行和后三行,使用 -C 选项:
seq 10 | grep "5" -C 3
2
3
4
5
6
7
8

#如果匹配结果有多个,会用“--”作为各匹配结果之间的分隔符:
echo -e "a\nb\nc\na\nb\nc" | grep a -A 1
a
b
--
a
b

用户和群组的管理:

/etc/passwd:用户信息

/etc/group:群组信息

/etc/shadow:用户密码

UID,用户识别码
GID,群组识别码
groupadd 用于创建新的群组

语法:groupadd [-option] 群组名

-g GID:设定群组的GID

-----------------------------------------
groupdel 用于删除已经存在的群组

语法:groupdel 群组名

注意:如果群组中有用户,需要先删除用户才能删除群组

----------------------------------------
useradd  用于创建新的用户

语法:useradd [-option] 用户名

-u UID:设定用户UID

-g GID或群组名:指定新增用户所在群组

-M:不建立“家”目录,如果不加-M则默认建立“家”目录

---------------------------------------

userdel 删除用户 (刚刚登录过的用户不能删除)

语法:userdel 用户名

-r:将该账号的家目录和右键文件一并删除。

--------------------------------------

能否把一个用户同时放入多个群组?

--------------------------------------
usermod 用于修改用户的UID、所属群组

语法:usermod [-option] 用户名

-u UID:修改UID

-g GID或群组名:修改用户所属群组

-G GID或群组名:用于设定用户的附加群组

--------------------------------------

id 用于显示用户的UID、GID及所属的群组

语法:id 用户名

------------------------------------
groups 用于显示群组信息

语法:groups 用户名

-------------------------------------

su 用于切换用户

- :表示完整的切换到另一个用户环境
passwd 用于设定用户密码

语法:passwd 用户名

passwd如果不加用户名则给当前用户设置密码

rpm [-option] 包名
-e:卸载

yum [-option] [command]
[-option] :

-h:显示帮助信息

-v:显示安装细节

-y:对所有的问题都回答yes

[command]:

install:  安装

erase:卸载

reinstall:重新安装

update:升级

remove:移除

ps 用于显示当前系统运行的进程:

  进程就是执行起来的程序。

语法:ps [-option]

-a:显示所有进程

-u:显示用户

-x:列出所有的tty进程

-e:所有进程,与a略有区别

-f:显示完整进程信息

ps -aux

ps -ef

PID:进程号

PPID:父进程号

面试真题:如何只显示某一个文件的进程号?

ps -aux |grep 1435

-------------------------------------------------

w 用于查看当前系统负载

语法:w

该命令是管理员常用命令

---------------------------------

vmstat 用于监控当前系统状态

语法:vmstat

---------------------------------

top 用于动态监控系统所占资源,每3s变一次。

语法:top

top如何查看后面的页面:

shift  +  <

shift  +  >

---------------------------------

free 用于显示内存使用情况

要看第二行

----------------------------------

kill 用于停止或者杀死进程,可以通过PID号或任务编号来操作对象。

语法:kill [-option] PID或任务编号

-9:强制终止

---------------------------------

网络管理:

ifocnfig 用于显示或者设置网卡

------------------------------

netstat 用于显示网络状况

语法:netstat [-option]

netstat -an   显示网络状况

netstat -lnp  显示当前启用了哪些端口

------------------------------

ping 用于测试目标与主机之间的连接状况

语法:ping [-option] 目标

-c 数字:指定测试多少次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 软件测试