【Linux】期末复习

news/2024/11/29 12:56:00/

文章目录

  • 1. 认识Linux系统
  • 2. Shell命令
  • 3. VI编辑器的使用
  • 4. Shell脚本编程
  • 5. 实验部分

1. 认识Linux系统

  1. Linux特点
  1. 完全免费
  2. 开发性
  3. 多用户、多任务
  4. 丰富的网络功能
  5. 可靠安全、性能稳定
  6. 支持多种平台

2.Linux系统的组成

  1. 内核
  2. Shell
  3. 应用程序
  4. 文件系统

3.Linux版本

Linux版本由形如x1.x2.x3三组数字组成

  1. x1:主版本号,表示内核级别,越大级别越高,目前最高版本为5
  2. x2:次版本号,分为测试版与稳定版,奇数为测试版,偶数为稳定版。
  3. x3:修正序号,此数越大,通常会表示该内核功能更强或以前中的缺陷得到修正

4.Linux应用软件安装

查看软件是否安装成功

rpm -qa|grep 软件名称

有信息输出代表安装成功

无信息输出代表安装中

5.Shell提示符号

  • #:代表超级用户(管理员)
  • $:代表普通用户

2. Shell命令

1.Linux系统的目录结构

  • /home:Linux系统各用户的主目录
  • /root:root用户的主目录
  • /bin:二进制目录,存放很多用户级的GUN
  • /sbin:系统二进制目录,存在很多GUN管理员级工具
  • /dev:设备目录,Linux在这里创建设备节点
  • /lib:库目录,存放系统和应用程序的库文件
  • /tmp:临时目录,可以在该目录中创建和删除临时工作文件
  • /mnt:挂载目录,另一个可移动载体媒体设备的常用挂载点
  • /boot:启动目录,存放启动文件
  • /media:媒体目录,可移媒体设备的常用挂载点
  • /etc:系统配置文件目录
  • /proc:进程目录,存放现有硬件及当前进程相关信息
  • /usr:用户二进制目录,大量用户级的GUN工具和数据文件存储在这里
  • /var:可变目录,用以存放经常变化的文件,比如日志文件

2.目录操作

pwd

显示当前工作目录的绝对路径

3.mkdir 创建目录

mkdir [选项] [目录]
选项说明
-p若路径中的目录不存在,先创建目录
-v每次创建目录都显示信息

4.cd更改工作目录路径 大题会用到

cd [目录]
特殊符号含义
.代表当前目录
代表当前目录位置的上一层目录
~代表家目录,即login时所在目录

5.ls列出目录和文件信息

ls [选项] [目录][文件]
选项说明
-l以详细信息的形式展示出当前目录的文件
-a显示当前目录中的全部文件(包括隐藏文件)
-d查看目录属性
-t按照创建时间顺序列出文件
-F显示文件类型
-i用于显示文件的inode号,inode号是文件在文件系统中的唯一标识,可以用来查看文件的硬链接数,以及查看文件是否被删除。

使用-l属性会输出如下的文件属性

image-20221207111200427

  • 第一个字符:代表文件类型,d代表目录,-代表文件,l代表链接文件,b表示为设备中可提供存储的接口设备,c表示为设备文件中的串行端口设备
  • r表示可读,w表示可写,x表示可执行

6.rmdir删除空目录

rmdir [选项] [目录]
选项说明
-p删除递归目录,当子目录删除后其父目录为空时,也一同删除
-v输出处理的目录详情

7.touch 创建空文件 更改文件时间

touch [选项] 文件
选项说明
-a只更改访问时间
-m更改文件的修改时间记录
-e假如目标文件不存在,则不会创建新的文件
-d<字符串>使用指定字符串表示时间而非当前时间
-t<日期时间>使用MMDDhhmm格式的时间非当前时间

8.cp复制文件和目录

cp [选项] [源文件|目录] [目标文件|目录]
选项说明
-f强制复制文件和目录,无论目的文件或目录是否已经存在
-r递归复制目录下的子目录和文件
-i若目标文件存在,则提示用户如何操作

