华南农业大学期末 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. cd
和 pwd
命令
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 -u
,id -g
查找和显示用户的信息:finger
切换用户身份:su root
进程管理:
- 交互进程:Shell启动的
- 批处理进程:和终端没有关系
- 守护进程:后台持续运行的进程
终端前台进程:ctl+c
,kill
显示所有的后台进程: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速成大法(理论)的主要内容,如果未能解决你的问题,请参考以下文章