测试必须要知道的「Linux基础知识-命令篇」

368 阅读12分钟

Linux简介

Linux使用场景:服务器操作系统,移动设备(安卓手机,平板电脑),路由器(WIFI),交换机,智能家居,Java程序开发...等

Linux版本:

  • Linux内核版本(一个内核版本是有多种多样的发行版本)
  • Linux发型版本(由各大互联网/公司定制)

Linux主流版本:

  • RedHat Linux(嵌入式技术)
  • Ubuntu(桌面应用为主;开发可能会用到,但是服务器部署上,不会优先选择Ubuntu)
  • CentOS(对服务器性能进行了一定程度的优化,性能比较高,比较稳定。服务器操作系统的优选CentOS

Linux安装

Google搜索一大堆,略

Linux目录结构

  • / : Linux系统根目录
  • /etc (etcetera): 系统配置文件存放的目录,不建议在此目录下存放可执行文件。
    • 重要的配置文件有:/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
    • 存放防火墙文件、网络设置文件、JDK环境配置文件、mysql...等。
  • /usr(unix shared resources) :应用程序存放目录
    • /usr/bin 存放应用程序
    • /usr/share 存放共享数据
    • /usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
    • /usr/local:存放软件升级包。
    • /usr/share/doc: 系统说明文件存放目录。
    • /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询
    • /usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。
    • Jdk,tomcat,mysql,redis,nginx
  • /root系统管理员root的家目录
    • 系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
    • 相当于windows的桌面 备注:以上建议并不是强制性约束。

CRT远程连接Linux

  • 鼠标右键:  复制/粘贴
  • 文件上传:alt+p  上传窗口
  • Linux:/root  上传的文件全部被放在了root目录中

常用命令

Linux命令中参数,一般都是无序的。特殊情况下除外。常用命令如下

【磁盘管理】

「 ls 目录内容 」

ls(list):列出目录内容

常用命令:

ls -l (简写为 ll)

ls -al (查看所有详细内容)

ll /home/ (显示制定目录下的内容)

其中,第一位:“d”代表目录,“-”代表普通文件,“l”代表链接

ls[参数][文件或目录]

参数:
    -a 或 --all 查询所有文件和文件夹,包含隐藏的
    -l 查询详细列表。“ls -l”可以简写为“ll”
    -t 用文件和目录的更改时间排序
    -r 反向排序
    -h 友好展示信息。“ll -h”
    --help 在线帮助

image.png

「 cd 切换目录 」

cd(change directory):切换目录

cd [目录]

常用命令:

cd ~  切换到当前用户家目录 ,Root用户家目录 /root    回家

cd /   切换到Linux的根目录

cd -   上一次访问的目录,只能两个目录相互切换

cd ../   上一级目录

cd   缺省当前用户目录

cd /目录名   切换到指定目录中 (/目录名 Linux的绝对路径)

image.png

Linux中的路径:

  • 绝对路径:  cd /etc/x1    先切换到/目录,然后在/目录中找到子目录etc,在etc中找子目录x1
    • 在任意目录都可以随意切换
  • 相对路径cd x1/x2   在当前目录中寻找子目录x1, 在x1中寻找子目录x2
    • 必须确定当前目录下有子目录x1

「 pwd 当前目录 」

pwd ( print working directory) 功能:显示当前的所在目录。返回绝对路径

image.png

「 mkdir 创建目录 」

mkdir(make directoriy)功能: 创建目录

-p 父目录不存在情况下先生成父目录 (parents)

-v 显示命令执行过程中的详细信息

image.png

「 rmdir 删除空目录 」

rmdir(remove directory)功能:删除空目录 (后面一般是用rm命令替代)

image.png

【文件浏览命令】

「 cat 查看文件 」

cat(catenate)功能:显示文本文件内容;快捷查看当前文件的内容,cat适合查看少量信息的文件

cat 文件 : 显示指定文件的所有内容

image.png

「 more 分页查看文件 」

more功能:分页显示文件内容,还支持直接跳转行等功能

more filename

Enter:向下n行,需要定义,默认为1行

空格键:向下滚动一屏,或Ctrl+F

B:返回上一屏,或Ctrl+B

q:退出more

image.png

「 less 分页查看文件 」

less 功能:分页显示文件内容,操作更详细;适合大量数据的查看

less[参数] 文件名

参数:

-m 显示类似more命令的百分比

-N 显示每行的行号

操作:

Enter 向下n行,需要定义,默认为1行

空格键       前进一页 或 page down

b                后退一页 或 page up

d                前进半页

u                后退半页

回车键        前进一行 或 方向键向下

y                 后退一行 或 方向键向上

/字符串     向下搜索

?字符串 向上搜索

v                 进入vim编辑器

左右方向键 相当于水平滚动条

q                 退出

「 tail 显示文件内容 」

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件

tail [必要参数] [选择参数] [文件]

-n<行数> 显示行数

-f 循环读取

使用 ctrl+c 可退出查看

"tail -数字 文件名" : 可以快速查看文件后x行的内容

如 tail -10 text.log 查看文件的后10行内容

image.png

【文件操作命令】

「 cp 复制 」

cp(copy)功能:复制文件或目录

cp [参数] [源文件或目录] [目标文件或目录]

参数:

-r 或 --recursive 递归处理,将指定目录下的文件与子目录一并处理

cp ./abc ./XXX #无法复制目录

cp -r ./abc ./XXX #复制目录必须使用-r参数

需求:把/root/Demo1.java文件 复制到  /root/t1 目录中
位置:/root
命令:cp Demo1.java t1
     或者:cp /root/Demo1.java /root/t1

需求:把/root/Demo1.java文件 复制到  /root/t1 目录中,改名为ddd.java
位置:/root
命令:cp Demo1.java t1/ddd.java

需求:把/root/t5目录 复制到  /root/t1目录中
位置:/root
命令:cp -r t5 t1
     或者:/root/t5 /root/t1

image.png

「 mv 移动或改名 」

mv(move)功能:移动或更名现有的文件或目录

mv [源文件或目录] [目标文件或目录]

参数:

-f 或 --force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录

mv ./abc/123 ./XXX/111    #移动一个空目录或一个文件
cp ip.log ./abc/ip.log
mv ip.log ./abc/ip.log
mv -f ip.log ./abc/ip.log
需求:把/root/t5 目录 移动到 /root/t3目录中
位置:/root
命令:mv t5 t3

需求:把/root/t5 目录 移动到 /root/t3目录中   不询问,直接覆盖
位置:/root
已知:/root/t3目录中 已经有一个t5目录了
命令:mv -f t5 t3

文件/目录更名操作:
需求:把/root/Demo1.java  改名为 hehe.java
位置:/root
命令:mv Demo1.java hehe.java

image.png

「 rm 删除 」

rm(remove)功能:删除文件或目录

rm [-dfirv] [--help] [--version] [文件或目录...]

参数:

-f 或 --force 强制删除文件或目录

-r 或 -R 或 --recursive 递归处理,将制定目录下的所有文件及子目录一并处理

注意:

rm -rf : 删除当前目录下所有内容

rm –rf /* : 删除Linux系统根目录下所有内容(慎重!)

rm ./ip2.log
rm -f ./ip2.log  #强制删除文件
rm -f ./XXX
rm -rf ./XXX    #强制删除目录
需求:删除/root/t5 目录, 
位置:/root
已知:t5目录下有子目录或者文件
命令:rm -rf t5

image.png

「 find 查找 」

find 功能:查找文件或目录

find [目录...] [参数]

find 目录名 -name '需要查找的字符串'

参数:"-name" : 指定字符串作为寻找文件或目录的范本样式;*表示0~多个任意字符

find /root/ -name 'test*'

image.png

【文档编辑命令】

「 vi & vim 编辑文件 」

基本操作:

  • 输入 “vim 文件名” 进入 “一般模式”
  • 按下 “i” 从 一般模式 进入 “插入模式”
  • 按下 “esc” 从 插入模式 退出到 “一般模式”
  • 在“一般模式”下,输入“:wq”,退出编辑

插入模式:

image.png

一般模式:

image.png

vi基本概念:

vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各个模式的功能区分如下:

  • 命令模式(command mode)

    • 也叫“一般模式”
    • 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
    • 可以浏览文件内容,可以进行文本快捷操作。  单行复制,多行复制,单行删除,多行删除
    • 按【i】 可以切换到插入模式
    • 按【:】可以切换到底行模式
  • 插入模式(Insert mode)

    • 只有在Insert mode下,才可以做文字输入
    • 按【ESC】回到命令行模式
  • 底行模式(last line mode)

    • 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号...等
    • 可以进行强制退出不保存操作  【q!】
    • 可以进行保存并退出操作  【wq】

常用命令:

「 | 管道 」

linux提供管道符号【|】。作用是“命令1”的输出内容,将作为“命令2”的输入内容,一般与grep命令一起使用

格式:命令1 | 命令2 | 命令3...

需求:查询当前目录中,所有带ins关键字的行数据
位置:/root
思考:查询当前目录内容  ll
	  查询字符串,返回字符串所在行  grep
命令:ll | grep ins

image.png

「 grep 正则过滤 」

grep:Global Regular Expression Print,表示全局正则表达式版本

功能:用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用。如果符合规则,就会返回符合规则的行。

grep [option] pattern [file]

grep 参数 过滤条件 文件

参数:-i 或 -ignore-case #忽略字符大小写

其他命令 | grep 参数 过滤条件

例子:

# 查看install.log文件中含有“control”字符的内容
grep -i control /root/install.log
# 在cat命令输出结果基础上,进行过滤
cat /root/install.log | grep -i control

# 查询当前目录中,所有带t关键字的行数据
ll | grep -i t

「 tar 压缩解压 」

tar功能:文件备份压缩

*.tar   打包,但是大小不会进行压缩

*.tar.gz  打包并压缩文件大小

语法格式及参数:

tar 命令

-c 建立一个压缩文件的参数指令(create)--压缩

-x 解开一个压缩文件的参数指令(extract)--解压

-z 是否需要用gzip压缩

-v 压缩的过程中显示文件(verbose)

-f 使用档名,在f之后要立即接档名(file)

压缩命令:(参数顺序不变)

tar -zcvf 压缩包名字.tar.gz 需要压缩的内容

例子:

tar -zcvf demo.tar.gz *   将当前目录下所有内容进行打包压缩,文件名hehe.tar.gz

image.png

解压命令:(参数顺序不变)

tar -zxvf 需要解压的压缩包名称 // 解压到当前目录

tar -zxvf 需要解压的压缩包名称 -C 指定压缩路径 // 解压到指定目录中,C是大写

例子:

需求:需要把/root/t5/hehe.tar.gz  压缩包 解压到 指定目录中。指定目录/root/t5/t5
位置:/root/t5
命令:
tar -zxvf hehe.tar.gz -C /root/t5/t5
tar -zxvf hehe.tar.gz -C t5

image.png

【系统命令】

「 ps 进程状态 」

ps:Process Status(进程状态)的缩写,提供对进程的一次性查看,即:执行ps命令的那个时刻进程信息

语法格式:

ps [参数]

-e 此参数的效果和指定“A”参数相同,显示所有程序

-f 显示UID,PPIP,C与STIME栏位

需求:查看进程中和 vim 相关的进程
命令:ps -ef | grep -i vim

image.png

「 kill 删除进程 」

kill功能:删除执行中的程序或工作。

语法格式:

kill [参数] [程序]

-l<信息编号>。若不加<信息编号>选项,则-l参数会列出全部的信息名称

kill -9 表示强制终止

kill -9 pid号

「 ifconfig 网络 」

功能:显示网络设备,查看网络配置

ifconfig

「 ping 网络连接 」

功能:测试与目标主机的连通性。会持续不断一直测试,直到ctrl+c

ping 主机名 或 ip地址

image.png

「 reboot & halt 关机重启 」

Linux centos 重启命令:reboot

Linux centos 关机命令:halt //立刻关机

「 setup 网络设置 」

网络设置:setup

建议使用CRT运行该命令,会有中文界面

【chmod 文件权限命令】

chmod(change mode)功能:变更文件或目录的权限

语法格式:

chmod [参数] [<权限范围><符号><权限代号>]

-R 或 --recursive 递归处理,将制定目录下的所有文件及子目录一并处理

权限范围的表示法如下:

  • u:user,即文件或目录的拥有者
  • g:Group,即文件或目录的所属群组
  • o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
  • a:All,即全部的用户,包含拥有者,所属群组以及其他用户

符号:

  • + 添加权限
  • - 取消权限

权限代号的部分:

  • r:读取权限,数字代号为“4”
  • w:写入权限,数字代号为“2”
  • x:执行或切换权限,数字代号为“1”
  • -:不具任何权限,数字代号为“0”
mkdir xxx
ll | grep xxx
chmod u-rwx xxx #取消xxx目录,用户“读写执行”的权限
chmod g-rwx xxx #取消xxx目录,组“读写执行”的权限
chmod 777 xxx   #给xxx目录添加所有权限 

image.png

linux权限格式:<类型><用户><组><其他用户>

例子:

权限更改:
语法:chmod 权限设置 需要更改权限的文件名

更改Demo1.java  所属用户的权限为所有权限
例如:chmod u=rwx Demo1.java

更改Demo1.java  所属组 用户的权限为r-x
例如:chmod g=rx Demo1.java

更改Demo1.java  所有用户的权限为r—
例如:chmod a=r Demo1.java

更改文件夹权限:
语法:chmod -R 权限设置 需要更改权限的文件名

更改t1 文件夹中所有文件的权限。  所属用户的权限 r--
例如:chmod -R u=r t1

【网卡配置】

查看网卡配置:

cat /etc/sysconfig/network-scripts/ifcfg-eth0

【命令总结】

image.png