9.mv文件和目录改名、移动文件和目录路径

mv [选项] [源文件|目录] [目标文件|目录]
选项说明
-f移动时自动替换已经存在的目标文件,不提示
-i若目标文件存在,则提示用户如何操作

10.rm删除文件或目录

rm [选项] [文件|目录]
选项说明
-f强制删除文件,不给出提示信息
-r递归删除目录及其子目录和文件
-i删除前需要确认

11.find用于查找文件或目录

find [查找范围] [选项] [查找条件]
选项说明
-name<文件名>匹配文件的名称
-user<用户名>匹配文件的所有者
-perm<权限>匹配文件的权限
-type<文件类型>匹配文件类型查找
-size n< ckMG >匹配文件的大小(+50k查找超过50k的文件,而-50k则表示查找小于50k的文件)
–exec {} \ ;后面可接对搜索到结果进一步处理的命令

例如,搜索/etc中所有以host开头的文件

find /etc -name "host*" -type f
-type[选项]f:普通文件d:目录文件l:连接文件b:块设备文件c:字符设备文件p:管道文件s:套接字文件

12.查找文件或目录 which/whereis

which

主要用于搜索二进制文件、可执行文件或者Shell命令行的位置

whereis

主要用来搜索二进制文件的位置、源代码的位置和man帮助文件位置

13.cat显示文本文件、连接文本内容

cat [选项] [文件]
选项说明
-n对输出的所有行编号
-b对非空输出行编号

14.more分页显示文本文件

more [选项] [文件]
选项说明
+n从第n行开始显示文件内容,n代表数字
-n一次显示的行数,n表示数字

Ctrl + f是向下显示一屏

Ctrl + b是向上滚动一屏

Enter键向下滚动一行

q是退出more命令

15.head显示指定文件的前若干行

head -n 行数值 [文件]

默认缺省显示文件的前10行

比如head -5 /etc/passwd 表示显示/etc/passwd文件的前5行

16.tail查看文件末尾数据

tail -n 行数值[文件]

默认缺省显示文件后10行内容

例如,tail -5 /etc/passwd 表示显示/etc/passwd文件的后5行

17.grep 在文件中搜索与字符串匹配的行输出

grep [选项] 查找条件 源文件
选项说明
-i查找时忽略大小写
-v反转查找,输出与查找条件不相符的行

查找字符串以双引号括起来,“^……”表示以……开头,“……KaTeX parse error: Expected group after '^' at position 11: ”表示以……结尾,“^̲”表示空行

18.tar文件打包、压缩

tar [参数] 打包文件名 文件
选项说明
-c产生.tar打包文件
-v列出打包/解包的详细过程
-f指定打包文件的名称
-z以.gz的格式压缩或解压打包文件
-j以.bz2的格式压缩或解压打包文件
-x以打包文件中还原文件
-C解压到指定目录
-r将文件追加到打包文档末尾

打包:

  1. tar -czvf [存放路径]打包文件名.tar.gz 源文件或目录
  2. tar -cjvf [存放路径]打包文件名.tar.bz2 源文件或目录
  3. tar cJvf [存放路径]打包文件名.tar.xz 源文件或目录

解压

  1. tar -xzvf [存放路径]打包文件名.tar.gz [-C 解压目录]
  2. tar -xjvf [存放路径]打包文件名.tar.bz2 [-C 解压目录]
  3. tar -xJvf [存放路径]打包文件名.tar.xz [-C 解压目录]

19.输入重定向

命令<文件名

20.输出重定向

类型操作符用途
重定向标准输出>将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
>>将命令执行的结果追加输出到指定文件中
重定向标准错误2>清空指定文件的内容,并将标准错误信息保存在该文件中
2>>将标准错误信息追加输出到指定文件中
重定向标准输出和标准错误&>将标准输出、标准错误的内容全部保存在指定文件中而不是直接显示在屏幕中

find /etc -name “passwd” 2>>error

21.管理用户及组

