:::info
此文档原为期末复习所作笔记整理文档,特系统转为所学体系
课本课后习题解答:
:::
UNIX发展历史
- Multics项目
- Unix系统 美国贝尔实验室肯 汤普森
- 美苏冷战诞生C语言与网络协议TCP/IP,提高UNIX系统的可移植性
Linux发展历史
- 诞生于1991年,由林纳斯托尔德(Linus Torvalds)以及爱好者开发完成
-
Linux内核
内核版本说明
- 在1.0~2.6版本之间由三位数字组成(r:目前发布的kernel主版本,x:偶数稳定版,奇数测试版,y:错误修补次数)
- 在2.6~3.0版本之间由4位数字组成(r,x,y,z)其中,z表示bug修复、安全更新、新特性和驱动的次数,其余数字含义不变
- 3.0版本之后y的含义失效,比如3.7.0不是开发版,而是稳定版
- CentOS7系统使用的内核版本是3.10.0
Linux内核层
- (www.kernel.org 可以查询当前最新发行版本)内核是系统的核心,是运行程序、管理磁盘和操控打印机等硬件设备的核心程序,包括:CPU调度、作业管理、内存管理、文件管理、磁盘管理。
- Linux主要发行版本
怎样选择:(软件包)国内大部分选择CentOS作为部署服务器版本,但Ubantu部署桌面精美各有侧重,红旗Linux与Windows布局十分相近。
开源软件简介
- 绝大多数开源软件免费,但注释也可能收费,开源软件的安全性非常高。
- 支撑互联网的开源技术
Linux的应用领域
- (搜索各大网站服务器的网站 :netcraft)Andriod平台底层基于Linux,应用于手机、平板电脑
- 其他嵌入式应用:智能家电、智能卡系统、航空系统、银行系统、卡拉OK点歌系统等等……
- 黑客帝国,用Nmap扫瞄和切换好莱坞FGI大量换成Linux系统处理
Linux系统安装
VMware虚拟机安装与使用
- VMware是-一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。
- VMware官方网站 http://www.vmware. com
- VMware主要特点
- 不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统
- 本机系统可以与虚拟机系统网络通信
- 可以设定并且随时修改虚拟机操作系统的硬件环境
建议的VMware配置
- 创建快照,避免崩溃重装(备份)
- 克隆占内存小,使用便捷![image.png](https://cdn.nlark.com/yuque/0/2022/png/26112458/1654684482984-eaec2629-6c3f-436b-95b7-e67c75bb0e72.png#clientId=u3911c54e-a3f5-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=20&id=u7d570716&margin=%5Bobject%20Object%5D&name=image.png&originHeight=25&originWidth=103&originalType=binary&ratio=1&rotation=0&showTitle=false&size=3919&status=done&style=none&taskId=u2638c029-c1bb-41a2-bc5d-ce07605045f&title=&width=82.4)
系统分区
分区设备文件名
每个分区必须设置挂载点
虚拟机中进行CentOS 6安装兄弟连视频
- 挂起,将当前状态卡住只存在于虚拟机的Linux操作系统中
F2键进入BIOS(主板自带的操作系统)
/root/insall.log: 存储了安装在系统中的软件包及其版本信息
- /root/install.log.syslog: 存储了安装过程中留下的事件记录
/root/anaconda-ks.cfg: 以Kickstart配置文件的格式记录安装过程中设置的选项信息
远程登陆管理工具
网络管理
网络模式
- 桥接:真实机独立通信,配置简单,会占用一个真实IP,可能会冲突
- NAT:虚拟网卡,能和本机通信与其他虚拟机通信,但不占用IP
- 仅主机模式(Host Only):只能和主机通信
网络配置
- 命令
- ifconfig(Windows下是ipconfig,if可以看作interface,ip可以看作ipaddress)
- ifconfig eth0 IP地址(要么在NAT/Host Only下与linux本地配置IP一个网段,要么在桥接模式且连接网线下 与主机一个网段)
- 注意:这个命令只是临时改变本地ip地址,要想永久生效需要到本地默认配置文件中进行更改。
- 桥接模式可能出现连接失败,仅需手动更改连接的主机网卡即可
- ping 对方ip 命令进行访问测试。
- 网卡设备
- 命令
用户登录
- 有的Linux操作系统版本里面可能不允许root之间进行远程登陆,所以可以使用其他用户
- CentOS可以使用root登录
- 一般不建议使用root,权限太大,危险性高。
- Session Options用户个性化定制
- Linux严格区分大小写(Linux常用命令都是小写),文件名称、命令、选项和配置文件都是。可以按Tab键补全。
- 所有的内容都是以文件的形式保存的,特别是dev设备。
- 硬件文件 /dev/sd[a-p]
- 光盘文件 /dev/sr0等
- Linux文件没有扩展名
- Windows的扩展名早期符合一定规则(如8.3和图标显示)。
- Linux文件靠文件权限显示。
- 如果有扩展名也仅是为便于管理员查看使用。
- Linux所有的存储设备都必须挂载后用户才能使用,包括硬盘、U盘和光盘。
Windows下的程序不能直接在Linux下运行和安装。(可能不稳定或无法运行,虽然有些能用模拟器运行起来,但是不推荐)
服务器的维护和管理
Linux各目录作用
- 服务器注意事项
- 服务器不允许关机,只允许重启。
- 重启时应该关闭服务。
- 不要再服务器访问高峰运行高负载命令
- 远程配置防火墙时不要把自己踢出服务器
- 指定合理的密码规范并定期更新
- 合理分配权限
- 定期备份重要的数据和日志
Linux常用命令
文件处理命令
本部分知识点涉及文件管理,可以先了解文件系统后再操作
命令格式与目录处理命令Is
命令格式 :::success
- 命令[-选项] [参数]
:::
ls -la /etc
- 命令[-选项] [参数]
:::
说明
1)个别命令使用不遵循此格式
2)当有多个选项时,可以写在一起
3)简化选项与完整选项
- 简写:-a 等于--all
- 命令名称: ls
- 命令英文原意: list
- 命令所在路径: /bin/ls
- 执行权限:所有用户
- 功能描述:显示目录文件
- 语法: ls 选项[-ald] [文件或目录]
- -a 显示所有文件,包括隐藏文件(all)
- -l 详细信息显示(long长格式显示)
-d 查看目录属性
[root@localhost ~]# ls -lh 总用量 4.0K -rw-------. 1 root root 1.8K 8月 21 2021 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 8月 21 2021 公共 drwxr-xr-x. 2 root root 6 8月 21 2021 模板 drwxr-xr-x. 2 root root 6 8月 21 2021 视频 drwxr-xr-x. 2 root root 53 5月 20 20:09 图片
六个组成部分:
- 代表引用计数
- 文件所有者owner,一般只有一个。
- 文件所属组group
- 文件大小,带有h命令时:K/M字节显示,一般只按字节大小显示。
- 文件最后修改时间
- 文件名
文件类型
确定文件类型:file 文件名 [文件名…]
命令名称: mkdir
命令英文原意: make directories
命令所在路径: /bin/mkdir
执行权限:所有用户
语法:mkdir-p [目录名]
功能描述:创建新目录
-p 递归创建:没有父目录的情况下创建子目录
范例:$ mkdir -p /tmp/Japan/boduo
$ mkdir /tmp/Japan/longze /tmp/Japan/cangjing #创建多个目录
- 命令名称: cd
命令英文原意: change directory
命令所在路径: shell内 置命令
执行权限:所有用户
语法: cd [目录]
功能描述: 切换目录
范例: $ cd /tmp/Japan/boduo #切换到指定目录
$ cd .. #回到上一级目录
❗中间必须有空格,Windows中可以没有
- 命令名称: pwd
命令英文原意: psint working directory
命令所在路径: /bin/pwd
执行权限: 所有用户
语法: pwd
功能描述: 显示当前目录
范例:
$ pwd
/tmp/Japan
- 命令名称: rmdir
命令英文原意: remove empty directories
命令所在路径: /bin/rmdir
执行权限:所有用户
语法: rmdir [目录名]
功能描述:删除空目录❗所以比较鸡肋
范例:$ rmdir /tmp/Japan/boduo #此处为空目录,否则不能删除
- 命令名称: cp
命令英文原意: copy
命令所在路径: /bin/cp
执行权限:所有用户
语法:cp -rp [原文件或目录][目标目录]
-r 复制目录
-p 保留文件属性
功能描述:复制文件或目录
范例:
$ cp -r /tmp/Japan/cangjing /root #将目录/tmp/Japan/cangjing复制到目录/root下
$ cp -rp /tmp/Japan/boduo /tmp/Japan/longze /root #将/tmp/Japan目录下的boduo和longze目录复制到/root下,保持目录属性
- 命令名称:mv
命令英文原意: move
命令所在路径: /bin/mv
执行权限:所有用户
语法: mv [原文件或目录] [目标目录]
功能描述:剪切文件、改名
- 命令名称: rm
命令英文原意: remove
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm -rf [文件或目录]
-r 删除目录
-f 强制执行
功能描述:删除文件 /目录
文件处理命令2
touch cat -n tac more less n head -n tail -n -f
- 命令名称: touch
命令所在路径: /bin/touch
执行权限:所有用户
语法: touch [文件名]
功能描述:创建空文件
范例: $ touch Japanlovestory.list #创建文件
$touch "shenchao program" #创建带有空格的文件,一般不建议
$touch shenchao program #分别创建两个空文件
- 命令名称: cat
命令所在路径: /bin/cat
执行权限:所有用户
语法:cat [文件名]
功能描述:
显示文件内容;-n 显示行号;
$ cat /etc/issue #浏览文件内容 $ cat -n /etc/services #带行号显示
建立小型文件;输出重定向,附加重定向;
$ cat > m1 #建立以m1为文件名的新文件 $ echo "hello! world" $ echo 'date'#重定向输入内容 ctrl +d #存盘退出 $cat m1 #显示其信息 echo "hello! world" echo 'date'
合并文件
$ date > m2 #创建m2文件 $ cat m1 m2 > m3 #连接m1 m2文件成为一个新文件m3 $ cat m3 #显示m3文件内容 echo "hello! world" echo 'date' 2022年 06月 13日 星期一 22:19:38 CST
拓展cat反向显示,但是不支持-n 显示行号
- 分屏显示文件内容
- 命令名称:more
命令所在路径: /bin/more
执行权限:所有用户
语法: more [文件名]
(空格) space或 f翻页
(Enter)换行
q或Q退出.
范例:$ more /etc/services
- 命令名称: less
命令所在路径: /usr/bin/less
执行权限:所有用户
语法: less [文件名]
功能描述:分页显示文件内容(可向上翻页)Pgup;搜索关键词,n可找下一个匹配关键词。
范例:$ less /etc/services
- 命令名称: head
命令所在路径: /usr/bin/head
执行权限:所有用户
语法:head [文件名]
功能描述:显示文件前面几行
-n 指定行数
范例:$ head -n 20 /etc/services
- 命令名称: tail
命令所在路径: /usr/bin/tail
执行权限:所有用户
语法: tail [文件名]
功能描述:显示文件后面几行
-n 指定行数
-f 动态显示文件末尾内容.
范例:$ tail -n 18 /etc/services
链接命令
- 命令名称: In
命令英文原意: link
命令所在路径: /bin/n
执行权限:所有用户
语法: In -s [原文件] [目标文件]
-s 创建软链接
功能描述:生成链接文件
范例:
$ ln -s /etc/issue /tmp/issue .soft #创建文件/etc/issue的软链接/tmp/issue soft
$ ln /etc/issue /tmp/issue hard #创建文件/etc/issue的硬链接/tmp/issue hard
[limya@localhost ~]$ ls -l /tmp/issue.soft
lrwxrwxrwx 1 limya limya 10 6月 14 19:47 /tmp/issue.soft -> /etc/issue #权限强大,箭头指向源文件.
[limya@localhost ~]$ ls -l /tmp/issue.hard
-rwxrwxrwx. 3 root root 35 6月 13 16:05 /tmp/issue.hard
- 特点:
- 软链接特征:
- 类似Windows快捷方式
lrwxrwxrwx
“I” 软链接- 文件大小只是符号链接
/tmp/issue.soft -> /etc/issue #箭头指向源文件.
- 硬链接特征:
- 同等于拷贝cp-p +同步更新
- 就算源文件丢失,硬链接也依然可以访问
- 软链接特征:
例如echo“www. lampbrother .net" >> /etc/issue
可以重定向写入文件,软硬连接都可以看到其中源文件的内容
- 通过i节点识别,硬连接文件i节点与源文件相同
注意一个文件只能对应一个i节点,但一个i节点可以对应多个文件
- 不能跨分区
- 不能针对目录使用
权限管理命令
- chmod
用户分为三类:U所有者(owner)只能有一个,G所属组(group)也只能有一个,O其他人(other);权限也分为三类:rwx
命令英文原意: change the permissions mode of a file
命令所在路径: /bin/chmod
执行权限:所有用户
语法:chmod [{ugoa} {+-=} {[wx}][文件或目录]
[mode= =421 ] [文件或目录]
-R 递归修改:本身目录权限改变的同时,改变其所有子目录的权限
功能描述:改变文件或目录权限
权限表示方式:
三组九位字母表示法
例如文件权限表示1: d rwx r-x r— 文件类型 文件属组 同组用户 其他用户
三组九位二进制表示法
例如文件权限表示2: rwx r-x r— 111 101 100
三组八进制表示法
例如文件权限表示2: rwx r-x r— 7 5 4
- 命令名称:chown
命令英文原意: change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
语法: chown [用户][文件或目录]
功能描述:改变文件或目录的所有者
范例: $ chown shenchao fengjie #改变文件fengjie的所有者为shenchao
- 命令名称: umask
命令英文原意: the user file-creation mask
命令所在路径: Shell内置命令
执行权限:所有用户
语法: umask [-S]
-S 以rwx形式 显示新建文件缺省权限
功能描述:显示、设置文件的缺省权限
范例: $ umask -S
文件搜索命令
推荐一个文件秒搜程序Linux-everything
- 命令名称: find
命令所在路径: /bin/find
执行权限:所有用户
语法: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 询问确认。
注意在Linux中,文件大小一般用数据块来表示:1数据块=512字节=0.5K;单位换算:100MB- 102400KB- 204800.
$find /tmp -size +2MB |wc -l
7
$find / -name *.conf -a -atime -5 |grep mysql
/etc/ld.so.conf.d/mysql -x86_64.conf
/usr/lib/tmpfiles.d/mysql.conf
- 文件信息检索命令grep
grep [选项] 字符串[文件...]
功能:查找所在文件内容的所在行
-n 标出行号
-I ❗注意大写 忽略字符大小写;
-v 过滤检索;
$ grep root /etc/passwod
$ cat /etc/passwd |grep root
$ cat /etc/logrotste.conf |grep -v ^ $ |grep -v ^ # #带参数的过滤再查看系统配置文件中经常用到,查看某一配置文件时过滤空格和注释❗`^`表示行首,以#开头的行去掉
- 文件查找:locate
命令所在路径: usr/bin/locate
执行权限:所有用户
语法:locate 文件名
功能描述:在文件资料库中查找文件(比find快和迅速)
范例:$ locate inittab
$ locate locate
/var/lib/mlocate/mlocate.db
$ updatedb #升级文件资料库,实时更新方便查找
- 精准查找命令:which
语法:which
所在路径: /usr/bin/which
执行权限:所有用户
功能描述:搜索命令所在路径及别名信息(比find快)
$ which ls
$ which rm
alias rm='rm -i' #显示别名
/bin/rm #显示别名
拓展相似命令:whereis
功能:搜索命令所在目录,以及帮助文档路径
语法:whereis [命令名称]
范例:$ whereis useradd
- 文件排序命令sort
-r 对文件按每行第一个字符反向排序
-o 将结果输出到新的文件
$ sort [选项] [文件列表]
$ ls -l |sort -n -r -k 5 #利用管道线方式实现
帮助命令
- 命令:man
英文原意:manual
所在路径:/usr/bin/man
语法:man [命令或配置文件]🐯不能加绝对路径
功能:获得帮助信息
范例:$ man ls
一般观察配置文件格式:一句话描述配置文件作用,不同部分对应不同格式。
❗有可能一个命令对应多个配置文件:
如果只想查看其配置文件:man 5 passwd
简短信息查询:
如果只想读取命令功能:whatis [命令]
如果想读取配置文件相关介绍:apropos [配置文件名称]
查询选项: —help
同类型命令:info(看个人习惯筛选使用)
- 帮助命令:help
功能:查询shell内置命令
语法:help [shell内置命令]
注意如果which/man 不能查到命令所在路径,那么该命令可能就是shell内置命令
man[命令or配置文件命令 ]因注意查看内容:NAME 作用 /选项 配置文件 NAME存放信息 文件格式
其他命令:whatis[命令] apropos[配置文件]
用户管理命令
- 命令名称: useradd
命令所在路径: /usr/sbin/useradd
执行权限:root
语法: useradd用户名
功能描述:添加新用户
范例: $ useradd yangmi
注意root 可以更改任何人的密码
passwd 用户只能更改个人密码
- 命令名称:passwd
命令所在路径: /usr/bin/passwd
执行权限:所有用户
语法: passwd用户名
功能描述:设置用户密码
范例: $ passwd yangmi
- 命令名称: who
命令所在路径: /usr/bin/who
执行权限:所有用户
语法: who
功能描述:查看登录用户信息
范例: $ who
拓展类似命令:w
功能:查看登录用户所作操作的详细信息
压缩解压命令
- 压缩文件的优势:
- 便于文件的收发备份
- 占用内存空间相对较少
- 有效防止病毒入侵破坏
- 各种压缩格式:.gz .zip .rar
- 命令:gzip
功能:压缩zip文件
语法:gzip [文件名]
解压命令:gunzip
语法:gunzip [文件名.gz]
注意gzip 只能压缩文件,不能压缩目录
- 命令名称: tar
命令所在路径: /bin/tar
执行权限:所有用户
语法:tar 选项[-zcf] [压缩后文件名][目录]
-c打包
-v显示详细信息
-f指定文件名
-z打包同时压缩
功能描述:打包目录
压缩后文件格式: .tar.gz
- tar命令解压缩语法:
-x解包
-v显示详细信息
-f指定解压文件
-z解压缩
范例: $ tar -zxvf Japan. tar.gz
- 命令名称: zip
命令所在路径: /usr/bin/zip
执行权限:所有用户
语法:zip选项[-r] [压缩后文件名] [文件或目录]
-r压缩目录
功能描述:压缩文件或目录
压缩后文件格式: .zip .
- 命令名称: unzip
命令所在路径: /usr/bin/unzip
执行权限:所有用户
语法: unzip [压缩文件]
功能描述:解压.zip的压缩文件
范例: $ unzip test.zip
- 命令名称: bzip2 (gzip升级版)
命令所在路径: /usr/bin/bzip2
执行权限:所有用户
语法:bzip2 选项[k] [文件]
-k 产生压缩文件后保留原文件👍
功能描述:压缩文件
压缩后文件格式: bz2
范例:$ bzip2 -k boduo
$ tar -cjf Japan. tar. bz2 Japan
- 命令:bunzip2
功能描述:解压缩
范例: $ bunzip2 -k boduo.bz2
$ tar -xjf Japan.tar.bz2
网络命令
- 指令名称: write
指令所在路径: /usr/bin/write
执行权限:所有用户
语法: write <用户名>
功能描述:给用户发信息,以CtrI+D保存结束
范例:# write linzhiling
拓展 ctrl +退格键:修改错误输入
- 指令名称: wall (即时沟通工具)
命令英文原意: write all
指令所在路径: /usr/bin/wall
执行权限:所有用户
语法: wall [message]
功能描述: 发广播信息
范例:# wall ShenChao is a honest man!
- 命令名称: ping
命令所在路径: /bin/ping
执行权限:所有用户
语法:ping 选项IP地址
-c 指定发送次数
功能描述:测试网络连通性
范例:# ping 192.168.1.156
- 命令名称:(ifconfig
命令英文原意: interface configure
命令所在路径: /sbin/ifconfig
执行权限: root
语法:ifconfig 网卡名称IP地址
功能描述:查看和设置网卡信息
范例: # ifconfig eth0 192. 168.8.250
- 命令名称: mail
命令所在路径: /bin/mail
执行权限:所有用户
语法:mail [用户名]
功能描述:查看发送电子邮件
范例: # mail root
- 命令名称: last (及时查询命令)
命令所在路径: /usr/bin/last
执行权限:所有用户
语法:last
功能描述:列出目前与过去登入系统的用户信息
范例: # last
- 命令名称: lastlog
命令所在路径: /usr/bin/lastlog
执行权限:所有用户
语法: lastlog
功能描述:检查某特定用户上次登录的时间
范例:# lastlog
# lastlog -u 502
- 命令名称:
traceroute
命令所在路径: /bin/traceroute
执行权限:所有用户
语法:traceroute
功能描述:显示数据包到主机间的路径
范例:# traceroute www.lampbrother.net
- 命令名称: netstat
命令所在路径: /bin/netstat
执行权限:所有用户
语法:netstat [选项]
功能描述:显示网络相关信息
- 选项:
-t: TCP协议
-u: UDP协议
-l: 监听
-r: 路由
-n: 显示IP地址和端口号
范例:# netstat -tlun
查看本机监听的端口# netstat -an
查看本机所有的网络连接# netstat -rn
查看本机路由表.
- 命令名称: setup (方便简单,且永久生效,但是不是所有的Linux都有这个命令)
命令所在路径: /usr/bin/setup
执行权限: root
语法: setup
功能描述:配置网络
范例: # setup
- 挂载命令:mount
命令位置: /bin/mount
执行权限:所有用户
命令语法: mount[-t 文件系统]设备文件名挂载点
范例: # mount -t iso9660 /dev/sr0 /mnt/cdrom
系统默认文件名
将设备文件名连接到挂载点上
挂载和卸载演示:
关机重启命令
- shutdown命令
[root@localhost ~ ]# shutdown [选项]时间
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启
- 运行级别:
➢0关机
➢1单用户
➢2不完全多用户,不含NFS服务
➢3完全多用户
➢4未分配
➢5图形界面
➢6重启