![[B1HMZX$I(_$@AK33}EGAT.jpg

一、填空

  • 重定向:>把输入信息写入,>>把输入信息以追加方式写入
  • 管道操作:“|”,可以把多个简单命令集合一起完成复杂功能。如:cal | wc | wc:对统计日历信息的信息进行统计(套娃)
  • vi 文件名(后缀有没有都行)建立新文件或打开已有文件
  • 中间加个数字会停留在第几行的行首,-r系统瘫痪后恢复某文件,/某字符 查该词第一次出现的位置
  • 进入后按i进行编辑,a附加命令,x删除字符,esc回到默认的模式
  • w保存,w 文件名另存,q退出,加!强制执行
  • <指定行向右向左移动8个空格光标滑倒当前行,输入>> <<所在行移动8空格,n>>从该行以下5行移动8个空格

  • /字符串 向前检索,?字符串 向后检索,/this继续检索,包含特殊字符前面要有\
  • :行号 移到该行行首
  • 测试语句的两种表达

test 内容 #test之后写语句
[内容] #在方括号中写语句

  • 文件测试:-字符 文件位置:-r测试存在且用户可读,-w存在且用户可写,-x存在且用户可执行,-f存在且是普通文件,-d存在且是目录文件,-p存在且是FIFO文件,-s存在且不是空文件
  • 字符串测试:str不是空字符串,str1=str2两个字符串相等,str1!=str2两个字符串不想等,-n str字符串长度不为0,-z str字符串长度为0,例:

test "$s1" = "$s2"

  • 数值测试:n1 -eq n2整数n1=n2,n1 -ne n2整数n1不等于n2,-lt前小于后,-le前小于等于后,-gt前大于后,-ge前大于等于后
    1. rpm -qa | grep httpd#检查本机Apache
    2. yum list httpd#查找服务软件
    3. yum install httpd.x86_64 #安装
    4. systemctl status httpd #开启
    5. systemctl restart httpd.service#重启
    6. lynx http://192.168.1.200 #测试服务器运行状态

    二、单选

    硬盘分区

  1. 硬盘分区是对一块硬盘进行操作的,可以分为:主分区(1-3个)、扩展分区(0-1个)、逻辑分区(无限制)。其级别主分区=拓展分区>逻辑分区;主分区和逻辑分区可以直接使用,拓展分区必须进一步划分若干逻辑分区才能使用。
  2. Windows文件系统格式一般有FAT32和NTFS,Linux有ext3、ext4、xfs、NFS、vfat、swap;Windows不识别Linux文件系统,但Linux可以识别Windows的文件系统并直接使用其中文件。
  3. Linux中,IDE接口硬盘称为/dev/hdX,这个X代表第几个接口的硬盘,第一个接口就是hda,第二个是hdb;SCSI接口硬盘称为/dev/sdN;他们硬盘的第几个分区就在X后加几,如/dev/hda1:第一个IDE接口的硬盘的第一个分区;SCSI、SATA、USB接口都叫/dev/sdX。
  4. 文件成分:索引节点+数据(索引节点是相应文件信息的记录,包括权限、创建者、大小等,标识符i,ls -i 路径 可查看路径下的文件节点号)

    系统的文件

    文件含义

    拓展文件系统的含义

    1. 指一种特定的文件格式。eg.可以说Linux文件系统是ext4或者xfs;MSDOS的文件系统是FAT16;Windows XP的文件系统是 FAT32或NTFS。
    2. 指按特定格式进行了“格式化”的一块存储介质,例如当人们说“安装”或者“卸载”一块文件系统就是指这个意思
    3. 指在操作系统中(通常是内核用来管理文件系统或对文件进行操作的机制及其实现。

一般文件系统的含义都是指前两块儿

  1. 文件
    1. UNIX一开始就把所有设备当成文件。基于这个概念:
      1. 广义:凡是产生或消耗信息的都是文件。
      2. 侠义:指“磁盘文件”。可以有组织、有次序的存储于任何介质(包括内存)的一组信息。
    2. 在Linux系统中,文件是一个字符序列。基于这个概念:
      1. Linux不仅把普通文件(文本文件、可执行的文件等)或是目录当成文件。
      2. 也把磁盘、键盘、打印机以及网卡等设备也当成文件,因为他们都作为字符流设备进行标识。
    3. 注意 在Linux中所有的输入输出设备都以”文件“形式被对待
  2. 目录
    1. 目录文件包含许多文件的目录项。
    2. 每个目录项包含对应的文件名称+i节点号
    3. i节点的作用:用于存放该文件的控制管理信息
    4. 目录支持文件系统的层次管理结构。文件系统中,每个节点都都登记在一个或多个目录中。
    5. 除了根目录,所有的目录都是子目录,每个子目录都有对应的父目录。但/ 根目录就做为自己的父目录
  3. 文件名:用于表示文件的字符串,存储在一个目录项中。
  4. 路径名:是通过斜线字符”/“结合在一起的一个或多个目录及文件名的集合。
  5. 当前工作目录:
    1. 相对路径:以当前工作路径为参考点。
    2. 绝对路径:用根目录作为参考点

      文件类型

  • LInux系统下一共分为 7种文件类型:
    普通文件
    目录文件
    字符设备文件和块文件
    符号链接文件
    套接字文件
    管道文件
  • 1)普通文件

普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。
在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型。
2)目录文件
Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。
每个目录文件至少包括两个条目,“…”表示上一级目录,“.”表示该目录本身。
3)设备文件
Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。
字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。
deng@itcast:~/share$ echo “hello world” > /dev/pts/22 hello world
4)管道文件
管道文件也是Unix/Linux中较特殊的文件类型,这类文件多用于进程间的通信。
5)链接文件
似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。

  1. 普通文件
  2. deng@itcast:~/test$ ls -l /etc/passwd
  3. -rw-r--r-- 1 root root 2372 3 21 22:48 /etc/passwd
  4. 目录文件
  5. deng@itcast:~/test$ ls -ld /etc
  6. drwxr-xr-x 134 root root 12288 5 28 11:28 /etc
  7. 字符设备
  8. deng@itcast:~/test$ ls -l /dev/input/mouse0
  9. crw-rw---- 1 root input 13, 32 5 26 17:01 /dev/input/mouse0
  10. 块设备
  11. deng@itcast:~/test$ ls -l /dev/sda1
  12. brw-rw---- 1 root disk 8, 1 5 26 17:01 /dev/sda1
  13. 创建一个管道文件
  14. deng@itcast:~/test$ mkfifo fifo
  15. deng@itcast:~/test$ ls -l fifo
  16. prw-rw-r-- 1 deng deng 0 5 28 11:59 fifo
  17. 符号链接
  18. deng@itcast:~/test$ ls -l /bin/sh
  19. lrwxrwxrwx 1 root root 4 11 17 2017 /bin/sh -> dash
  20. deng@itcast:~/test$
  21. 套接字文件
  22. deng@itcast:~/tmp/test$ ls -l /run/systemd/notify
  23. srwxrwxrwx 1 root root 0 8 8 11:00 /run/systemd/notify

