测试角度总结linux常用命令集合(一)

前言 

  好久没更新博客了,悄咪咪的看了下,上次更新说一年前的事情了。那时候立下flag:每周至少更新一次博客!呵呵,打脸了。

  言归正传,现在之姐厚着脸皮来更新了

  回顾这一年管理linux的情况(实际就是老大写的脚本,我只运行sh xxx.sh运行),啪啪打脸(捂脸)

 

测试场景应用

在测试工作中,我常用的场景有:

1.查看日志,定位后台问题

2.维护环境,保证测试环境正常运行(搭建环境另说)

3.跑日常接口脚本

 

前提了解:测试场景应用需要一定的权限,以及基本的一些操作

一.Linux下权限管理

1.Linux下有两种用户:普通用户和超级用户()。
普通用户:在linux下做有限的事情;
超级用户:可以在linux系统下做任何事情,不受限制。
普通用户的提示符是“$”,超级用户的命令提示符是“#”。
命令: su [用户名] 功能:切换用户
2.Linux权限管理
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
其他用户:o—Others
3.文件访问权限的种类
 基本权限:
    read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录信息的权限。
    write 对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限。
    execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
    - 表示不具有该权限。
    3.文件权限值得表示方法
    r– 只读,用数字4表示
    -w- 仅可写,用数字2表示
    –x 仅可执行,用数字1表示
    rw- 可读可写,用数字6表示
    -wx 可写可执行,用数字3表示
    r-x 可读可执行,用数字5表示
    rwx 可读可写可执行,用数字7表示
    — 无权限

实例:
(1)增加文件t.log所有用户可执行权限
chmod a+x t.log
(2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息
chmod u=r t.log -c
(3)给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)
(4)将test目录及其子目录所有文件添加可读权限
chmod u+r,g+r,o+r -R text/ -c

4.用户和群组
    groupadd group_name 创建一个新用户组
    groupdel group_name 删除一个用户组
    groupmod -n new_group_name old_group_name 重命名一个用户组
    useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
    useradd user1 创建一个新用户
    userdel -r user1 删除一个用户 ( '-r' 排除主目录)
    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
    passwd 修改口令
    passwd user1 修改一个用户的口令 (只允许root执行)
    chage -E 2005-12-31 user1 设置用户口令的失效期限
    pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
    grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

二.操作

1.cd用法

Linux下的相对路径/绝对路径

cd ..返回上一级

cd -返回最近访问文件

cd /data/log/进入根目录下某个文件

pwd输出当前的绝对路径

2.查看文件内容

 cat/tac命令
   格式:cat [选项] [文件]
   功能:查看目标文件的内容。
   常用选项:
   -b 对非空输出行编号。
   -n 对输出的所有行编号。
   -s 不输出多行空行。
 more命令
   格式:more [选项] [文件]
   功能:more命令显示文件内容,每次显示一屏。
   常用选项:
   -n 对输出的所有行编号。
   -s 将文件中连续的空白行压缩成一个空白行显示。
   -num 这个选项制定一个整数,表示一屏显示多少行。
   q 退出more。
 less命令
   格式:less [参数] 文件
   功能:less命令与more命令类似,但二者存在差别,less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
   常用选项:
   -i 忽略搜索时的大小写。
   -N 显示每行的行号。
 head命令
   格式:head [选项] [文件]
   功能:head命令在屏幕上显示指定文件的开头若干行。
   常用选项:
   -c –bytes=[-]N 显示每个文件前面N字节。
   -n –lines=[-]N 显示指定文件的前面N行。
 tail命令
   格式:tail [选项] [文件]
   功能:用于显示指定文件的末尾,不指定文件时,作为输入信息进行处理。常用查看日志文件。
   说明:tail命令从指定点开始将文件写到标注输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
   常用选项:
   -f 循环读取。
   -n <行数> 显示行数

 我看服务器日志常用命令:tailf app.log|grep "user_id/关键词"

3.touch使用

  格式touch [文件]创建文件

  -a 或--time=atime或--time=access或--time=use  只更改存取时间
  -c 或--no-create  不建立任何文档
  -d 使用指定的日期时间,而非现在的时间
  -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
  -m 或--time=mtime或--time=modify  只更改变动时间
  -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
  -t 使用指定的日期时间,而非现在的时间

4.创建目录

mikdir [文件1][文件2]目录:指定要创建的目录列表,多个目录之间用空格隔开。