添加用户

useradd [选项] 用户名
选项说明
-u指定用户ID
-G指定用户的附属组(补充组)
-s指定用户登入所使用的Shell
-d设置登录时使用的主目录
-M不创建用户组

注意,不指定用户ID的时候由系统自主生成

创建一个不可登录无用户主目录的用户

useradd -M -s /bin/nologin user

统计系统可登录用户数量有几个

grep "bash$" /etc/passwd | wc -l

给用户设置密码

passwd [选项]用户名

删除用户

userdel [选项]用户名
选项说明
-r同时删除用户及子目录

22.chmod设置基本权限

有两种方法,一种是字符法,一种是数字法

字符法

chmod [ugoa] [+-=] [rwx] [文件或目录]

u、g、o、a分别表示属主、属组、其他用户、所有用户

+、-、=分别表示增加权限、去除权限、设置权限

chmod o+w my.txt
my.txt文件的其他人增加读权限

数字法

权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421
权限分配文件所有者文件所属组其他用户

例如数字777表示 111 111 111,也即是rwxrwxrwx

数字664表示110 110 100,也就是rw-rw-r–

23.ps指令

ps [选项]
选项说明
-a显示当前终端上的所有进程,包括其他用户的进程信息
-e显示系统中所有进程,包括其他用户进程和系统进程信息
-l以长格式显示进程信息
-u显示面向用户的格式(包括用户名、CPU及内存使用清空等信息)
-x显示后台进程的信息
-f显示进程的所有信息

显示所有进程

ps -ef

查找某一个进程

ps -ef|grep 进程名

24.周期性计划任务

编辑计划任务

crontab -e [-u  用户名]

查看计划任务

crontab -l [-u  用户名]

删除计划任务

crontab -r [-u  用户名](root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务)
字段说明
分钟取值0-59任意整数
小时取值0-23任意整数
日期取值1-31任意整数
月份取值1-12任意整数
星期取值0-7任意整数
命令要执行的命令或程序脚本
  • *:表示该范围内的任意时间
  • ,:表示间隔的多个不连续时间点
  • -:表示一个连续的时间范围
  • /:指定间隔的时间范围

image-20221207145946458


3. VI编辑器的使用

1.VI编辑器的三种操作模式

image-20221207150330587


4. Shell脚本编程

1.Shell中常用符号

  1. 注释符#
  2. 美元符$:变量符,与反斜杠转义符相反,使其后面的普通字符作为变量名
  3. 单引号:被单引号引起的字符全部做普通字符,即全部原样
  4. 倒引号:倒引号内的字符串做为Shell命令行解释执行,得到的结果取代整个倒引号括起来的部分
  5. 双引号:被双引号引起来的内容,除了$、转义符\、倒引号保留特殊作用,其他均做普通字符
  6. 反斜线:转移字符,将特殊字符变成普通字符

2.Shell预定义变量(五分)

用户不可修改

  1. $#:传送给Shell程序的位置参数的数量
  2. $?:最后命令得的完成码或者在Shell程序内部执行的Shell程序(返回值)
  3. $0:Shell程序的名称
  4. $*:调用Shell程序时所传诵的全部参数的单字符串,“参数1”“参数2”……形式保存参数
  5. $@:“参数1”“参数2”……形式保存的参数
  6. $n:第n个参数
  7. $$:本程序的PID
  8. $!:上一个命令的PID

3.用户变量(赋值)

变量名=

取值取空格,必须用引号(单引号或双引号)括起来

取值

echo $变量

4.|| 和 | 和 \ 的区别

  1. || : 表示上一条命令执行失败后,才执行下一条命令,echo 'step1‘ || echo ‘step2’
  2. | :表示管道,上一条命令的输出,作为下一条命令参数
  3. \:转义字符

5.算术扩展运算符

  • $((x + y)):加法运算
  • $((x - y)):减法运算
  • $((x / y)):除法运算,结果仅保留整数位
  • $((x * y)):乘法运算
  • $((x % y)):自加运算
  • $((x --)):自减运算
  • $((x ** y)):幂运算,x的y次方