文件目录、成分、命名

  1. 文件案名最长255字符,ASCII码的字符组成。
  2. /etc/passwd用于保存用户的账户信息,加密的密码放在/etc/shadow,组放在/etc/group,组口令、组管理员/rtc/gshadow。
  3. 添加新用户:useradd [选项] 用户名注:-d 路径:设置,-e 日期:设置账号过期日期,格式YYYY-MM-DD,-g 组名:设定用户所在组组名,如果名称已存在是加入已有组,-s shell路径:设定用户登录的shell,默认是bash,-u uid:设定用户UID,必须唯一且>1000,-D 用户名:显示用户所使用的默认值
  4. usermod修改已有用户账户属性:usermod [选项] 用户名 注: -l 新用户名:改变已有用户名,-L:锁定指定用户账号,-U:对已锁定用户解锁。
  5. passwd设置用户账号和口令:passwd [选项] 用户名 注:(仅root可用) -S:用于查询指定用户的口令状态,-l:锁定指定用户的口令,-u:解锁指定用户的口令,-d:删除指定用户的口令。
  6. userdel删除指定用户账户:userdel [-r] 用户名 #加上-r代表删除所有配置和有关文件
  7. groupadd添加新的组账户:groupadd [-r] 组名 #不带r建立普通组,带r建立系统组
  8. groupmod改变用户组账户的属性:groupmod [-r] 组名

    Linux内核程序

  9. 内核是系统的核心,是运行程序、管理磁盘和操控打印机等硬件设备的核心程序,包括:CPU调度、作业管理、内存管理、文件管理、磁盘管理。

  10. Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。
  11. 内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。
  12. MySql数据库的初始化操作:

    1. 初次登陆查看版本号:mysql -V
    2. 试用root直接登录:mysql -u root登陆失败
    3. 查看登录日志生成的临时密码:grep "password" /var/log/mysql.log
    4. 携带初始密码明码显示登录:mysql -u root -p临时密码
    5. 启动MySql
      1. 查看状态:#systemctl status mysqld
      2. 执行命令启动:#systemctl start mysqld 系统自启动:#systemctl enable mysqld
      3. 停止服务:#systemctl stop mysqld
    6. 连接与断开
      1. 匿名用户远程登陆连接:#mysql
      2. 用设定好的用户密码登录:#mysql -h hostname -u username -p
      3. 断开数据库:#mysql>quit

        三、简答

        安装Linux

  13. 简述Linux安装步骤以及注意事项

