华南农业大学 Linux期末笔记

第一章

Linux的起源、历史、特点、定义
GNU GPL
常见的发行版本
商业、共享、自由和免费软件的区别和联系

第二章

Linux的安装方式(区别和联系,如何选择)、安装过程、远程连接方式
Linux内核版本号
Linux目录结构、常见目录的作用和存放内容

Linux系统结构图、主要组件构成

华南农业大学 Linux期末笔记_第1张图片

华南农业大学 Linux期末笔记_第2张图片

关机、重启命令

  • 关机
    • Shutdown -h now
    • init 0
    • Halt -p
    • poweroff -p
  • 重启
    • shuwdown -r now
    • init 6
    • Reboot

说明文档查看

  • man 或者 info

第三章

3.1 Linux交互方式

华南农业大学 Linux期末笔记_第3张图片

3.2 shell的作用、种类、默认shell

Linux终端是用户与操作系统之间的接口

这个接口的程序叫Linux Shell

【作用】

Shell是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令,返回执行结果

【注意事项】

一个用户同一时刻只能使用一个shell

  • 查看当前系统支持的Shell列表

    • cat /etc/shells
  • 查看当前用户使用的Shell版本

    • echo $SHELL
  • 默认Shell

    • bash,安装在/bin/sh,其实是连接到/bin/bash

3.3 Shell的功能(命令行提示符、自动补齐、历史记录查看、常用的快捷键、重定向、管道)

  • 命令行提示符
    • #代表root用户
    • $代表普通用户
  • 自动补齐
    • tab
  • 历史记录查看
    • 键盘上下
    • cltr+r == 查询以往的记录
  • 重定向
    • 0 -->> 标准输入
    • 1 -->> 标准输出
    • 2 -->> 标准错误输出
    • < 输入重定向
    • > 输出重定向(覆盖原有内容)
    • >> 追加重定向
  • 管道
    • 前一个命令输出作为下一个命令的输入

3.4 常用命令

clear、cd、rmdir、cat、

ls、echo、mkdir、touch、more、less、head、tail、cp、mv、pwd、rm

  • echo

    • -n 输出后不会自动换行
    • -e 开启转义,即\t这样的会被翻译为一个tab而不会当字符输出
  • mkdir

    • -p 自动创建不纯在的中间目录
  • touch

    • 用于改变文件的时间记录或创建一个空文件
    • 但经常用做新建文件
  • ls

    • 显示目录下的内容
    • -a 包含隐藏文件
    • -i 显示Inode节点
    • -l 长格式
      • 华南农业大学 Linux期末笔记_第4张图片
    • -S 按文件从大到小排序
    • -R 递归显示目录及其子目录内容
  • mv

    • 可以用作移动

    • 也可以用作文件重命名,mv file1 file2

    •   eg: mv /a.txt /tmp/a.txt
      
  • cp

    • 文件/目录 的复制
  • tail

    • 显示文件的结尾的内容。在默认情况下显示文件的最后10行内容
    • tail -n 数字x 文件a,代表显示文件a的最后x行
    • 也可以直接 tail -x a,代表显示文件a的最后x行
  • head与tail类似

  • more和less

    • 都是分页显示文件内容
    • more是一次性加载进内存,只能往下翻页
    • less是按需加载,可以上下翻页,速度更快
  • pwd

    • 显示当前路径
  • rm

    • 删除内容
    • -r 递归删除子目录内容
    • -f 强制执行,不提示

3.5 文件类型、相对路径、绝对路径、用户主目录、特殊目录

【文件类型】

简写 类型
- 普通文件
d 目录
l 链接文件
b 设备文件 – 区块
c 设备文件 – 字符
p 管道文件
s Socket文件

【PS】:设备文件在 /dev 目录下

  • 绝对路径
    • 从根开始,即从/开始
  • 相对路径
    • 从用户工作目录开始
  • 用户主目录
    • 可以用表示
    • cd ~
    • root用户在/root下,普通用户在/home
  • 特殊目录
    • . 代表目录自己
    • .. 代表该目录的父目录

