文章目录
1、UNIX和Linux发展史
UNIX是爸爸
Linux儿子(由unix发展而来)
tcp/ip协议也是应运而生的!
linux是天生的网络操作系统
2、Linux的版本
内核版本:https://www.kernel.org/ 定期更新
- 内核版本下载来,自己加工以后就成了发行版本
发行版本:redhat,centos,ubuntu,红旗Linux…等等
- 这些发行版本的内核都是一样的
3、开源的软件简介
Apache是一个基金会,里面有很多开源的项目
开源不代表免费(仅仅是开放源代码),但开源软件绝大多数都是免费的,可自由传播,改良,甚至销售
开源带来的好处:产品越来越优秀,越来越安全(因为,有更多的人参与进来。)
4、Linux的应用领域
1、各种网站的后台操作系统:
比如:https://searchdns.netcraft.com
这个网站可以查看,某个网站使用的系统
2、嵌入式应用
智能家电,航空系统,智能卡,手机,相机…等等
5、Linux注意事项
- Linux的命令严格区分大小写(Linux中的所有字母都是区分大小写的)
- Linux的所有东西都是文件;包括硬件
- 硬盘文件:/dev/sd[a-p]
- 光盘文件:/dev/sr0等
- Linux文件都是“没有”后缀名的,是靠 文件权限来区分的
- 但是有一些压缩包文件(tgz,tar,bz2,gz…),脚本文件(sh),配置文件(conf),网页文件(html,css,php,java),这些所谓的扩展名,都仅仅是为了方便管理员来管理文件,没有扩展名照样使用。
- Linux的所有存储设备都得挂载(分配盘符)以后用户才能使用,比如,硬盘,光盘,U盘
- windows下的程序不能直接在Linux中安装运行的
6、Linux服务器端的维护
各个目录的功能(大部分都是一种规范约定)
目录名 | 目录作用 |
---|---|
/bin | 存放系统命令的目录,普通用户和超级用户都可以执行,不过放在/bin下的命令在单用户模式下也可以执行 |
/sibn | 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令镜像系统环境的设置,但有些命令可以允许普通用户查看 |
/uer/bin/ | 存放系统命令的目录,普通用户和超级用户都可以执行,这些命令和系统启动无关,在单用户模式下不能执行 |
/usr/sbin/ | 存放根文件系统不必要的系统管理命令,例如多数服务程序,只有超级用户可以使用,其实,在Linux中,在sbin目录中的命令只有超级用户能用,bin下的所有用户都可以用 |
/boot/ | 系统启动目录,保存系统启动相关的文件,如内核文件和启动引导程序文件(grub)等 |
/dev/ | 设备文件保存位置,一些硬件文件,硬盘等等 |
/etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm安装)的服务的配置文件全部在这个目录保存,如:用户账号密码,服务启动脚本,一些服务的配置文件 |
/home/ | 普通用户的家目录,每个用户都要有一个默认登录位置,这个位置就是该用户的家目录,所有普通用户的家目录就是在/home下建立一个和用户名相同的目录,如:用户user的家目录:/home/user |
/lib/ | 系统调用的函数库保存位置 |
/lost+found/ | 当系统意外崩溃或者机器意外关机,而产生的一些文件碎片放在这里,当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统,这个目录只在每个分区中出现,例如 /lost+found/就是根分区的备份恢复目录,/boot/lost+found/ 就是/boot分区的备份恢复目录 |
/media/ | 挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘 |
/mnt/ | 挂载目录,早起Linux中只有这一个挂载目录,并没有细分,现在这个目录系统建议挂载额外设备,例如,u盘,移动硬盘和其他系统的分区 |
/misc/ | 挂载目录,系统建议用来挂载NFS服务的共享目录 |
/opt/ | 第三方安装的软件保存位置,这个目录就是防止和安装其他软件的位置,比如 jdk,tomcat…,但也不强迫,有的人喜欢放到usr下也是可以的 |
proc | 虚拟文件系统,该目录中的数据并不保存到硬盘中,而是保存在内存中,主要保存系统的内核,进程,外部设备状态和网络装填灯 |
/sys/ | 虚拟文件系统,和/proc目录相似,保存在内存中,保存内核相关信息 |
/root/ | 超级用户的家目录,即 / |
/srv/ | 服务数据目录,一些系统服务启动之后,可以在这个目录中保存所需要的的数据 |
/tmp/ | 临时目录,系统存放临时文件的目录,该目录下所有用户都可以访问和写入,我们建议此目录中不能重要数据,每次开机最好清空此目录 |
/usr/ | 系统软件资源目录,注意usr不是user的缩写,而是“Unix Software Resource”的缩写,所以不是存放用户数据,而是存放系统软件资源的目录,系统中安装的软件大多保存这里 |
/var/ | 动态数据保存位置,主要保存缓存和日志以及软件运行所产生的的文件 |
proc和sys是存放在内存中的两个目录,重启会消失。不要往里面写东西,东西一来不会保存,而且当你写满以后就会系统就会出错
usr,系统软件资源目录(system,software,resource)类似于windows的windows目录
注意事项:
1、远程服务器不允许关机,只能重启
2、重启服务应该关闭运行着的服务!!
3、不要在服务器访问高峰运行高负载命令:高负载命令:进行大数据的操作,压缩,扫描复制等等
4、远程配置防火墙的时候记得对自己开放,防火墙甄别是通过:ip地址,端口号,net地址,包数据
5、数据和日志的定时备份,权限的合理分配(最小分配,够用就行),密码的强壮性和定时更新,系统启动的服务越少越好
7、Linux命令
命令的基本格式:
命令 -选项 参数
比如:ls -la /etc
简化选项和完整选项:-a --a
,单杠和双杠
个别命令可能不遵循此格式
文件处理
每一个文件都有一个i节点号,每个进程都有一个进程号,每个用户都有一个标识号码
`ls` ls ->(类比于) list ,查看当前目录的所有文件
`ls -a` 所有文件 -> list -all,包括隐藏文件
`ls -l` l -> long 文件的完整信息
`ls -ld` 查看某个目录的详细信息,比如 ls -ld /etc
`ls -h` 人性化的显示数据,比如文件大小,不加h显示的是字节数
`ls -i` 查看文件的inode号(inode存储文件的详细信息),即i节点
完整信息7个部分,分别是:文件类型和权限,文件基数,文件所属者,文件所属组,文件大小,文件最后更新时间,文件名
`mkdir` 创建目录
`mkdir -p` 递归创建目录,即同时创建多个目录
`cd` 切换目录
`pwd` 显示当前目录
`.` 当前目录
`..` 上级目录
`rmdir` [目录名] 删除空目录
`cp 文件目录或文件` (-p保留的文件属性,比如时间等等)
`touch [文件名]` 创建文件,文件名可以含有空格(加双引号),但尽量不要这样做。
`cat [文件]` 查看文件内容
`cat -n [文件]` 显示行号
`tac [文件]` 倒叙查看
`more [文件]` 来查看很多内容的文件这时进入查看文件的状态,
空格或者f来翻页,回车一行行的浏览找到以后,使用q退出浏览状态
`less [文件]` less不仅含有more的所有功能,而且可以使用↑来向上翻行,
pageUp向上翻页,在浏览状态下输入 /log ,
这样他就会在这个文件中搜索log,并且高亮显示。(即可搜索关键字)
`head -n [文件]` 查看文件的前n行内容(n为数字)
`tail -n [文件]` 查看文件的末尾n行内容(n为数字)
`tail -f [文件]` 动态显示文件最后一行的内容,常用来查看日志动态的变化
`ln -s [软链接名]` ln -s /tmp/sjt 在tmp目录下创建sjt软链接(软链接即快捷方式),
软链接的权限都是rwx rwx rwx,不加 -s 生成的是硬链接,
硬链接不可以跨分区,不允许生成指向目录的快捷方式
权限管理
只有所有者和管理员才能更改权限
{ugoa}
u:所属者,g:所属组,o:其他人,a:所有人
{±=}
+:增加权限,-:减少权限,=:重新授予权限(不管原来是什么,现在就是我授予的权限)
{rwx}
r:可读权限(4) ,w:可写权限(2) ,x:可执行权限(1)
最前面的一个字符含义:
- l是链接(link)
- d是目录(directories)
- c是字符设备文件(char)
- b是块设备(block)
- -是文件
可以同时对几个用户来分配权限,用逗号隔开即可
只有管理员才能改变文件或者目录的所有者
`chown [用户] [文件或者目录]` 更改所属者
`chgrp [用户组] [文件或者目录]` 更改所属组
文件搜索
find [搜索范围] [匹配条件]
`find / -name init` 在根目录下按照文件名来搜索名叫init的文件
`find / -iname init` -iname,不区分大小写查询,* 可以模糊匹配,?可以匹配单个字母
在/etc目录下搜索
#按文件大小来查找
`find / -size +204800` 在根目录下查找文件大于100M的文件
`find / -size -204800` 在根目录下查找文件小于100M的文件
在linux中,文件的大小要换算成“数据块”
一个数据块 512字节 0.5k
即 1k=2个数据块
100M=102400K=204800个数据块
`find / -user [username]` 根据所有者查找
`find / -group [groupname]` 根据所属组查找
超过5分钟的可以用+
多条件查询:
根据文件类型查找:
find找到的结果,可以再追加命令-exec
或者-ok
,在追加你想要的命令,这样就可以把你find出来的东西,执行你的命令,-exec
是立刻执行,-ok
是一一确认。
`locate [文件名]` 查找系统文件,但要注意一些临时目录是查不着的,要定期维护更新数据,
`updatedb` 更新数据表
`which [命令]` 查看命令所在的目录
帮助命令
man
和 info
是大同小异的
`man ls` 使用命令man查看 ls 命令的解释
`whatis [命令]`
`whereis [命令]`
`apropos [配置文件]` 查看配置文件的帮助信息,(不写配置文件的绝对路径)
进入以后有些ls的信息,按q
退出
Linux中数字1代表命令的帮助,5代表配置文件的帮助,两者都有的话优先显示命令的帮助,你也可以man 5 passwd
`[命令] --help` 查看该命令的一些选项
`help umask` 查看一些内置命令的帮助
什么是内置命令,你使用which
和whatis
的时候,显示不出来帮助的一些信息
用户管理
`useradd [用户名]` 这一步其实只是创建了一些文件,想要登录系统,还需要设置密码
`passwd [用户名]` 这里就设置了密码,即用户可登录你的系统。
`who` 查看登录的用户
用户,登录终端(tty表示本机,pts表示虚拟终端),时间(系统ip地址)
w
命令
压缩解压
Linux中的压缩格式,.gz
.zip
文件格式,Linux和windows中都可以识别
`gzip [文件名]` 压缩该文件,注意,gzip只能压缩文件,不能压缩目录
`gunzip [压缩的文件]` 解压该文件
`gzip -d [压缩的文件]` 解压该文件
`tar [参数] [目录]` 打包(压缩)目录,比如 `tar -zcf [目录]`
`tar -xf [目录]` 解包(解压缩)目录,和上面的压缩,只有 `-c`和`-x`(解包)的区别
tar
命令的可选参数
`zip sjt.zip sjt` 压缩文件sjt
`zip -r sjtD.zip sjtD` 压缩目录sjtD
`unzip [文件或者目录]` 解压缩
bzip2的压缩度很高,一般用来压缩大文件,bunzip2
解压缩
总结如下:
网络命令
`w` 查看当前在线用户 ,who也可以
`write [用户名]` 给该在线用户发送一条消息,写错了,`ctrl+backspace`来删除,直接删除,删除不掉。写完以后`Ctrl+D`来保存发送。
`wall [内容]` 广播一些东西,所有在线用户都可以收到
`ping [ip地址]` 查看地址是否通畅
`ping -c 4 [ip地址]` ping4次目标地址
`ifconf` 查看当前计算机的网卡信息
`mail [用户名]` 发送邮件给用户,在线与否都可以
`mail` 接收查看当前的邮件,然后直接输入邮件的序列号,就可以查看该邮件,h查看邮件列表,`d [序列号]` 删除邮件,`q` 退出
`last` 查看所有用户的登录情况,包括多次登录的用户,只要来过就会记录
`lastlog` 查看所有用户的最后一次登录情况
`lastlog -u [用户的id]` 查看指定用户最后一次登录的信息
`traceroute [ip地址或者域名]` 显示数据包到主机间的路径
`netstat -anop` 查看监听的地址及其端口和状态
netstat
命令的选项和常用示例
mount
命令来挂载光盘
关机重启
关机之前需要注意,停止机器上的服务
`shutdown [选项] [时间]` 选项 -c,-r,-h
`shutdown -r now` 立即重启
`shutdown -r 20:30` 晚上八点半重启
`shutdown -h now` 立即关机
`shutdown -h 20:30` 晚上八点半关机
`shutdown -c` 取消上一个关机命令
`logout` 退出登录
还有一些其他的关机重启操作,但是shutdown
更加安全
8、vim
vim是功能强大的全屏幕文本编辑器,它的作用是建立,编辑,显示查看文本文件
vim没有菜单,只有命令
定位命令和删除命令是在编辑模式进行的
命令模式下
常见命令总结:
vim的使用技巧
编辑模式下:
:r [文件的绝对路径] 可以将该文件的内容导入到光标处
:r ![命令] 可以将命令的执行结果写入到本文件的光标处
k 向上(↑)移动光标
j 向下(↓)移动光标
h 向左(←)移动光标
l 向右(→)移动光标
9、软件包管理
简介
软件包分类:
- 源码包(脚本安装包)
- 优点:开源,可自由选择所需的功能;软件是编译安装,所以更适合自己的系统,更加稳定效率也更高;卸载方便(直接删除安装目录即可)
- 缺点:安装步骤较多,尤其安装大型软件时,它还依赖了其他的环境;编译时间过长;编译安装出错,对新手很不友好
- 二进制包(rpm包,系统默认包),二进制包是目前使用最多的,二进制包是经过编译的。即机器可以识别的代码包(即010101…),这样做的优点是安装快,缺点是无法看到源代码,功能选择不灵活,依赖性强
RPM包管理 -rpm命令管理
名字中,硬件or软件平台缺失的话,说明适合任意平台
安装命令:
总之用rpm处理的时候,依赖会很头疼。。。
RPM包管理 -yum在线管理
使用yum
命令来管理rpm包,自动下载依赖的rpm包
这样就会自动下载依赖并且自动确认安装该包
yum -y undate [包名] 升级对应的包名
yum -y update 更新所有的软件包,包括Linux的内核,这样可能会导致系统宕机
yum -y remove [包名] 卸载对应的包名,卸载包的时候,要注意,卸载这个包时,这个包的依赖也都会卸载,其他包(甚至系统)
也可能依赖已经卸载的这个包的依赖包,这样就会导致其他软件不可用或者系统崩溃,
所以用这个命令一定要小心,最好不要使用...
源码包管理
源码包的安装位置一般是:/usr/local/软件名/
service