选择安装界面(有三种类型)->语言选择->选择安装信息(三部分:本地化、软件和系统)->选择安装软件(默认是最小安装改为-GNOME桌面)->设置磁盘分区方案(手动分区)->手动分区(文件分区两种方式:新建分区/利用现有分区——一般Linux采用xfs分区的文件系统):

  1. - 添加新的挂载点:物理存储设备与文件系统建立连接
  2. - 必须建立的分区:1./ 根目录分区 2. /swap交换分区 3. /boot;其他分区:/home:用户目录分区;/var 容易改变的文件系统分区;
  3. - 自动分区方式会使整个硬盘原来的分区信息全部丢失。
  • ->最后,设置口令以及验证登录

2.简述在虚拟机中安装UbuntuLinux的过程
答:
1.下 载操作系统的镜像ISO文件
2.下 载虚拟机并安装
3.通过ISO文件安装操作系统
4.执行相关配置即可

  1. 简述Linux系统启动过程。

加载BIOS->进入GRUB->加载Linux Kernel->执行init->运行/etc/rc、d/rc、sysinit->执行/etc/inittab->执行默认级别所有Script->执行/bin/login程序。

i节点

  1. 概念
    1. 又称索引节点,在文件系统结构中,包含有关响应文件的信息的一个记录,这些信息包括文件权限、文件主、文件大小、存放位置、建立日期等。
    2. inode是每个Linux分区中对文件使用的标识符。
    3. 每个文件都有一个inode,如果inode搞乱或搞错,则Linux无法找到相关文件。同一文件具有相同的inode号。
  2. 解释i节点在文件系统中的作用。
    1. 在linux文件系统中,是以块为单位存储信息的,为了找到某一 个文件在存储空间中存放的位置,用i节点对一个文件进行索引。
    2. I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。

进程管理

  1. 简述进程的启动、终止的方式以及如何进行进程的查看。在Linux中启动一个进程有手工启动和调度启动两种方式:

(1)手工启动
用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:
①前台启动:直接在SHELL中输入命令进行启动。
②后台启动:启动一个目前并不紧急的进程,如打印进程。
(2) 调度启动
系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
经常使用的进程调度命令为: at、 batch、 crontab。

  1. 进程的概念
    1. 创建进程的目的是为了是多个程序可以并发地执行,从而提高系统的资源利用率和吞吐率。
    2. 进程是指程序实体的运行过程,是系统进行资源分配和调度的独立单位,或者说是一个程序在处理机上的依次执行活动。
    3. 进程和程序的概念比较
      1. 程序只是一个静态的指令集合;而进程是一个程序的动态执行过程,进程具有生命期,是动态产生和消亡的。程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此不占用系统的运行程序。
      2. 程序和进程无一 一对应关系。一方面一个程序可以由多个进程所共用,即一个程序在运行过程中可以产生多个进程;另一方面,一个程序在生命周期内可以顺序的执行若干个程序。

cron作业

  1. 有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?

(1) 第一种方法:
用户应使用 crontab-e 命令创建crontab文件。格式如下:
00 sun cp -r /user/backup /tmp
(2) 第二种方法:
用户先在自己目录下新建文件file,文件内容如下:
0 0 sun cp -r /user/backup /tmp
然后执行crontab file使生效。

注意与at作业不同的是,cron作业可以在固定的的间隔时间执行作业,而不是像at是指定某一个固定的时间去执行

service crond restart     #cron是一个标准后台服务程序
cat /etc/crontab
service crond restart  #启动corn服务
crontab [-u 用户名] 文件名 #创建corn作业
crontab [-u 用户名] [-e (*编辑*)|-l(*列出*)|-r (*删除*)] #管理corn作业
  • 怎样创建cron作业列表练习题:

D155F8579CE140C590E8FFA6E616525A.jpg

  • 进程控制,用法ps [选项],-a显示所有用户进程,-e显示包括系统进程的所有进程,-l显示进程的详细列表,-f显示进程详细信息,-x显示没有控制终端的进程,-u显示用户名和启动时间

    内核基础

  1. Linux内核主要由哪几部分组成?每部分的作用?
  • Linux内核主要由由五个子系统组成:
  • Linux内核主要由五个子系统组成: 进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。
    1. 进程调度(PM): 控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程;
    2. 内存管理(MM): 允许多个进程安全地共享主内存区域.
    3. 虚拟文件系统(VFS): 隐藏了各种硬件的具体细节,为所有设备提供了统一的接口,VFS提供了多达数十种不同的文件系统.
    4. 网络接口(NET):提供了对各种网络标准的存取和各种网络硬件的支持.
    5. 进程间通信(IPC):支持进程间的各种通信机制.

      Linux系统的文件操作命令

      页码P77

1.文件导航

  1. “.”开头的文件是隐藏文件,目录文件也是这么标识的。
  2. 字符设备和块设备是特殊设备文件,对应不同驱动器。
  3. 一个文件命名多个名称成为链接,就是在不同路径下的相同文件(书里说的真玄乎半天才看懂)
  4. 使用ls -l输出目录时,每行第一个字符:-表示普通文件,d表示目录文件,c表示设备文件,b表示块设备文件,l表示链接文件。
  5. ls -m按字母逆序或者最早优先顺序显示输出结果,-R递归显示指定目录各个子目录和文件,-i显示文件索引节点号。

    ls -R 指定目录
    ls -al /root | sort -n -r -k 5        #把root目录下的所有文件(包含隐藏文件)按文件的大小进行排序。
    
  6. cd移到主目录,cd..移到上一级,cd /路径/移到指定路径

    2.文件信息显示

  7. file命令查看文件类型用法:file 文件名[可在此处加多个文件]

  8. cat显示文件信息
  9. more 文件名 分屏显示文件内容,回车下一行,空格下一层,Q退出 ```bash cat [选项: -n从1开始对所有输出行编号;重定向:>写到新文件;cat 文件1 文件2 > 新文件名=合并文件;附加重定向:>> 追加不覆盖] 文件名

cat > f1 #输出重定向 … < Ctrl > + d #存盘退出

cat f2 >> f1 #把f2文件内容附加到f1后面

合并文件

cat f1 > f3 cat f2 >> f3

把f1和f2合并成f3

![image.png](https://cdn.nlark.com/yuque/0/2022/png/26112458/1656090037427-0572f0d1-65e4-48d2-8628-37abbd7ddc31.png#clientId=ub1681e27-725e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=509&id=ufe9ce25a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=636&originWidth=872&originalType=binary&ratio=1&rotation=0&showTitle=false&size=49068&status=done&style=none&taskId=u2375d6cd-5437-4820-9c5e-df06b7e29e6&title=&width=697.6)
<a name="eLSPT"></a>
### 3.文件的复制删除以及移动

   10. cp用于复制
```bash
cp [选项] 源文件或目录 目的文件或目录
cp -f:如果目标名重复直接覆盖不提示
cp -p:目标文件保持原有生成日期和inode号
cp -r:包括子目录的套娃复制,递归操作
  1. mv命令是移动,用法同上.同时也是改名
  2. .rm删除文件

    rm [选项] 文件名
    rm -r:连带删除目录
    rm -rf:删除时不经过确认
    

    4.文件的检索排序以及查找

  3. grep检索

  • 文件信息检索命令grep

