测试必须掌握的linux命令

测试必须知道的linux命令

前言:要熟悉linux的命令,除了多操作,还需要深理解,不要死记硬背。比如 -a 表示 -all的头个字母。

查看:

ls
ls -a (–all) 隐藏目录
ls -l 显示文件详细信息
-rw-r–r-- 1 root root 12666 Oct 25 2018 adr.sh
drwx------ 2 root root 31 Jun 17 2015 .ade
上述代表的意思

文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名 
 文件属性常见的类型有:
   d 目录
   -  普通文件
   l   符号链接

ls -R ( --recursive 递归) 同时列出所有子目录层
ls -lh (–human-readable 人类可读的 ) 显示kb或者mb的文件详细信息
ls -d */ 只显示目录
ls -p 目录文件增加"/"
ls -S (size ) 按照文件大小排序
ls -t (time) 按照时间排序
ls -r (–reverse 相反的) 反序,结合上面执行

find:查找文件
find / -name 22.py 全盘寻找文件
find /home -name 22.py 查找文件
find . -name 22.py 当前目录查找文件
find . -name “.py" 查找py文件
find / -type f -name "
.py” | xargs grep “AMS_API_URL”

-type 根据文件类型查找文件:
d目录
f 文件

查找目录:find /(查找范围) -name ‘查找关键字’ -type d

-iname:根据文件名查找,不区分大小写
”?”:可表示任意单个字符
“*”:通配任意的字符,可以是任何东西
root@1-10001:/home# find -name “sql
./clean.sql
./cle.sqll
root@1-10001:/home/# find -name "sql?"
./cle.sqll
以上的例子表明:“
”“?”区别:?匹配单个字符,但不包括空格。*匹配空格

grep 查找文本内容
-n (numberl)显示行号
-r (–recursive ,可以看出很多-r都是递归的意思) 显示递归查询,查询包含子目录
-i (–ignore 忽略)不区分大小写
-c (–count) 统计字符数字次数

grep -rn ‘mai’ . “.”表示当前下的目录(包含子目录)
grep -rn ‘export’ / 全盘搜索
如何查找文件名以’t’开头,‘y’结尾的所有文件中,包含“cold、cloud、crowd”单词的所有行
grep -rn “cold、cloud、crowd” t* *y
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -v tsetyuamg test.txt -v 忽略某个字符
grep -n --color=auto ‘deve’ docker-new-arch.sh 查询某个字符并且显示颜色 -n 表示显示行数
查询含有文件名 test.conf 的行 (查询特殊字符时,诸如 $ . ‘ ” * [ ] ^ | \ + ? 时,未避免转义,需要在前面加 ‘’ )
grep “test.conf” ./log.txt

[root@lanny tesq1]# tail -6 22.py
查看后面6行数据

[root@lanny tesq1]# head -3 22.py
查看前三行数据

[root@lanny tesq1]# sed -n ‘5,7p’ 22.py
查看5-7行数据

[root@1-min etc]# cat -n rsyslog.conf //显示所有行号(包括空行)
[root@1-min etc]# cat -b rsyslog.conf //显示所有行号(但不包括空行)

查询进程
ps -ef | grep crod
C cpu消耗的时间

查询正在内存运行的程序
ps -aux 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等

-A 显示所有进程
-a 显示同一终端的所有程序
-e 跟A一样的效果
-f 表示程序间的相互关系

pid ppid
进程 父进程
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间

netstat -tulnp
-tu 显示tcp udp 协议
-l (–listening)显示监控中listening的socket
-n (-numeric 数字的)显示ip而不是域名
-p (–programs 程序)显示程序

whereis xxx 搜索程序名的所在文件路径
只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
which xxx 搜索命令所在路径

新增:

touch 创建空白文件
touch 22.py

修改:

mv
改名
mv redis-3.2.8 redis

别名:
alias 别名=‘命令’
alias cl=‘clear’
unalias cl 取消
查看有哪些别名
输入 alias即可

删除:

rm 删除
不加参数只能删除某一个文件,不能删除目录
-r 递归删除,可删除子目录及文件
-f 强制删除

rmdir 删除空目录

文件系统权限相关