5. mv命令
  格式:mv [选项] 源文件或目录 目标文件或目录
   功能:mv命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
   常用选项:
   -f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
   -i 若目标文件(destination)已经存在时,就会询问是否覆盖。

6. 删除文件

rm [选项][文件]

7.find命令
  格式:find pathname -options
  功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。
  常用选项:
  -name 按照文件名查找文件。
8.grep命令
  格式:grep [选项] 搜寻字符串文件
  功能:在文件中搜索字符串,将找到的行打印出来。
  常用选项:
  -i 忽略大小写的不同,所以大小写视为相同。
  -n 顺便输出行号。
  -v 反向选择,亦即显出没有‘搜寻字符串’内容的那一行。
9.zip/unzip命令
  格式:zip 压缩文件.zip 目录或文件
  功能:将目录或文件压缩成zip格式。
  常用选项:
  -r 递归处理,将指定目录下的所有文件和子目录一并处理。
10.tar命令
  式:tar [-cxtzjvf] 文件与目录… 参数
  能:打包/解包,不打开它,直接看内容。
  c 建立一个压缩文件的参数指令(create的意思)。
  x 解开一个压缩文件的参数指令。
  t 查看tarfile里面的文件。
  z 是否同时具有gzip的属性?亦即是否需要用gzip压缩?
  j 是否同时具有bzip的属性?亦即是否需要用bzip压缩?
  v 压缩的过程中显示文件。这个常用,不建议用在背景执行过程。
  f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
  C 解压到指定目录。
实例:
(1)将文件全部打包成tar包
tar -cvf log.tar 1.log,2.log 或tar -cvf log.*
(2)将/etc下的所有文件及目录打包到指定目录,并使用gz压缩
tar -zcvf /tmp/etc.tar.gz /etc
(3)查看刚打包的文件内容(一定加z,因为是使用gzip压缩的)
tar -ztvf /tmp/etc.tar.gz
(4)要压缩打包/home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

11.df命令

  显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示
-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型
实例:
(1)显示磁盘使用情况
df -l
(2)以易读方式列出所有文件系统及其类型
df -haT

 12.date命令

显示或设定系统的日期与时间
 命令参数:
 -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
 -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
 -u  显示GMT。
 %H 小时(00-23)
 %I 小时(00-12)
 %M 分钟(以00-59来表示)
 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
 %S 秒(以本地的惯用法来表示)
 %a 星期的缩写。
 %A 星期的完整名称。
 %d 日期(以01-31来表示)。
 %D 日期(含年月日)。
 %m 月份(以01-12来表示)。
 %y 年份(以00-99来表示)。
 %Y 年份(以四位数来表示)。
 实例:
 (1)显示下一天
 date +%Y%m%d --date="+1 day"  //显示下一天的日期
 (2)-d参数使用
 date -d "nov 22"  今年的 11 月 22 日是星期三
 date -d '2 weeks' 2周后的日期
 date -d 'next monday' (下周一的日期)
 date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
 date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
 date -d last-month +%Y%m(上个月是几月)
 date -d next-month +%Y%m(下个月是几月)

 13.grep命令

 强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索
 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
 命令格式:
 grep [option] pattern file|dir
 常用参数:
 -A n --after-context显示匹配字符后n行
 -B n --before-context显示匹配字符前n行
 -C n --context 显示匹配字符前后n行
 -c --count 计算符合样式的列数
 -i 忽略大小写
 -l 只列出文件内容符合指定的样式的文件名称
 -f 从文件中读取关键词
 -n 显示匹配内容的所在文件中行数
 -R 递归查找文件夹
 grep的规则表达式:
 ^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。   
 $  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。   
 .  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。   
 *  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。   
 .*   #一起用代表任意字符。  
 []   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。   
 [^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。   
 \(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
 \<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。   
 \>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。   
 x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。   
 x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。   
 x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
 \w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
 \W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
 \b    #单词锁定符,如: '\bgrep\b'只匹配grep。
 实例:
 (1)查找指定进程
 ps -ef | grep svn
 (2)查找指定进程个数
 ps -ef | grep svn -c
 (3)从文件中读取关键词
 cat test1.txt | grep -f key.log
 (4)从文件夹中递归查找以grep开头的行,并只列出文件
 grep -lR '^grep' /tmp
 (5)查找非x开关的行内容
 grep '^[^x]' test.txt
 (6)显示包含ed或者at字符的内容行
 grep -E 'ed|at' test.txt

posted @ 2018-12-01 16:20  Amyliu的世界  阅读(257)  评论(0编辑  收藏  举报