第四章

4.1 用户类型

  • 超级用户
    root,根用户,类似Windows中的超级管理员账户,有最高的权限,可以对Linux做任何操作
  • 普通用户
    受限的权限,普通用户没有对系统的完全控制权,而且用户之间私人的资源是相互隔离的
  • 系统用户
    与系统和程序服务相关的用户
    默认情况下,这些特殊用户是无法登录的,如果给这些用户授权登陆口令后,就可以使用这些用户登录系统
    /sbin/nologin 无法登陆shell

4.2 /etc/passwd 作用和内容

每一行存储一个用户的账号信息
用户名 : 加密密码 : 用户ID : 用户组ID : 用户信息 : 用户主目录 : 登录Shell

root:x:0:0:root:/root:/bin/bash

超级用户root的UID是0
系统用户的UID在1000以内

4.3 /etc/shadow 作用

每一行存储一个用户的登录密码信息

4.4 /etc/group 作用

每一行记录系统中的用户组信息
组名:密码字段:用户组ID :用户名列表

root:x:0:

4.5 常用指令

usermod、userdel、groupadd、groupdel、ln、gzip、unzip、sed、cut、

useradd、chmod、chown、chgrp、find、tar、awk、grep、tr

  • useradd

    • -u, -d, -g, -s 分别对应uid,目录,组别,shell
  • passwd

    • 修改密码
    • passwd 用户名
  • chmod :

    • rwx - readable, writeable, executable,对应4 2 1 权限
    • 最简单的chmod 权限 文件
    • eg chmod 640 a.txt
  • chown

    • chown [-R] 用户名[:组名] 路径
  • chgrp

    • chown [-R] 组名 路径
  • find

    • 查找文件或目录

    • find 路径 [选项] 表达式

    • -name 查找名字

    • -type 文件类型

      • 其中 -type f 是普通文件
    • -perm 文件权限

    •   find / -name “*.conf”
        查找根目录 “ / ” 下所有后缀为conf的文件
      
  • tar

    • tar -cvf 文件 路径 = 压缩文件,生成tar
    • tar -zcvf 文件 路径 = 压缩文件,生成tar.gz
    • tar -zxvf 文件 路径 = 解压文件
  • awk

    • awk ‘{print $…}’
    • 其中$1为文件类型+文件权限
  • grep

    • 查找文件里符合的字符串
    • -v 显示不包含该文本的行
  • gzip

    • 压缩文件
  • unzip

    • 解压缩文件
  • tr

    • 用于转换或删除文件中的字符
    • tr [-d] 字符串1 字符串2

4.6软连接和硬连接的区别和联系

  • ln (-s) 源路径 目标路径
    • ln a b 代表 b->a,即b指向a
    • 默认硬链接,只有-s时候才是软连接
  • 硬链接(hard link)
    • 给文件一个副本(别名),同时建立两者之间的连接关系,修改其中一个,与其连接的文件同时被修改,如果删除其中一个,其余的文件不受影响。磁盘上只有一份数据。硬链接是存在同一个文件系统中
    • 指向同一个Inode节点
  • 软链接(symbolic link)
    • 软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。它只是一个快捷方式,删除了源文件,这个连接文件就没用了。软链接可以跨越不同的文件系统
    • 指向不同Inode节点

【总结】简单来说,软连接只是一个快捷方式 + 一个源文件,硬连接则是在两个地方都出现了同一份文件,根源是一样的。


  • 联系:
    (1)对软连接和硬连接修改,都会对源文件有效
    (2)删除软连接或者硬连接本身,都不会对源文件有影响
  • 区别:
    (1)硬连接,磁盘上只有一份数据,创建其中的一个连接,其余的文件不受影响,只有当链接数变成0,文件才会被真正删掉
    (2)软连接,只是一个快捷方式,是一个独立的文件,删除了源文件连接文件就没用了。