常用目录意义:
/boot 系统启动相关文件
/dev 系统的设备文件,即驱动程序
/etc 配置文件
/bin 可执行文件,用户命令 比如cat ls 常用
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序 ,比如shutdown
/home 用户目录
/lib 存放着和系统运行相关的库文件
/media 存放着可移除的设备,比如软盘,光盘 (空)
/mnt 存放临时的映射文件,通常是一些用来安装其他设备的子目录 (空)
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置 (空)
/proc 伪文件系统,存放着用户与内核的交互信息
/root 超级用户的目录
/srv 系统启动服务时可以访问的数据库目录 (空)
/sys 伪文件系统,启动后才有文件存在
/tmp 临时文件,重启后消失
/usr 存放着应用程序和文件
/usr/bin 主要放置一些应用软件工具,比如wget ,man
/usr/sbin 网路管理的必备程序 比如tcpdump
/var 存放系统产生的经常变化的文件 比如日志

权限:

chmod 777
权限顺序依次为:
user
group
other
r 4
w 2
x 1
chomd +x 22.py 赋值这个文件所有都有执行权限
chmod u+x 22.py 赋值改文件只有user 才有执行权限
同样
chmod -x
chmod u-x

chown www-data:www-data 22.x 修改文件的用户以及所属组

权限对于目录的意义:
r 读,对于目录来说,如果没有该权限,则不能使用ls等查看目录下的文件。只能在父目录看到该目录存在。如果仅有该权限,则只能查看其目录下存在哪些文件,但是看不到内容,需要x权限才可以 看到文件内容
w 写,可以创建目录,可以删除某个文件。改名,更改文件路径.
x 可执行,就是可以cd切换到这个目录。没有这个权限,则所有的r,w操作都不可以。

权限对与文件的意义:
r 可读内容
w 可编辑,修改内容(但不可以删除文件)
x 可以执行文件

文件的删除跟目录的w权限有关系,所以目录的w权限不能随便给

其他常用命令

cd - 返回之前的目录

cp -r 有文件的话需要添加

网络 /etc/network/interfaces

tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩

tar -zcf test1.tar.gz * 压缩当前文件夹目录下文件命名为test
tar vzxf test1.tar.gz 解压该压缩文件到该文件夹

当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
tar vzxf test1.tar.gz -C /home/ -C将文件压缩到指定的文件目录

后台执行
& 后台执行
find / -name 22.py & 后台执行找出命令22 &

jobs 后台程序查看
nice -n -20 设置某程序优先级为20 高
fg 将后台放入到前台
bg 激活后台暂停程序

io重定向:

输出重定向 讲一个文件内容读取到另一个文件上
< 输入重定向 输入后直接传到这个文件上,典型的例子就是 date > 22.py

修改环境变量:
1.直接敲命令:
export PATH="$PATH:/usr/local/bin"
2、修改profile文件:
#vi /etc/profile
在里面加入:

  1. 修改.bashrc文件(个人目录下有,没有的话自己创建)
    /# vi /root/.bashrc
    在里面加入
    echo $PATH

将查看到的信息保存到变量里,然后输出来。
temp=$(ls -l)
echo $temp

1.环境变量区别
set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样

env:显示(设置)用户变量变量

export:显示(设置)当前导出成用户变量的shell变量。

[oracle@zhou3 ~]$ aaa=bbb --shell变量设定
[oracle@zhou3 ~]$ echo a a a b b b [ o r a c l e @ z h o u 3   ] aaa bbb [oracle@zhou3 ~] env| grep aaa --设置完当前用户变量并没有
[oracle@zhou3 ~]$ set| grep aaa --shell变量有
aaa=bbb
[oracle@zhou3 ~]$ export| grep aaa --这个指的export也没导出,导出变量也没有
[oracle@zhou3 ~]$ export aaa --那么用export 导出一下
[oracle@zhou3 ~]$ env| grep aaa --发现用户变量内存在了
aaa=bbb

bashrc和profile的差异在于:

  1. bashrc是在系统启动后就会自动运行。

  2. profile是在用户登录后才会运行。

  3. 进行设置后,可运用source bashrc命令更新bashrc,也可运用source profile命令更新profile。
    PS:通常我们修改bashrc,有些linux的发行版本不一定有profile这个文件

  4. /etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,一般在home目录的私人目录下。他们是”父子”关系。

~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件。

~/.bash_profile 是交互式、login方式进入bash运行的,~/.bashrc是交互式non-login方式进入bash运行的,通常二者设置大致相同,所以通常前者会调用后者。

netstat -an | grep “4243”

查看用户:
vi /etc/group
usermod xxxx -G root,adm

相对路径:目前路径的文件名写法。 例如 ./home/dmtsai 或
绝对路径:由根目录(/)开始写起的文件名或目录名称

top
按b进入各个cpu的详情
按x表示默认列增亮
按shift + >”或”shift + <” 可以默认让mem排序

发布了34 篇原创文章 · 获赞 38 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LANNY8588/article/details/85058682
今日推荐