5. 实验部分

  1. 新建Shell脚本文件test1,在“/home/user/自定义”目录下新建数个文件名的后缀为“*.txt“的文件,编辑如下脚本程序。
#!/bin/bash
path="/root/linux"
cd $path
for file in  *.txt
doleftname=`basename $file .txt`mv /root/linux/$file /root/linux/$leftname.docdone

将目录下的全部*.txt文件修改成.doc,也就是修改文件后缀

  1. 上面的test2脚本改良
#!/bin/bash
cd $1
for file in $(ls  *.txt)
doleftname=`basename $file .txt`mv $1/$file $1/$leftname.docdone

image-20221207161941334

其中$1 是执行该shell脚本后面接的参数,也就是home/user/test

  1. 该脚本功能是什么
#!/bin/bash   
function rand(){ min=$1max=$(($2-$min+1)) num=$(($RANDOM+10000000000)) #增加一个10位的数再求余 echo $(($num%$max+$min)) 
} 
rnd=$(rand 400000 500000) 
echo $rnd 

这里面顶一个方法rand,rand方法需要接收两个参数,第一个参数赋值给min变量,使用第二个参数减第一个参数再加1将这结果赋值给max。接着顶一个num**,$RANDOM是Linux的内置函数,用于生成0到32767之间的任一随机数**,用来生成随机数。该函数的返回值就是一个生成400000~500000的随机数

  1. 自己设计一脚本程序test4,要求该程序的运行能判断LINUX计算机上是否在运行sshd进程,如果该进程正在运行,则显示“running”,如果不在运行则显示“not running”.
