华南农业大学期末 Linux速成大法(理论)

Posted JintuZheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华南农业大学期末 Linux速成大法(理论)相关的知识,希望对你有一定的参考价值。

完了,要考试了,写不完了,GG

转到速速速成版本:(集成所有的简答题):

https://jintuzheng.blog.csdn.net/article/details/117535956

第一部分:Shell


1. Shell 相关

我们在Linux默认的Shell是bash,程序在:/bin/sh,所以,我们可以自己去美化我们的Shell,比如zsh,oh-my-sh

echo $SHELL 来查看当前使用的Shell是什么
chsh -l 来查看当前系统支持的Shell有哪些
chsh -s /bin/zsh 将Shell更换成zsh这个第三方的Shell
/bin/bash -version 查看Shell的版本

快捷

  • 单击tab 补全路径
  • 双击tab 查看可能对应字母的命令
  • 管道:| 把分割开的左命令的输出作为右边命令的输入
  • 重定向:> 覆盖输出,>> 追加输出,< 重定向输入
  • 键盘的上下可以查看历史命令
  • ctrl+r可以查找历史命令

我们的每一个命令的执行都有输入,输出,错误输出。因此,我们的有三个文件描述符标识。0:输入,1:正确输出,2:错误输出

例子:我们将ls列出的目录内容重定向某个文件:
ls /usr/abc >ok.txt # ok文件作为正确输出,默认的
ls /usr/abc 1>ok.txt 2>error.txt # 输出错误的放在error文件里面,ok文件放输出正确的
ls /usr/abc 2>/dev/null # 这个的意思是输出到设备黑洞

例子:
ls /var/log | grep log # 找出/var/log 下的目录。然后把输出的目录(此时是字符串)信息作为grep函数(查找函数)的输入,结果是:
在这里插入图片描述

ls /var/log | grep log | wc -l # 列出 var/log/的目录,查找里面带有log的表示出来,然后数行数
在这里插入图片描述


2. ls命令

在这里插入图片描述
在这里插入图片描述

权限速记:

第一个数字7是档案拥有者的权限(可读+可写+可执行=4+2+1)
第二个数字5是群组的权限(可读+可执行=4+1)
第三个数字5是其他人的权限(可读+可执行=4+1)

例题:
系统中有用户 user1 和 user2,同属于 users 组。在 user1 用户目录下有一文件file1,它拥有 644 的权限,如果 user2 用户想修改 user1 用户目录下的 file1 文件,应拥有664权限

第一个文件类型的种类:
在这里插入图片描述


3. Linux系统结构

在这里插入图片描述
/bin
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件

/root
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv
该目录存放一些服务启动之后需要提取的数据。

/sys
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp
这个目录是用来存放一些临时文件的。

/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin
系统用户使用的应用程序。

/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src
内核源代码默认的放置目录。

/var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。


4. cdpwd 命令

cd . 一个点表示当前目录
cd ../.. 返回前两级目录
cd ~ 直达home目录
cd - 返回上一个cd到达的目录
pwd 显示当前目录绝对路径


5. cat 命令

用于连接文件,同时有一些骚用法:

cat 1.txt 2.txt >3.txt # 将1.txt和2.txt文件连接合成为3.txt

加上行号:-n加上行号,-b也是加上行号,但是空白行不加上

cat -n textfile1 > textfile2 # 对文件textfile1加上行号之后创建为新的文件textfile2

cat用于清空文件:

cat /dev/null >test.txt

制作镜像文件:

cat /dev/fd0 > OUTFILE

镜像文件写入到设备:

cat IMG_FILE > /dev/fd0


第二部分:系统服务和管理

设备被抽象成文件
设备文件击中放在/dev目录下面

设备命名

  • hd:IDE硬盘
  • sd:SCSI硬盘
  • hda1:第一块(a)IDE硬盘的分区1(1)

磁盘管理
列出所有的磁盘:fdisk -l
列出所有的磁盘分区:lsblk

文件系统
查看支持的文件系统:cat /proc/filesystems
ext的文件系统支持最大的文件是2GB,ext3采用日志文件系统的技术
引进ext文件系统的重大改进是使用了VFS(只在内存里面,系统关闭消亡)

  • 记录可用的文件系统类型
  • 设备和对应的文件系统对应起来
  • 映射物理操作
    在这里插入图片描述

设置新的挂载点:(挂载D盘)
mkdir /mnt/d
mount -t drvfs D: /mnt/d

drvfs可以换成:ext3

空间管理
显示磁盘使用情况:df
统计目录所占空间:du -k /tmp(-k以KB形式)
查看内存:free

账户管理
查看当前用户的用户名:whoami
查看在线的用户:who -H或者:w|more
查看用户的uid和ugid:id -uid -g
查找和显示用户的信息:finger
切换用户身份:su root

进程管理

  • 交互进程:Shell启动的
  • 批处理进程:和终端没有关系
  • 守护进程:后台持续运行的进程

终端前台进程:ctl+ckill
显示所有的后台进程:jobs
进程前后台切换:fg <pid>bg <pid>
显示所有的进程:ps -e

定时作业

先开启守护进程:
systemctl start atd
at <date> -f <sh-file>

date的写法:

  • 22:23 09/19/2021
  • now + 2 minutes

列出所有的作业:at -l /atq

计划任务

crontab -e

-e 的格式 f1 f2 f3 f4 f5 program

在这里插入图片描述
分,时,天,月,周几

当出现,那么该位就是星星,每隔用/

# 每月每天12点执行一次echo hello
0 12 * * * echo hello

# 在12月内,每天早上6点到12点,每隔20分钟执行一次/usr/bin/backup
*/20 6-12 * 12 * /usr/bin/backup
# 翻译:每隔20分,6点-12点,每天,在12月

# 每月每天的午夜0点20分,2点20分,4点20分…显示当前时间
20 0-23/2 * * * date
# 翻译:在20分,0时-23时每隔2小时,每天,每月

# 每一分钟执行一次 /bin/ls:
* * * * * /bin/ls

# 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup

# 周一到周五每天下午 5:00 寄一封信给 alex@domain.name:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

# 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha":
20 0-23/2 * * * echo "haha"

# 意思是每两个小时重启一次apache 
0 */2 * * * /sbin/service httpd restart

# 意思是每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start   

# 意思是每天22:50关闭ssh服务
50 22 * * * /sbin/service sshd stop   

# 每月1号和15号检查/home 磁盘
0 0 1,15 * * fsck /home   

# 每小时的第一分执行 /home/bruce/backup这个文件
1 * * * * /home/bruce/backup  

# 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \\;  

# 意思是每月的1、11、21、31日是的6:30执行一次ls命令
30 6 */10 * * ls  

系统初始化的过程

  • Bios初始化
  • Boot loader管理程序加载
  • 内核初始化
  • 第一个初始进程启动

以上是关于华南农业大学期末 Linux速成大法(理论)的主要内容,如果未能解决你的问题,请参考以下文章

云计算期末速成大法

云计算期末速成大法

华南农业大学 Linux 期末简答速成

华南农业大学 Linux 期末简答速成

Hadoop 速成大法(理论)

Hadoop 速成大法(理论)