PS!!!需要指定绝对路径,否则链接失效

4.7 常见正则表达式

  • ^xxx,匹配开头

  • xxx$,匹配结尾

  • [],陪陪指定范围内的字符

第五章

5.1 常用指令

wc、sort、yum、sudo

cal、date、su、which、whereis、

  • cal
    • 打印日历
  • date
    • date + ‘…’ ,省略号为具体的表达式
  • su
    • 更换用户
    • su 用户名
  • which whereis
    • 查找文件所在位置
    • which useradd

5.2 vi三种模式的功能、切换

【命令模式】:

  • 进入vi的默认模式

  • 按下esc键后进入

  • 光标移动

    • h(左), j(下), k(上), l(右) <=> 键盘上下左右键
    • $ #移动到行未
    • 0 / ^ #移动到行首
    • **gg ** #定位第一行行首
    • **G ** #定位末行行首
    • nG #定位到第n行行首
    • w | nw #移动到下一/n个字首
    • e | ne #移动到下一/n个字尾
  • 删除

    • **x | nx ** #删除一/n个字符
    • dd | ndd #删除一/n行
    • **d[w|e|b|$|^|G|gg …] **
      删除光标移动范围内的内容
      • dG即可删除所有内容
  • 恢复

    • u #撤销上一步操作
    • U #撤销对当前行的所有操作
  • 复制粘贴

    • yy 复制
    • p 粘贴
  • 替换、切换到插入模式 (含课外补充内容)(含课后作业)

【插入模式】:

  • 按下i,a等指令进入
    • i #在光标左侧插入
    • a #在光标右侧插入

【末行模式】:

  • 命令模式下按 " : " 进入

  • 保存、退出

  • 显示/取消行号

    •   :set nu | :set number
      
    •   :set nonu | :set nonumber
      
  • 显示光标所在行号

    •   :nu | :number
      
  • 搜索

    • **/ **
      从光标所在位置往下搜索
    • ?
      从光标所在位置往上搜索
  • 替换

    • **/x/y **
      把光标所在行第一个匹配的x替换为y
    • :n,m s/x/y
      把第n行到m行中每行中第一个匹配的x替换为y
    • :% s/x/y
      把当前文件中所有行的第一个匹配的x替换为y
    • g : 全局 => 把每一行中所有的匹配项都替换
      /x/y/g
      :n,m s/x/y/g
      :% s/x/y/g
  • 保存与另存为

    • :w 写入
    • :w filename 另存为

华南农业大学 Linux期末笔记_第5张图片

ZZ与:x , :wq 作用一样

5.3 vi与shell交互

在末行模式下用“!”符号来访问Linux的Shell

5.4 vi冲突处理

删除 *.swp 文件

5.5 文本格式转换

Linux下是unix格式

Windows下是dos格式

5.6 课后补充 + 课后作业

命令模式下的常见操作

  • 保存退出
    • ZZ #与末行模式下 :wq 效果一样
  • 快速清空文本内容
    • gg #定位第一行行首
    • dG #删除所有内容
  • 快速删除指定行之间的内容
    • :n,m d #删除第n行到m行之间的内容

课后作业

  • 执行 man ls > out.txt ,生成out.txt文件

    • man是操作手册,遍历操作手册并输出
  • 使用 vi 打开 out.txt

  • 显示所有行号

    •   :set nu | :set number
      
  • 光标移动到100行,向右移动10个字符

    •   100G
        10w
      
  • 移动到第一行,往下搜索“1024”,定位到第二个匹配项

    •   gg
        /1024
        n
      
  • 将50行到100行之间的小写“o”改写为大写"O"

    •   :50,100 s/o/O/g
      
  • 修改完了,突然反悔,如何恢复修改前?

    • u
  • 复制65到73行之间这9行的内容,粘贴到最后一行

    •   65G
        9yy
        G
        p
      
  • 删除21到42行之间的所有内容

    • 20G
    • 22dd
    • :20,42 d
  • 把当前文档另存为 out.txt.bak

    •   :w filename  	#另存为
      
  • 定位到28行,删除3个单词