#!/bin/bash
ps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0`
result=$(echo $ps_out | grep "$1")
if  [ "$result" != "" ];then
echo "Running"
elseecho "Not Running"
fi
  1. 编写一个shell脚本程序test5,它能根据输入的命令行参数采取不同的动作:如果是目录,则列出该目录中的文件;如果是可执行的文件,则用shell执行之;如果是可读的文件,则cat显示其内容;如果不是以上三种类型,则显示“异常对象”。
#!/bin/bash
echo file
read file #输入
if [ -d $file ]
thenecho "ls:"ls $file/
elif [ -x $file ]
thenecho "result:"./$file
elif [ -f $file ]
thenecho "contoxt:"cat $file
elseecho "abnormal"
fi
  1. 统计LINUX系统中可以正常登录的用户数量,在LINUX系统上写出命令。
cat /etc/passwd|grep /bin/bash|wc –l

  1. 自己设计一脚本程序test2,要求该脚本能删除指定目录下文件大小为0的文件
#!/bin/bash
for file in `ls $1`
doif [ -f $1"/"&file ]thenif [ -s $1"/"$file ]thenecho "$file is docution but > 0"elserm $1"/"$filefielseecho "$file is no docution and > 0"fi
done
  1. 设计脚本test3,对命令行参数求平均值
#!/bin/bash
[ $# -ne 1 ] && exit  #判断参数个数
[ "$1" -le 0 ] && exit  #判断参数合法性
sum=0
for (( i=1;i<=$1;i=i+1 ))
do
read -p "Input number #$i: " num[$i]
sum=$((sum+num[$i]))
done
average=$((sum/$1))
echo "sum: $sum"
echo "average: $average"
  1. 写出在当前目录下创建下面文件树的命令序列。

image-20221207173724092

mkdir 1
cd 1
mkdir 11 12
cd 11
touch 111 112
cd ..
cd 12
touch 121 122
  1. Apache服务器基本配置

首先检查httpd软件包是否有安装

rpm  -qa |grep httpd	

启动httpd服务

systemctl start httpd.service

设置httpd服务为自启动

chkconfig  httpd  on	

编辑Apache主配置文件/etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"		:这是Apache的工作目录,不需修改
KeepAlive On				:修改为On,使得一次TCP连接可以传输多个文件
Listen 自己机器IP地址:8080	:修改HTTP服务监听IP地址和端口号
Include conf.d/*.conf		:/etc/httpd/conf.d/*.conf都是Apache的附加配置文件,不需修改
ServerAdmin root@localhost	:管理员邮箱,可修改为自己的邮箱
ServerName www.example.com:80		:设置服务器名称,如果没有配置DNS解析,可设									:置为IP地址和端口号的组合。把这一行修改为:ServerName 自己机器的IP地址:80
DocumentRoot "/var/www/html"		:这是网站文档主目录,建议保留

设置主页文件内容

#vi  /var/www/html/index.html			:添加主页文件,随意输入内容

重启Apache服务器

systemctl restart httpd.service

在操作系统中利用浏览器访问http://自己机器IP地址,测试能否显示主页文件index.html。


http://www.ppmy.cn/news/2483.html

相关文章

Java搭建宝塔部署实战毕设项目springboot客户管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套Java开发的毕业设计项目&#xff0c;springboot客户管理系统源码&#xff0c;感兴趣的朋友可以自行下载搭建测试。 技术架构 技术框架&#xff1a;SpringBoot MySQL5.7 mybatis shiro Lay…

四年一次的世界杯来了,看看还剩下哪些赛程呢?

足球世界杯的由来2022年的世界杯目前世界杯的赛程看看排在前十的球员几个疑问&#xff1f;世界杯的由来 足球大家应该知道&#xff0c;是一项体育运动&#xff0c;而且是一项多人的体育运动。 世界杯的诞生&#xff0c;源于1950年的南非公开赛&#xff0c;在当时只有5支队伍参…

Stimulsoft Reports.JAVA 2022.4.5 Crack

Stimulsoft Reports.JAVA Java 报表工具 Stimulsoft Reports.JAVA 是一种报告工具&#xff0c;用于在您的 Java 应用程序中进行业务报告的交互和工作。它包含 Java 和 HTML5 组件&#xff0c;允许您在不同平台、不同操作系统和不同硬件上使用创建的程序。因此&#xff0c;我们的…

【单目3D目标检测】MonoGround论文精读与代码解析

文章目录PrefaceAbstractContributionsProblem DefinitionGround Plane PriorIn PaperIn CodePipelineIn PapeIn CodeDepth-Align TrainingIn PaperIn CodeTwo-stage Depth InferenceIn PaperPreface Qin Z, Li X. MonoGround: Detecting Monocular 3D Objects From the Ground…

软件测试行业真的饱和了吗?一线大厂年薪100W的测开岗位还很缺人!

在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位。这几年&#xff0c;各互联网大厂技术高速更新迭代&#xff0c;软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰&#xff0c;各种新的测试技术层出不穷&#xff0c;测试人员的薪资也水涨船高。与…

MySQL是怎样加锁的

是不是很多人都对 MySQL 加行级锁的规则搞的迷迷糊糊&#xff0c;对记录一会加的是 next-key 锁&#xff0c;一会加是间隙锁&#xff0c;一会又是记录锁。这次就带大家浅浅地聊一下MySQL是怎样加锁的。 什么 SQL 语句会加行级锁&#xff1f; InnoDB 引擎是支持行级锁的&#…

一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)

参考大佬文章&#xff1a; 一台机器最多能撑多少个TCP连接? 今天掰扯清楚&#xff01; 这个问题要分场景&#xff0c;先说下结论&#xff1a; 客户端&#xff1a;最多支持TCP连接数 IP数 * 端口数 IP数 * 65535&#xff0c;其中的IP数是由于linux下可以配置多IP服务端&a…

向 Excel 和 PowerPoint 添加可编辑地图的指南

本指南规定: 如何将 shapefile 转换为 svg 文件(如果后者不存在) 如何使用 Excel 重命名 svg 文件中的对象以使对象具有正确的地理名称,以及如何将这些添加为 PowerPoint 中的可编辑地图 这样做的目的是为那些没有或不知道该软件的人提供 QGIS 制图的替代方案。通过提供某个…