linux21 复习考试
linux21 考试
1、探测服务器网络的命令
ping 网络地址或者主机地址
2、保存命令行提示符的变量
PS1
[root@localhost ~]#PS1="[\u@\h \W]\$" 临时修改
\u :当前系统登录的用户,
@:分隔符 没有意思
\h:主机名字,就相当于人的名字,当前机器的主机名,只显示一个主机名localhost
\H: 代表当前机器主机名 显示所有主机名 localhost.localdomain
\W大写:当前目录名称,家目录,用户登录首次出现的目录 比如a.tat
\w小写 当前目录全路径 比如:文档\我的\私有\a.txt
\$:等同于#超级管理员
weekday month date
\d 代表日期:星期: 几月: 几号
\t时间 11:11:11 24小时制 有秒 格式:HH:MM:SS
\T 代表十二小时制时间 有秒 格式:HH:MM:SS
\A 代表24小时制时间 没有秒 格式:HH:MM
\v 代表bash的版本
#永久修改 vim /etc/profile
export PS1="[\u@\h \W]\$"
3、特殊的路径
. 当前目录
.. 上一层目录
~ 当前用户家目录
- 上一次在的目录
4、常见的开关机的方式
#关机
shutdown -h now
init0
halt -p 不加参数关闭硬件资源
poweroff
#重启
reboot
reboot -p
shutdow -r now
poweroff --reboot
halt --reboot
5、查看命令详情的命令
man[命令名字]
NAME:对要查询的命令的简介
SYNOPSIS:对要查询命令的格式的规范
DESCRIPTION:对要查询的命令的详细介绍
OPTIONS:对要查询命令的 所有选项
或者[命令名字] --help -h help 这三个有的不支持
6、命令行上常用的快捷键
上下键:
上一次输入的命令,断开在连接也有
\v : bash的版本号,黑命令窗口软件的版本号
清空屏幕信息:ctrl + l
与之相同的命令:clear
光标移动到行首与行尾
crtl + a(crtl + 左) : 移动到行首
crtl + e(ctrl + 右) : 移动到行尾
剪切内容至行首:crtl + u
剪切内容至行尾:crtl + k
ctrl+c强制中断程序的执行
ctrl+z是将任务中断,但是此任务并没有结束
粘贴内容:crtl + y
命令补全(必须唯一):tab
7、创建文件及文件夹的命令
touch 创建文件
#mkdir[选项(非必须)](被创建的目标路径)
#touch test{1..100} 创建test1-test100
{}:表示循环
..有序循环从开始到结束
,表示指定的创建
mkdir 创建文件夹
#touch[选项][被创建的文件路径] 绝对路径相对路径都可以
#mkdir -p /root/aaa/bbb/ccc 创建root下aaa里的bbb的ccc
-p:根据需要创建父目录
8、重定向
重定向 : 把某个内容,通过某种方式输入到指定文件中,即为重定向
> 覆盖重定向,删除之前的,从新加内容
>> 追加重定向,在之前内容的结尾 加内容,原有的不变
9、复制文件的命令
cp [选项(非必须)] [原路径] [新路径]
-r : 递归复制目录-复制目录 自己调自己,把一个文件夹所有内容全部复制过去
-i : 增加覆盖提示
-p : 保留原有文件的属性 比如时间等
-d : 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; 原来的软连接一并复制过去
10、移动文件
mv:移动文件
#mv [选项(可加可不加)] [原来的文件路径] [现在的文件路径]
11、vim文件编辑器的原理
1、vi xxx.txt(检查.xxx.txt.swp是否存在)
2、读取xxx.txt的内容
3、创建一个名为.xxx.txt.swp的隐藏文件
4、修改文件(修改.xxx.txt.swp文件)
5、保存文件(.xxx.txt.swp文件存入xxx.txt中)
6、退出编辑(删除.xxx.txt.swp文件)
12、vim文件编辑器中的命令及快捷键
#vim的三种模式
命令模式:
末行模式:
编辑模式:
#vim文件编辑器中的命令及快捷键
i : 进入编辑模式(在光标之前输入)闪烁的地方前面
a : 进入编辑模式(在光标之后输入)闪烁的地方后面
o : 进入编辑模式(在光标所在位置另起一行输入) 闪烁的行的下一行
gg : 跳转到首行
G :跳转到末行
dd : 删除当前行
u : 回撤(类似于windows中的crtl + z)
ndd : 在光标所在位置向下删除n行
yy : 复制光标所在行
nyy : 在光标所在位置向下复制n行
p(小写) : 粘贴到光标的下一行
P(大写) : 粘贴到光标的上一行
w : 保存
q : 退出编辑
wq : 保存并退出
x : 保存并退出
! : 强制退出(不保存退出,必须跟在指令后面) q!
n : 直接跳转到第n行 先输入:在输入n
set nu : 显示行号
set nonu : 取消行号
13、重启网卡的两种方式
1.systemctl restart network 将所有网卡都重启
2.ifdown [网卡名] ifup [网卡名] 多个网卡用第二种 可以选择网卡名
14、增加一块500GB的磁盘的步骤
1、关机增加磁盘
2、分区
fdisk
3、制作文件系统
mkfs.xfs [分区的文件路径]
4、挂载
15、开机自动挂载的两种方法
#第一种 将挂载信息配置到/etc/fstab中。
/dev/sdb1 /mnt xfs defaults 0 0
#第二种方式:在开机自启动脚本中增加挂载命令
1、添加挂载命令到:/etc/rc.local
mount /dev/sdb1 /mnt
2、添加可执行权限
[root@python ~]$ chmod +x /etc/rc.d/rc.local
3、重启
reboot
16、两种登录提示符
/etc/motd : 在登录之后显示
/etc/issue :在登录之前显示
17、怎么修改网卡IP(步骤)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
开始修改
systemctl restart ntwork
18、当root密码忘记,怎么修改?
忘记root密码,进入单用户模式,安全的无网络
1、关闭selinux(必须是永久关闭)
ivm /etc/selinux/config
SELINUX=dissabled
2、重启
3、在启动界面上,按e键,进入单用户模式
4、在包含linux16这一行, 将ro修改为rw,并且在其后面增加 init=/sysroot/bin/sh (让单用户模式默认进入sh命令)
5、按Ctrl + x 键,重新引导系统
6、执行 chroot /sysroot/ 切换到原来的系统中
7、修改root密码
passwd [指定需要修改密码的用户]
8、使密码生效
创建一个文件 在根目录下
touch /.autorelabel
9、重启
19、su和su - 的区别
su : 切换用户 不切换目录
su - : 重新登录用户 切换目录
20、yum的原理
第一步:执行yum install nginx安装命令
第二步:yum去/etc/yum.repos.d这个目录中
第三步:根据/etc/yum.repos.d中所有的.repo结尾的文件中保存的baseurl中的连接,去寻找对应的软件包
第四步:在寻找到的软件包中,下载软件,(/var/cache/yum/x86_64/7/[yum仓库名称])
21、搭建私有yum仓库的步骤
1.创建目录,充当仓库 #房子
2.在仓库创建Packages目录,用来存放软件 #家具
3.下载测试软件到Packages #装家具
基础为前三步
4.下载访问软件Nginx #装电话
5.下载仓库初始化软件,yum-utils 和createrepo #电话卡,依赖关系
6.createrepo 仓库名称 初始化仓库
会在仓库目录中自动创建 repodata目录,主要存放yum依赖关系的软件
7.修改nginx配置文件,使其代理yum仓库
#修改 /etc/nginx/nginx.conf 里面的
server里面的
root 改成自己仓库路径;
#实现目录索引 加到server里
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
#systemctl restart nginx 重启nginx
8.编辑yum源
留一个新建的源 其他.repo移动到里面新文件夹
新建的源编写
[local] 不是local也行
name=德玛西亚 源的简介
baseurl= 指定的地址
gpgcheck=0 默认不检测
9.更新源
yum clean all
yum makecache
10.测试
yum.remove zip
yum.install zip
22、安装软件的三种方式
rpm安装:单独安装,不能解决依赖
yum安装:解决依赖,不能灵活定制安装
编译安装:可以定制安装,不能解决依赖 可以想安装那个安哪个
23、编译安装Nginx的步骤
#下载源代码nginx包:https://nginx.org/download/nginx-1.20.1.tar.gz
#解压tar -xf nginx-1.20.1.tar.gz 后面为安装包名字
1.检查系统
cd 解压后的文件夹里
[root@localhost ~]# cd nginx-1.20.1
执行[root@localhost nginx-1.20.1]# ./configure
让他自动检查就好了 依赖包这三个是
少什么安装什么 pcre 和pcre-devel 、zlib 和zlib-devel make gcc gcc-c++
[root@localhost nginx-1.20.1]# yum install pcre pcre-devel -y
2.编译
#要在解压目录下运行
执行make
加上-j 多核编译 速度快,容易出错
3.安装
#查询一下
[root@localhost nginx-1.20.1]# ls /usr/local/
bin etc games include lib lib64 libexec sbin share src
#要在解压目录下运行
执行make install
4.查看usr/local
[root@localhost nginx-1.20.1]# ls /usr/local/
bin etc games include lib lib64 libexec nginx sbin share src
多了一个nginx
5.测试
停止之前的nginx systemctl stop nginx
启动刚才安装的nginx /usr/local/nginx/sbin/nginx
24、什么是系统负载,什么标准下才算正常
应用程序占用cpu的百分比
看具体cpu的数量和负载 ,小于百分之五十即为正常
25、文件的属性有哪些
d 文件夹
- 普通文件
l 链接文件 软连接
c 字符设备文件(字体)/dev里面的tty都是字体,字符设备文件
b 块设备文件(硬盘)/dev里面的sda1,sdb1都是b开头的设备文件
s socket文件(网络编程文件)
p 管道文件(前一个命令的结果交给后面命令处理即为管道技术)
26、硬链接与软连接的区别
硬链接和软连接
硬链接:ln[源来的路径] [新的路径]
都指向了硬盘一块空间,相当于文件别名,ID号一致 新路径ln里面创建
硬链接个数为0时,才会删除源文件
软链接:ln -s[源来的路径] [新的路径]
相当于一个文件的快捷方式,指向了文件的名称
27、创建用户及用户组的命令
useradd[选项(非必须)] [用户名称] 创建用户
-u 指定uid 代表用户的唯一编号
-g 指定gid 代表用户组的唯一编号
-r 指定创建系统用户 useradd -r test01(默认为普通用户)
-s 指定用户默认的解析器 如下
useradd test0003 -s /bin/sh
groupadd[选项(非必须)] [用户名称]创建用户组
28、创建用户需要操作的文件
1.#/etc/passwd 保存用户信息
root :x: 0: 0: root: /root: /bin/bash
用户名 密码占位符 用户uid 用户组id 用户简介 用户家目录 该用户登录默认解析器
没有x无密码 随便改
2.#/etc/shadow 保存用户的密码
test004: !!: 18893:0:99999:7:::
用户名 密码占位符
!!没有密码
3.#/etc/group 保存用户组文件
test: x: 995:
用户名 密码占位符 组id
4.#/etc/gshadow 保存组密码文件
test001: !::
用户名 密码占位符(!空密码)
5.创建家目录 /home下
6.复制/etc/skel
29、Linux中有几种权限?
r 可读
w 可写
x 可执行
30、例如:创建普通文件时有一个默认的权限,为:644,请问这个默认的权限怎么修改?
umask[002] 默认002
#创建文件时,默认的权限时666,跟umask值计算,用666 减 umask值 如果得到的值为奇数,那么加一,偶数不变
#创建文件夹,默认的权限时777,跟umask值计算,用777 减 umask值 得到奇数偶数是多少就是多少
假设:umask值为 022 ,那么创建的文件及文件夹的默认权限是多少
31、请问目录对于权限的三个意义
如果要查看文件,那么相关的目录必须要有可执行权限,文件要有可读权限
如果要修改文件,那么相关的目录必须要有可执行权限,文件要有可写权限
如果要执行文件,那么相关的目录必须要有可执行权限,文件要有可读可执行权限
32、权限的归属有哪些?
u 属主
g 属组
o 其他人
33、绝对路径于相对路径
绝对路径以根目录为参照物
相对路径以当前目录为参照物
34、跟硬件相关的与系统运行状态相关的两个目录分别是什么?
/dev 硬件
/proc 系统运行状态相关信息
35、上传于下载的命令,及其参数
rz : 上传到linux系统里面 传到当前所在文件夹
wget -O 指定下载路径
curl -o 指定保存路径
sz :下载到windows电脑里,需要指定文件比如 sz 1.txt
36、修改命令行字符集
1.LANG=zh_CN.UTF-8 临时修改
2.持久化保存字符编码:/etc/locale.conf 永久修改
3.通过命令的方式修改字符集编码,需要重启或者断开连接重新连接
[root@localhost ~]# localectl set-locale LANG=en_US.utf8
en_US.UTF-8 : 英文
zh_CN.UTF-8
37、将/tmp中的普通文件删除,权限为755的目录打包压缩
find /tmp -type f -exec rm -rf {} \; 删除普通文件
tar -czvf tmp.tar.gz $(find /tmp -perm 755 | xargs ) 打包压缩
38、定时清理3个月之前的系统日志
0 0 * * * find /var/log/ -mtime +90 -name "*.log" -exec rm -rf {} \;
39、在Linux系统中,常用的压缩(不是打包)命令有哪些?
gzip(常用):压缩软件,原文件删除,生成新压缩包文件,不能打包目录
gzip[压缩文件的路径]
解压:gzip -d [压缩包路径]
gzip比bzip压缩的更狠,压缩率更高
-----------------------------------------------------------------
bzip:压缩软件,原文件删除,生成新压缩包文件,不能打包目录
bzip2[压缩文件的路径]
解压:gzip2 -d [压缩包路径]
40、在Linux操作系统中,打包压缩命令的常用参数
-f : 指定压缩包名称 有其他参数时,他在最后面,
-c : 打包文件
-z : 指定使用gzip压缩,一般使用gzip压缩的文件都以.tar.gz作为扩展名
-j : 指定使用bzip2压缩,一般使用bzip2压缩的文件都以.tar.bz2作为扩展名
-v : 显示压缩包压缩的过程
-x : 解压,不需要指定压缩包的压缩类型,它会自动匹配压缩包的类型自行解压。
-P :当压缩包中存在根目录时,自动移除根目录 大写P
-t : 查看压缩包中的内容
41、常用的正则表达式有哪些项?
# * :匹配零个或多个前导字符,
grep "ifcfg*" /tmp
grep的前面必须是ifcf ,g可以是0个也可以多个这个*可以匹配0个或多个
与find的*有点不同,,而find /tmp/ -name "ifcfg*" 只能匹配有ifcfg的名字
# $ :以前导字符结尾,以什么什么结尾
# . :匹配任意一个字符(换行符除外)
# ^ :以前导字符开头的行^写在前面
# [^] :取反 等同于排除
# .* :所有的字符的任何个数
.后面的任意字符,比如n.* n后面不管有什么都匹配上
和n*对比,n*是只匹配n后面的n 其他值都不匹配
# [] : 或者(其中包含的所有的字符的或者)
# + : 前导字符的一个或多个 *是0个或多个
# ? : 前导字符的零个或一个
# | : 或者(竖线两边的字符的或者)
# () : 分组,组成一个整体
# \n : n代表的是前面第几个分组
# {m,n} : 范围,至少有m个,最多有n个
# {m} : 范围,固定m个
# {m,} : 范围,至少有m个
#^$ : 表示空行
42、将指定文本内的所有行前全部加上注释
[root@localhost tmp]# sed -r "s/(.*)/#\1/g" 1.txt
或者
[root@localhost tmp]# awk '{printf "#%s\n",$0}' 1.txt
43、流式编辑器sed中的定位法有几种?
数字
数字 + 正则
正则
44、将文本中所有内容变成一行(用空格进行分割)
[root@localhost tmp]# cat 1.txt | tr "\n" " "
[root@localhost tmp]# awk '{printf $0" "}' 1.txt
[root@localhost tmp]# cat 1.txt | xargs
45、如果是字母开头的行则在行前增加:ZB;如果是数字开头的行则在行前增加:SZ
[root@localhost tmp]# sed -r 's/^([a-zA-Z])/ZB:\1/g;s/^([0-9])/SZ:\1/g' 2.txt
[root@localhost tmp]# awk '{if (/^[A-Za-z]/) {printf "ZB:%s\n",$0 } else if (/^[0-9]/) {printf "SZ:%s\n",$0}}' 1.txt
46、如何将Hello World 换成 World Hello?
[root@localhost tmp]# sed -r 's/(hello).*(world)/\2 \1/g' 2.txt
47、在Linux系统中,有几种数组?怎么遍历其中的内容?
普通数组
关联数组
for i in arr
do
done
48、awk包含多少个部分及其作用?其中默认的变量有哪些?
#部分及其作用
BEGIN{} :awk处理文件之前执行 所有变量定义都应该放在BEGIN里面
// :读取文件之后使用的匹配规则
{} :循环,每次处理一行
NED{} :awk处理文件之后执行
#默认变量
$0 :当前行内容
NR :行号
NF :列数,字段
FS :输入字段分隔符 默认空格 等同于-F
OFS :输出字段分隔符,默认空格 和逗号相等,
49、要求打印出/etc/passwd文件种的2和3倍数的行
[root@localhost tmp]# awk -F: '{if(NR%2==0 && NR%3==0){print NR,$0}}' /etc/passwd 2并且3 两个都满足
6 sync:x:5:0:sync:/sbin:/bin/sync
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
[root@localhost tmp]# awk -F: '{if(NR%2==0 || NR%3==0){print NR,$0}}' /etc/passwd 2或者3 满足一个就可以
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/
50、要求写入如下的cron表达式:要求每天的21点到凌晨3点,每个5分钟执行一次
*/5 21-3 * * *