第六章

  • traceroute
    • 显示数据包到主机间的路径
  • netstat
    • 用于显示网络状态
    • Netstat -ntlp 可查看端口信息

6.1 网络配置文件的各自作用、设置静态IP方法

/etc/sysconfig/network 最基本的网络信息,系统启动时读取该文件
/etc/sysconfig/network-scripts/* 此目录下的文件是系统启动时用来初始化网络的一些信息,例如:第一块以太网卡对应的文件为ifcfg-eth0
/etc/host.conf 域名解析的配置文件
/etc/hosts 域名或主机名与IP地址的映射文件
/etc/resolv.conf 域名服务器配置文件
/etc/protocols 定义使用的网络互联协议及协议号
/etc/services 设定主机的不同端口的网络服务

设置静态IP

  • 在**/etc/sysconfig/network-scripts/ifcfg**文件中设置

  •   BOOTPROTO=static
      IPADDR=192.168.14.11	//IP地址
    

第七章

7.1 两个网络模式的区别与联系(含图),如何选择哪种?

Stand-alone 与 xinetd模式

【区别】

  • stand-alone只能监听一个指定端口,xinetd模式可以同时监听多个接口
  • 运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源
  • 但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降

华南农业大学 Linux期末笔记_第6张图片

华南农业大学 Linux期末笔记_第7张图片

7.2 telnet服务的配置过程、telnet命令使用

  • 配置文件

    • /etc/xinetd.d/telnet
  • 重启服务

    • service xinetd restart

7.3 ftp两种工作模式的区别与联系(含图)

PORT与PASV

华南农业大学 Linux期末笔记_第8张图片

华南农业大学 Linux期末笔记_第9张图片

7.4 ftp的配置过程、ftp命令的使用

  • 配置文件
    • /etc/vsftpd/vsftpd.conf
  • 启动服务
    • service vsftp start

第八章

8.1 X Window的作用和组成 (含图) 、每个组成部分的作用

华南农业大学 Linux期末笔记_第10张图片

X window由三部分组成

【1】X 服务端

  • 每一套显示设备只对应唯一的X Server
  • 是控制输入及输出设备并维护相关资源的程序,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上(在屏幕上构造方块(窗口),然后画出里面的元素)

【2】X 客户端

  • 是应用程序的核心部分,它与硬件无关,每个应用程序就是一个X Client
  • X Client无法直接影响视窗行为或显示效果,它们只能发送一个请求给X Server,由X Server来完成这些的请求

【3】X 通信通道

​ (1)X通信通道的主体是xlib(X函数库)

​ (2)X Client调用xlib,利用相应的通信功能向X Server发出请求

​ (3)X Server完成任务之后,同样调用xlib把结果显示指定的设备上去