grep [选项] 字符串[文件...]
功能:查找所在文件内容的所在行

     - -n 标出行号
     - -I ❗注意大写 忽略字符大小写;
     - -v 过滤检索;
$ grep root /etc/passwod
$ cat /etc/passwd |grep root
$ cat /etc/logrotste.conf |grep -v ^ $ |grep -v ^ #            #带参数的过滤再查看系统配置文件中经常用到,查看某一配置文件时过滤空格和注释❗`^`表示行首,以#开头的行去掉
  1. sort排序命令

    $ sort [选项] [文件列表]
    sort -r         #对文件按每行第一个字符反向排序
    sort -o          #将结果输出到新的文件
    sort -n          #按第一个字段数值排序
    sort -k N      #每行以第N个字段关键字排序
    #将文件由小到大排序
    $ ls -l |sort -n -r -k 5            #利用管道线方式实现
    
  2. find查找命令

    $ find /etc -name init        #在目录/etc中查找文件init,-iname不区分大小写
    $ find / -size +204800        #在根目录下查找大于100MB的文件
    +n大于    -n小于    n等于
    $ find /home -user shenchao        #在根目录下查找所有者为shenchao的文件,-group根据所属组查找
    $find / var -name *.sh                #在/var目录下查找所有以sh 为扩展名的文件
    $find /home -user root                #在/home 目录下查找属主为root用户的文件
    $find /home -user root -a -name *.sh        #-a连接两个不同的条件(两个条件必须同时满足) -o     表示满足一个即可
    $find /tmp -perm -755            #查找在/tmp 目录下权限是755的文件
    $find / -type d -a -atime +3            #在/根目录下查找3天没有访问过的目录
    $find /tmp -size +2M                #查找在/tmp目录下大于2M的文件
    $find . -inum 31531 -exec rm {} \.         #在当前目录下查找i节点为31531的文件并进行删除,-ok 询问确认。
    

    5.Linux目录操作

    mkdir [选项] [目录名]
    mkdir Dir1 Dir2 #同时创建Dir1和Dir2两个目录
    mkdir -p Dir1/Dir2 #递归生成Dir1和Dir2,Dir2作为Dir1子目录
    mkdir -m 744 /usr/Dir3 #在这个路径下生成Dir3,744是权限,后面讲
    
  3. 删除空目录❗rmdir

    rmdir [目录名]
    rmdir -p        #递归删除
    rm            #也是删除,但是是删除文件比这个更好用
    rm    -r        #删除目录
    rm  -rf        #强制删除目录,不会询问
    $ rmdir /tmp/Japan/boduo     #此处为空目录,否则不能删除