Liunx操作系统
1.什么是操作系统
大家正在玩的 Windows 和 Max OS就是两个操作系统。操作系统是用户和计算机的接口,同时也是计算机硬件和应用程序的接口,也就是说我们和计算机打交道以及计算机底层硬件和应用程序打交道都是通过操作系统。
2.liunx由来与简介
1991 年 10 月,Linus Torvalds(Linux 之父)在赫尔辛基大学接触 UNIX,可是 UNIX 的商业版本非常昂贵,于是他从 MINIX 开始入手,但 MINIX 功能单调,于是决定自己编写软件。他第一次发行的版本,尽管 Linux 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性。每当出现新问题时,有人会立刻找到解决办法,很快Linux成为了一个操作系统。
Linux的发行版本,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。商业版本以Redhat为代表,开源社区版本则以debian为代表。下面是三个典型的发行版:
CentOS是从redhat源代码编译重新发布版。CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。(实用新手)
Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于CentOS和Debian,兼容性强,Ubuntu应用非常多。(有图形化界面,内存开销大)
Debian也非常适合做服务器操作系统,底层非常稳定,内核和内存的占用都非常小。(资源占用小稳定)
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。
系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等。对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
3.Liunx指令
1.目录处理指令(ls -> 指令所在路径/bin/ls)
2.创建目录指令(mkdir -> 指令所在路径/bin/mkdir) -p 递归创建
3.切换目录指令(cd -> 指令所在路径shell 内置命令)
4.显示当前目录(pwd -> 指令所在路径/bin/pwd)
5.删除空目录 (rmdir -> 指令所在路径/bin/rmdir)
6.复制文件/目录(cp -> 指令所在路径/bin/cp) -r :复制目录 -p :保留文件属性
7.剪切文件/目录(mv -> 指令所在路径/bin/mv)
8.删除文件/目录(rm -> 指令所在路径/bin/rm) -r :删除目录 -f :强制执行
9.创建文件 (touch -> 指令所在路径/bin/touch)
10.显示文件内容(cat -> 指令所在路径/bin/cat) -n :显示文件行号
反向显示文件内容(tac-> 指令所在路径/bin/tac )
分页显示文件内容(more-> 指令所在路径/bin/more) 空格/f :翻页 Enter:换行 q / Q:退出
分页显示文件内容(less-> 指令所在路径/bin/less) 空格/f/PgDn: 向后翻页 PgUp:向前翻页 ⬆:行往前显示 q / Q: 退出 /(搜索的字符)+enter:搜索
显示指定行号文件内容(head->指令所在路径/bin/head)-n:指定显示的行数(不加 -n 默认显示前 10 行数据)
11.创建链接文件 (ln -> 指令所在路径/bin/link) -s :创建软链接(不加 -s 创建硬链接)
12.更改文件/目录权限(chmod -> 指令所在路径/bin/chmod)-R:递归修改
更改文件/目录权限的所有者(chown->指令所在路径/bin/chown)
更改文件/目录所属组(chgrp->指令所在路径/bin/chown)
显示文件/目录缺省权限(umask->指令所在路径shell 内置命令) -S:以rwx形式显示文件的缺省权限(否则已数字显示)
13.根据 文件/目录 名搜索 (find ->指令所在路径/bin/find) -name(区分大小写) -iname(不去分大小写)
find【搜索范围】【匹配条件】
根据 文件大小 搜索 -size
根据 所有者和所属组 搜索 -group:(所属组) -user:(所有者)
根据 时间属性 搜索 -amin:访问时间 -cmin:文件属性被更改 -mmin:文件内容被更改
根据 文件类型和i节点 搜索 -type 根据文件类型查找:f表示文件,d表示目录,l表示软链接 -inum 根据i节点查找
14.在文件资料库中查找文件 (locate ->指令所在路径/usr/bin/locate) -i 不区分大小写 locate【文件名】
updatedb 手动更新资料库,但是对于/tmp目录下的文件,是更新不到文件资料库的,因为/tmp目录不属于文件资料库的收录范围
15.搜索命令所在的目录及别名信息(which->指令所在路径/usr/bin/which) which 【指定指令】
搜索命令所在目录及帮助文档路径(whereis->指令所在路径/usr/bin/whereis) whereis 【指定指令】
16.在文件中搜索匹配行并输出(grep -> 命令所在路径:/bin/grep) -i 不区分大小写 -v 排除指定字符串
grep -iv 【指定字符串】【文件】
17.获得命令或配置文件帮助信息(man->命令所在路径:/usr/bin/man) man【命令或配置文件】
可以 man 5 passwd,因为5表示配置文件信息,1表示命令帮助信息。
获得shell内置命令的帮助信息(help->命令所在路径:shell 内置命令) help【shell内置命令】
获得命令的中文帮助信息(--help) 命令 --help
18.添加新用户 (useradd->命令所在路径:/usr/sbin/useradd) useradd【用户名】
设置密码 (password->命令所在路径:/usr/bin/passwd) passwd【用户名】
查看用户的简单信息(who->命令所在路径:/usr/bin/who) who
查看登录用户详细信息(w->命令所在路径:/usr/bin/w) w
19.压缩文件为.gz(gzip->命令所在路径:/bin/gzip) gzip【需要压缩的文件】
解压.gz (gunzip->命令所在路径:/bin/gunzip) gunzip【压缩文件名】
压缩文件/目录为.tar.gz(tar->命令所在路径:/bin/tar) tar 【-zvcf】【压缩后文件名】【目录】
-c 打包 -v 显示详细信息 -f 指定文件名 -z 打包同时压缩/解压缩 -x 解包
解压.tar.gz (tar->命令所在路径:/bin/tar) tar 【-zvxf】【压缩文件名】【解压后目录】
压缩文件/目录为.zip(zip->命令所在路径:/usr/bin/zip) zip 【-r】【压缩后文件名】【文件或目录】
解压.zip (unzip->命令所在路径:/usr/bin/unzip) uzip【压缩文件名】
压缩文件为.bz2(bzip1->命令所在路径:/usr/bin/bzip2) bzip2 【-k】(保留原文件) 【文件】
解压.bz2 (bunzip2->命令所在路径:/usr/bin/bunzip2) bunzip2 【-k】 【压缩文件】
20.给指定用户发送信息(write->命令所在路径:/usr/bin/write) 以Ctrl+D 保存结束 write【用户名】
给所有用户发送广播消息(wall->命令所在路径:/usr/bin/wall) wall【信息内容】
测试网络连通性 (ping->命令所在路径:/bin/ping) -c n是指定发送次数(不指定,一直发送)
ping 【-c n】【IP地址】
查看和设置网卡信息(ifconfig命令所在路径:/sbin/ifconfig) ifconfig 【网卡名称】【IP地址】
查看发送电子邮件 (mail->命令所在路径:/bin/mail) mail【用户名】
列出所有登录系统的用户信息(last->命令所在路径:/usr/bin/last) last
显示数据包到主机之间的路径(traceroute命令所在路径:/usr/bin/traceroute) traceroute 【IP地址】
显示网络相关信息 (netstat->命令所在路径:/bin/netstat) netstat【选项】
-t:TCP协议 -u:UDP协议 -l:监听 -r:路由 -n:显示IP地址和端口号
配置网络 (setup->命令所在路径:/usr/bin/setup) setup
关机/重启 (shutdown->命令所在路径:/sbin/shutdown) -c:取消前一个关机命令 -h:关机 -r:重启
shutdown 【选项】 【时间】
其他关机命令 halt poweroff init0
其他重启命令 reboot init6
退出登录命令 logout
4. vim文本编辑器
1.插入命令
a:光标所在字符后插入 A:光标所在行后插入 i:光标所在字符前插入 I:光标所在行前插入 o:光标所在行下行插入 O:光标所在行上行插入
2.定位命令
:set nu:设置行号 :set nonu:取消行号 gg:到第一行 G:到最后一行 nG:到第n行 :n:到第n行
$:移至行尾 0:移至行首
3.删除命令
x:删除光标所在的字符 nx:删除光标所在字符出后n个字符 dd:删除光标所在行 dG:删除光标所在行到末尾
D:删除光标所在行到行尾 :n1,n2d:删除指定范围的行
4.复制和剪切命令
yy:复制当前行 nyy:复制当前行下n行 dd:剪切当前行 ndd:剪切当前行下n行 p、P:粘贴在光标所在行下或行上
5.替换和取消命令
r:取代光标所在处字符 R:从光标所在出取代字符,知道ESC结束 u:取下上一步操作
6.搜索和搜索替换命令
/string:搜索指定字符串(:set ic:搜索忽略大小写) n:搜索字符串下一个出现位置 :%s/old/new/g:全文替换指定字符串
:n1,n2s/old/new/g:在一定范围内替换指定字符串
7.保存和退出
:w:保存修改 :w new_filename:另存为 :wq:保存并退出 ZZ:保存并退出
:q!:不保存但退出 :wq!:保存并退出(root/文件所有者)
5.软件包管理rpm
rpm包安装: -i:安装 -v:娴显示详细信息 -h:显示进度 --nodeps:不检查依赖性 rpm -ivh 包全名
rpm包升级: -U:升级 rpm -Uvh 包全名
rpm包卸载: -e:卸载 rpm -e 包名
rpm包查询: -q:查询 -a:所有 rpm -q 包名
rpm包详细信息:-i:查询软件信息 -p:查询未安装包信息 rpm -qi 包名
rpm包安装位置:-l:列表 rpm -ql 包名
系统文件属于那个rpm包: -f:查询系统文件属于那个软件包 rpm -qf 系统文件名
rpm包依赖性: -R:检查软件包的依赖性 rpm -qR 包名
rpm软件安装目录
/etc/:配置文件安装目录
/usr/bin/:可执行命令安装目录
/usr/lib/:程序所需函数库安装位置
/usr/share/doc/:软件基本使用手册保存位置
/usr/share/man/:帮助文件保存位置
/etc/rc.d/init.d/: 所有rpm包安装的服务执行文件存放目录(可以通过service 软件名 start 启动管理)
源码包安装位置
/usr/local/软件名/
源码包安装:
准备编译工具:yum install -y gcc
下载源码包:wget http://nginx.org/download/nginx-1.11.2.tar.gz
解压源码包:tar -zvxf nginx-1.11.2.tar.gz (INSTALL:安装说明 README:使用说明)
定义好的功能选项和检测系统环境的信息都写入Makefile 文件:./configure --prefix=/usr/local/nginx
编译,生成Makefile文件:make
安装:make install
启动:/usr/local/nginx/nginx start
卸载:rm -rf /usr/local/nginx/
制作脚本安装源码包
在同目录下创建文件:touch setup.sh
修改内容:vim setup.sh --> ./configure --prefix=/usr/local/nginx
make
make install
/usr/local/nginx/nginx start
将文件改为可执行文件:chmod 777 setup.sh
执行脚本:./setup.sh
6.yum在线管理
查看可用包列表:yum list
查询相关关键字软件包:yum search 关键词
安装软件包:yum -y install 包名 -y 表示自动回答 yes
软件包升级:yum -y update 包名
卸载软件包:yum -y remove 包名
列出可用软件包组:yum grouplist
安装指定软件包组:yum groupinstall 包组名
卸载指定软件包组:yun groupremove 包组名
6.ACL权限
在Linux系统中,我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配。
1.查看当前系统有那些分区: df -h
2.查看指定分区详细信息: dumpe2fs -h 【分区文件系统】
3.临时开启分区ACL权限: mount -o remount,acl 【文件系统挂载点】
永久开启分区ACL权限: 修改配置文件 /etc/fstab --> UUID=490ed737-f8cf-46a6-ac4b-b7735b79fc63 / ext4 defaults,acl
(注释:需要在defaults后面加,acl)
重新加载加载系统文件:mount -o remount /
---------------------------------------------------------------------------------------------------------------未完---------------------------------------------------------------------------------------------------------------------------