8.2 修改系统运行级别

  • 临时更改

    • init n
    • Telinit n
    • Startx(启动图形化环境
  • 长期更改

    • systemctl set-default *.target??

8.3 系统初始化过程(centos7之前和centos7之后)

华南农业大学 Linux期末笔记_第11张图片

华南农业大学 Linux期末笔记_第12张图片

第九章

9.1 shell程序的特点与用途

  • shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行

  • 不同的shell解释器使用不同的shell命令语法

  • shell程序解释执行,不生成可以执行的二进制文件

  • 可以帮助用户完成特定的任务,提高使用、维护系统的效率

  • 了解shell程序可以更好的配置和使用Linux,实现自动化运维

  • shell使用解释型语言,不需重新编译

9.2 shell程序的编写、执行和调试

需要增加可执行权限 chmod +x filename

9.3 变量声明与使用、read、位置变量、 H O M E 、 HOME、 HOMEPATH、$?

【变量】

  • 变量是弱类型
    • 声明变量不用声明类型
    • 可以存储不同类型的内容
    • 大小写区分
    • 变量=值,等号两边不能有空格
    • $变量名 变量名为一个字符时使用
    • ${变量名} 变量名多于一个字符时使用

【read】

  • 使用read将用户的输入赋值给变量

【位置变量】

  • 会把所输入的命令后面的参数使用位置变量传递给bash脚本程序

$0则代表脚本的名字
$1、 2 … 2… 2n分别代表参数1、参数2…参数n
$*:这个变量包括参数的列表(字符串)
$@:这个变量包括参数的列表(数组)
$#:这个变量包括参数的个数

【$HOME】

用户主目录

【$PATH】

寻找命令或可执行文件的搜索路径列表

【$?】

紧邻的前驱命令的返回值 0=成功 1=失败

9.4 双引号、单引号和倒引号的区别和联系

【双引号】

  • 字符串通常被放在双引号中
  • 如果在参数中包含一个或多个空白字符,必须给参数加双引号

【单引号】

  • 单引号括起来的字符都作为普通字符出现

【倒引号】

  • Shell会先执行倒括号内的内容,再以它的标准输出结果取代整个倒引号部分

9.5 简单数学运算、条件判断(字符串、数字)、逻辑运算

【数学运算】

  • expr arg

    • expr 2 + 3
    • 运算符和参数之间要有空格分开
    • 乘法需要 “\”修饰
    • expr ` expr 2 + 3 ` \* 4 即 为(2+3)*4
  • let

    • s=(2+3)*4
  • let语句更加简洁

【条件判断】

  • [ condition ]
    + 条件和左右括号之间要有空格

  • 真:0

  • 假:1

【逻辑运算】

  • 逻辑与-a:condition1-a condition2,如果两个条件都为真,则结果为真

  • 逻辑或-o:condition1-o condition2,如果两个条件有一个为真,则结果为真

  • 逻辑非!:! condition,结果与condition相反

9.6 if、case、for、while、until

要求可以 手写shell程序

第十章

10.1 磁盘设备的命名方式

  • 前两个字母表示分区所在设备的类型:
    • hd:IDE硬盘
    • sd:SCSI硬盘(U盘,移动硬盘等)
  • 第三个字母表示分区在哪个设备上
    • hda:第一块IDE硬盘
    • sda:第一块SCSI硬盘
    • sdb:第二块SCSI硬盘
  • 数字表示分区的次序:
    • hda1:第一块IDE硬盘第一分区
    • sdb2:第二块SCSI硬盘第二个分区

10.2 Linux的文件系统、VFS的功能和作用(含图)

  • XFS为默认文件系统

  • 把文件系统从操作系统和系统服务中分离出来,在它们之间使用了一个接口层,也就是虚拟文件系统VFS(Virtual File System)

  • 华南农业大学 Linux期末笔记_第13张图片

  • 只存在于内存,系统启动时建立,系统关闭时消亡

华南农业大学 Linux期末笔记_第14张图片

【VFS功能】

  • 记录可用文件系统的类型
  • 将设备与对应的文件系统联系起来
  • 处理面向文件的通用操作
  • 涉及到针对文件系统的操作时,把他们映射到相关的物理文件系统

10.3 设备挂载过程

【1】查看设备:使用命令“fdisk -l”可以查看系统的存储设备
【2】挂载设备 :首先使用mkdir命令建立挂载点目录,然后再使用mount命令挂载相关设备
【3】访问设备
【4】卸载设备 :用户在使用完挂载设备后,不能直接将挂载设备从系统拔出,否则会出现问题,严重的会导致系统崩溃。用户必须先执行卸载umount 命令然后再该设备拔出

  • 设备名称在/dev目录下

  • 挂载点,即设备挂载到/mnt目录下

  • 自动挂载文件/etc/fstab

10.4 常用指令

mkfs、fdisk、mount、umount、whoami、who、w、jobs、bg、fg、&(后台进程启动)

  • df

    • 查看磁盘空间使用情况
  • du

    • 统计目录或文件所占磁盘空间大小

10.5 进程的概念、进程和程序的区别与联系

【概念】

  • Linux系统上所有运行的东西都可以称之为一个进程,如每个用户任务、每个系统管理任务

【区别】

  • 程序只是一个静态的指令集合,不占系统的运行资源,只占用磁盘空间
  • 进程是一个随时都可能发生变化的、动态的、使用系统运行资源(cpu,内存等)的程序
  • 一个程序可以启动多个进程

【联系】

  • 进程是一个程序的运行状态

【】

10.6 at和crontab的区别和联系、各自的创建、删除、查看

【区别】

  • at指令输入有交互式和指定文件两种形式
  • at指令只能执行一次,crontab指令可以重复周期性的执行某个程序
  • crontab会将输出作为邮件发送给crontab的所有者

【联系】

  • 指定在将来的某个时间点执行某些命令

at

  • 用法:at [选项] [时间]

  • at -f 脚本文件

  • 查看都是-l

  • at的删除是-d,或者atrm,contrab的删除是-r

10.7 ps、kill、free

ps:显示当前进程的状态

kill:-1 重新加载,-9杀死进程,但是kill只是发送信号,无法真正决定能否杀死。

所以kill -9 无法终止系统进程和守护进程

free“显示内存状态

10.8 日志文件

  • 多数的日志文件位于/var/log目录下,不同的日志文件记载不同的信息

第十一章

11.1 gcc命令使用(一次编译、分开编译、不同目录、指定头文件)

  • -I(大写i)指定目录寻找头文件

【一次编译】

  • gcc a.c b.c d.c -o xxx
    • 一次性编译多个文件

【分步编译】

分别编译每一个c文件

11.2 make工具

11.3make层次图、makefile文件

华南农业大学 Linux期末笔记_第15张图片

11.4 gdb调试工具的基本使用

file 指定需要进行调试的程序
step 单步(行)执行,如果遇到函数会进入函数内部
next 单步(行)执行,如果遇到函数不会进入函数内部
run 启动被执行的程序
quit 退出gdb调试环境
print 查看变量或者表达式的值
break 设置断点,程序执行到断点就会暂停起来
shell 执行其后的shell命令
list 查看指定文件或者函数的源代码,并标出行号

11.5 静态函数库的创建与使用

xxx.a

11.6 动态函数库的创建与使用

xxx.so

实验一

  • ip addr

    • 查看ip地址
  • mv指令可以使用绝对路径,需要 " / " 开始描述目录

  • mv指令使用相对路径时,直接用文件夹名称开始

  • /etc/passwd 这个目录里面存放了用户信息

  • find 指令

  • tar zcvf 目标文件 目录 = 压缩文件

  • awk ‘{print $…}’

实验二

  • 将文件从大到小排序,取最大的
    • ls -S 将文件从大到小排序
    • 再利用管道 | 分割
    • 再利用head -n 指令取前n行
  • 统计有多少用户
    • 即统计/etc/passwd中有多少行
    • wc -l指令统计行数
  • 使用ln -s创建软链接
    • ls a b 即 b -> a,b指向a
  • 利用su指令进行某用户
  • 利用exit指令退出某用户
  • chmod 权限 文件
    • 权限可以直接用三个数字
    • 也可以用u=..., g=..., o=...
  • chown改变用户
    • -R可以连带子目录的文件一起更改

作业3 vi编辑器

  • gg第一行行首

  • G末行行首

  • nG移动到第n行行首

  • dd删除

    • :n,m d 也是删除
  • yy复制

  • p粘贴

  • :w filename 另存为

  • ndw 删除n个单词

  • nx

实验三

  • 安装telnet

  • 安装vsftpd

  • 添加用户

    • useradd 用户名
  • 查看进程信息

    • ps -ef
  • grep查找a内容,去掉其中包含的b内容

    • grep 'a' | grep -v 'b'
    • -v 表示显示不包含该字符串的行
  • 提取制定内容

    • cut命令
    • -d 定义分隔符
    • -f 为提取字段
    • cat /etc/passwd | cut -d: -f1,3,4
  • Chkconfig

    • 查看进程状态

实验五

1. Menu.sh

  • 定义函数

    • Func() {…}
  • 调用函数

    • 只需要输入func,不需要func(),不用带括号
  • 死循环

    •   while true
        do
        
        ...
        
        done
      
  • case

    •   case ${...} in
        
        ..|..)
        		....
        		;;
        ..|..)
        		....
        		;;
        *) #表示其他情况
        	 exit
        	 ;;
        esac
      
  • 显示当前目录

    • pwd
  • 显示文件名字

    • echo $0
  • 显示日期

    • date +'%.....'
  • 显示ip

    • ip addr
    • ifconfig

2. score.sh

  • if语句

    •   if [ x ];then
        		....
        elif [ x ];then
        		....
        else
        		....
        
        fi
      
  • 条件判断整数关系

    • -gt for great than , 大于
    • lt 小于
    • -ge 大于等于
    • -le 小于等于
    • -eq 等于
    • -ne 不等于
  • 条件判断

    • [ condition ],条件要与括号间留有空格

【完整代码】

#!/bin/sh

while true
do

	echo "please input score:"
	read score
	if [ $score -lt 0 ];then
			exit
  elif [ $score -lt 60 ];then
  		echo "Failed!"
  elif [ $score -lt 70 ];then
      echo "Passed!"
  elif [ $score -lt 80 ];then
  		echo "Medium!"
  elif [ $score -lt 90 ];then
      echo "Good!"
  elif [ $score -le 100 ];then
  		echo "Execllent!"
  else
			echo "input error!"
  fi
  
done


3. File.sh

#!/bin/sh
while true
do
	echo -e "input a directory:"
	read dir
	if [ $dir = "q" ];then
			exit
	elif [ -e $dir -a -d $dir ];then
			for file in  `ls $dir`
					do
							if [ ! -e "$dir$file" ];then
										dd="$dir/$file"
              else 
              			dd="$dir$file"
              fi
              type=`ls -ld $dd | cut -c1`
              echo "#{dd}_${type}"
					done
   else
   		echo "...."
   fi
done


4. ftp.sh

#!/bin/sh
yum install -y vsftpd
sed -i "s?anonymous_enable=YES?anonymous_enable=NO?" /etc/vsftpd/vsftpd.conf
service vsftpd start

实验六

1. program.sh

【完整代码】

#!/bin/sh
echo "please input a number:"

read num
while [ $num -gt 0 ]
do
        i=$num
        while [ $i -gt 0 ]
        do
                echo -n "$i "
                let i=$i-1
        done
        echo
        let num=$num-1
done

2. log.sh

Sort - u,去除重复

【完整代码】

#!/bin/sh
ips=`cat run.log | awk '{print $1}' | sort -u`
for ip in ${ips}
do
		count=`cat run.log | grep ${ip} | wc -l`
		echo ${ip} ${count}
done

3. crontab

  • 格式

    • * * * * * 命令
    • 5个星号分别代表
    • 1⃣️分钟,00-59
    • 2⃣️小时,00-23
    • 3⃣️日,01-31
    • 4⃣️月,01-12
    • 5⃣️周几,0-6
  • $?代表上一个命令执行的结果

  • 0代表真,1代表假

统计学

  • Excel排序
  • Excel求平均数
  • Excel计算标准差

你可能感兴趣的:(笔记,linux,bash,运维)