3.1 Linux操作系统定义
Ø我们为什么要学习这个linux系统呢?
那是因为我们很多的服务都放在这个linux系统,那为什么很多服务都要放到这个linux系统?这是因为linux系统好,它系统稳定,执行效率也高,而且它开源,开源的话就可以更容易去明白他的工作机制,不像windows这种他是不开源的,你甚至一些bug都不知道怎么去看他的一些源代码,怎么去找错误,所以说呢使用的公司和人都会比较多,就是常把它当做服务器
ØLinux操作系统是一个免费、开源、基于POSIX和Unix的多用户、多任务、支持多线路和多CPU的操作系统。
★免费:不收费、免费使用。
★开源:可以理解为开发“源代码”的意思,任何人使用软件的同时都可以去查看软件的源代码,或者根据自己的需求去修改它。
★Posix:可移植操作系统接口,标准定义了操作系统应该为应用程序提供的接口标准。
★Unix:早期的操作系统,操作系统的老大哥,后来的Windows系统和Linux系统都参考了Unix。
★多用户多任务:多用户多任务就是在系统建立多个用户,多个用户可以在同一时间内登录同一个系统执行各自不同的任务。
★线程:线程是CPU调度和分配的基本单位。
3.2 Linux主流发行版本
1、Ubuntu:
★优点:最受欢迎的桌面Linux发行版。固定的发布周期,丰富的说明文档。
★缺点:与Debian存在一定的兼容问题
2、red hat(收费):高性能的云、虚拟化、存储、Linux和中间件技术
3、Centos:免费、是用户选择较多的对象、较为安全是因为centos充分利用了SELinux(一种基于域-类型模型的强制访问控制安全系统)框架用于安全加强层。
★优点:非常稳定和可靠
稳定:CentOS 的更新频率较低,版本较为稳定,Ubuntu的话是经常更新,版本稳定性较低
安全:CentOS 充分利用 SELinux 框架用于加强的安全层,而目前在 Ubuntu 中则不可用或者说是不容易使用
所以说服务器的首选还得是CentOS服务器的首选,免费下载和使用
★缺点:内核版本比较旧
在众多版本中CentOS和 Ubuntu应该是最有名的两个,外面公司来选做服务器系统的话 也都会从这两个当中二选一。但作为服务器来说首选的话还是CentOs,虽然Ubuntu桌面做的好,很华丽,但是对于服务器操作系统来说,一般都是远程操作,所以Ubuntu的桌面优点在做云端服务器上就无法显现了,因为一般都是命令行远程操作。
3.3 Linux常用目录
★home目录:普通用户家目录
★root目录:管理员家目录
★/local目录:用户自行安装的文件存放路径
1、目录的话我们可以用windows系统来做个类比,好,我们看到我的电脑,他是不是有很多的驱动器盘符组成的 有C盘 D盘 盘里面有文件夹或者文件,文件夹里面又有文件夹或者文件 它就是这样构成的
2、但linux呢 它没有盘符这个概念,他只有一个根目录,用/表示 连字母都没有就一个/ ,所有文件都在这个根目录下面(根目录:"/")就没有像windows分多个驱动盘符,它所有文件都是从这个/ 下面引伸出来的
★etc目录:
3.4 Linux常用指令
★1>用户切换命令:su 如:[nasa@localhost Desktop]$ 使用nasa账号登录位置在本地的桌面
$:普通用户 #:管理员用户 clear:清屏命令
注:在输入文件或目录、命令的前几个字母后,按Tab键如果存在会自动补全名称。
★2>查看文件信息:ls 查看文件详细信息:ls -l或ll
加上参数-h带单位显示:ls -h -l
-a参数 显示指定目录下所有的子目录和文件,包括隐藏文件。 以˙开头的为隐藏文件
drwxr-xr-x. 3 root root 4096 Jul 1 03:25 opt
-rw-r--r--. 1 root root 0 Jul 1 07:41 doc
硬链接数 目录用户 用户所在的用户组 文件大小 修改时间
第一位代表文件类型
d 目录 - 普通文件 l 链接文件
r: 读权限,用数字4表示
w:写权限 ,用数字2表示
x: 执行权限,用数字1表示
后九位三位一组
第一组 创建这个目录用户所有权限(文件所有者)
第二组 创建这个目录的用户所在组的权限(同组用户)
第三组 其他用户对这个文件的权限(其他用户)
★3>ifconfig 查看IP
★4>切换工作目录:cd cd后面是可以接绝对路径的,也可以接相对路径,如果省略目录,则切换到当前用户的主目录。
tab键 联想键上下键 可以查看操作过的命令
cd ~ 切换到当前用户的主目录(home/用户目录)
如果路径从根茎开始,则路径前面要加上 /,如" /home ",通常进入某个目录的文件夹前不用加” / "
如果是进入当前目录下的目录就不用加 /
“~”家目录 " . " 代表的是当前目录 " .. " 代表的是上一级目录
★5>显示当前所在路径:pwd
★6>创建空文件:touch
创建空目录:mkdir(一般进入自己用户目录,避免破坏其它目录上原有的一个目录解构) -p 递归创建目录
删除目录:rm -r 目录名
同时删除目录下多个目录:
rm -rf /duoyoumi/apache-tomcat-7.0.56/webapps/{docs,examples,host-manager,manager,ROOT}
同时删除目录下多个文件:
★7> ◆删除命令:rm 常用的参数
rm 删除文件前进行确认 rm -r 删除目录
rm -rf 强制删除文件/目录 rm -rf * 删除当前目录下所有
◆拷贝:cp 复制一个文件:cp +原文件名称 +新文件名称
复制文件指定保存路径: cp + 文件名 +目标目录
复制一个目录:cp -r +被复制目录+新目录
-v 显示命令执行的详细信息
◆移动、重命名:mv 移动:mv +需移动的文件名 + ./目标目录
重命名:mv+原文件/目录名称+新文件/目录名称
★8> ◆查看命令:cat:查看一个文件的所有内容 cat+文件名
◆管道符 | 一个命令的输出可以通过管道作为一个命令的输入
管道我们可以理解为现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“|”的左右分为两端 ,左边塞东西(写),右边取东西(读)
◆grep命令是一种强大的文本搜索工具,可以使用正则表达式搜索文本,并把匹配的行打印出来。 grep 过滤,匹配,搜索
例1:搜索文件中含有ip的行 cat 文件名|grep “ip”
例2:查看关键字后十行 cat 文件名|grep “关键字” -A 10
例3:查看关键字前十行 cat 文件名|grep “关键字” -B 10
例4:查看关键字前后10行日志,并显示出行号
cat 文件名|grep “关键字” -C 10
★9> ◆less命令 针对内容较多的文件,支持翻页查看
less + 文件名称 sapce键下翻 b键上翻 ctrl+z退出
◆more:针对内容较多的文件,支持翻页查看 more + 文件名
b键上翻 enter键向下翻页
★10>◆head命令:查看文件前的行数
head + 文件名(默认查看前10行)
-n head -n 3 文件名 (查看文件前3)
◆tail命令,查看文件末尾行数tail + 文件名(默认查看后10行)
tail -n 3 文件名(查看文件后3行)tail -f 文件名 查看实时日志
★11>重定向符号 1、> 覆盖 2、>> 追加
ls查出的内容都显示在这个终端上,我们也可以使用重定向符把内容放到一个文件里,方便后续的查看分析
例1:cat hello.txt > kitty.txt (把hello.txt文件的内容覆盖到kitty.txt)
例2:cat hello.txt >> masike.txt (把hello.txt的内容追加到masike.txt)
★12>find命令:通过文件/命令名称查找绝对路径
find / -name 文件名/目录名
例1:find / -name cms 查看根目录下名称为cms的文件/目录
★13>chmod命令:修改文件/目录权限
★14>chown命令:修改文件拥有者
chown+新用户名+文件/目录名称
★15>◆useradd命令:添加用户 useradd+普通用户名称
查看所有用户 cat /etc/passwd
设置密码:passwd+用户名
groupadd命令:添加用户组 groupadd+用户名
查看用户组 cat /etc/group
passwd命令:添加用户密码 passwd +用户名称
查看用户所在用户组 groups+用户名
添加用户指定组 useradd+用户名 -g+组
按上下键,可出现前面已输入指令,免于再次输入
◆Userdel命令:删除用户 userdel -r+用户名
注意:删除用户需要加-r参数(彻底删除),否则还在
cat install.log|head -n 20 查看前20行
cat install.log|head -n 20|tail -n 10查看前20行中的后10行
★16>★tar命令:tar 安装/卸载tar包
打包一个tar包 tar -cvf+xxx.tar+xxx
解压一个tar包 tar -xvf+xxx.tar
参数: -c 打包 -v 显示打包进度
-f指定文件 -x解包
★rpm命令:安装rpm包 rpm -ivh xxx.rpm
参数: -i 安装 -v显示安装进度
★zip命令:打包一个文件/目录
zip xxx.zip xxx 把文件打包成一个zip包
zip -r xxx.zip 把目录打包成一个zip包(需加参数-r)
unzip命令:解压一个zip包 unzip xxx.zip
★yum命令:yum在线下载安装 yum install+应用名
出现以上报错属于镜像源问题,一键替换镜像源:contos 6最新镜像源
一键替换镜像源:
contos 6最新镜像源
1、直接复制粘贴使用:wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
2、重新加载缓存:yum makecache
★17>★scp命令:实现两个不同的Linux服务器之间文件传输
把服务器1(192.168.1.101)home目录下file传输到服务器2(192.168.1.102)home目录下
scp/home/filel root@192.168.1.102:/home输入服务器2的密码
把服务器2(192.168.1.102)中home目录下的file1拿到服务器 1home目录下
scp root@192.168.1.102:/home/file1 /home
★Lrzsz工具:
→rz命令:Windows文件传输至Linux
→sz命令:Linux文件传输至Windows
缺点:rz命令和sz命令只能用来上传拉取0-500MB之间的文件,不能传大文件,传输速度慢。
xshell:连接Linux服务器的一款工具
★18>★df命令:查看磁盘使用情况 参数-h df -h带单位显示
★19>★top命令: 查看动态进程,持续查看CPU使用情况 常用参数 -d top 退出ctrl +z或ctrl+c
top -d+秒 设定间隔时间查看资源使用情况
★20>查看内存:free
常用参数:-b,-k,-m,-g (show output in bytes),KB,MB,or GB
★21>ps命令:查看进程的命令
ps aux:查看所有用户的进程 a表示所有进程 u 表示用户 x 执行
ps -ef|grep+服务名称: 查看某个服务的进程
★22>kill命令:杀进程命令
强制杀进程:kill -9+进程号
★23>netstat -ntlp命令:查看所有已经开启的端口
lsof -i:端口号:查看占用某个端口的服务
Kill -9 进程号 强制关某个进程
hostname 查看主机名称 du -sh 查看当前文件大小
getconf LONG_BIT命令 查看系统位数
★24>who命令:查看在线登录用户
whoami命令:查看当前操作用户
hostname命令:查看主机名称
getconf LONG_BIT命令:查看内核信息
du -sh+文件/目录:查看某个文件/目录的大小
rebot命令:重启Linux系统
shutdown now:关机
init 0命令:关机
★25>service network restart:重启网卡
service network stop关闭网卡
service network restart 重启网卡
service network status 查看网卡状态
alias:用于设置指令的别名 unalias:取消别名
如:alias nasa(别名)=ls(指令名称)
history:查看历史 reset:重置屏幕 clear:清空屏幕
nl:显示第几行,并显示详细信息
★26>软连接:用来创建桌面快捷方式
创建软连接:ln -s+原文件名+链接文件
删除软连接:rm -rf+链接文件
硬链接:相当于备份 ln -d+原文件+备份后的文件名称
★27>
◆Vim文本编辑器:作用:用于编辑一个文件
用法:1、vim+文件名称 2、输入a 3、开始编辑内容
4、摁ESC键 5、shift+: 6、输入wq
◆vim编辑器拥有的三种模式:
1.命令模式 作用:用于键盘输入命令
2.编辑模式 作用:用于编辑文本,修改文本
3.末行模式 作用:用于输入末行命令
◆vim命令模式下的常用命令
1、a命令 从命令模式进入到编辑模式,在光标所在位置后进行输入
2、A命令 从命令模式进入到编辑模式,在光标所在行尾进行输入
3、i命令 从命令模式进入到编辑模式,在光标所在位置前进行输入
4、I命令 从命令模式进入到编辑模式,在光标所在行首进行输入
5、o命令 从命令模式进入到编辑模式,在光标所在行下一行输入
6、O命令 从命令模式进入到编辑模式,在光标所在行上一行输入
7.x命令 对光标所在的字符进行删除
8.X命令 对光标所在前的单个字符进行删除
9.dd命令 删除光标所在行
10.D命令 删除光标所在字符到行尾的内容
11.yy命令 复制光标所在行的内容
12.nyy命令 复制包含光标所在行的指定行数
13.p命令 在光标所在行的下一行进行粘贴
14.P命令 在光标所在行的上一行进行粘贴
◆vim末行模式
1):wq命令 保存并退出
2):w命令 保存
3):wq! 强制保存,退出
4):q! 强制退出
5):set nu 设置行号/显示行号
6):set nonu 取消行号显示
7):m,ny命令 复制m~n行
8):m,nw +文件名称 指定m~n行,写入到一个新文件
9):/字符串 匹配的字符串高亮显示
10):noh 取消高亮显示效果
★28>Linux命令末尾加-I参数,不区分大小写
linux系统模糊查询常用“*.”
数据库模糊查询常用“%”
详解:
第一行:
20:45:37— 当前系统时间
1:08 — 系统已经运行时间(在这期间没有重启过)
4 users — 当前有4个用户登录系统
load average: 00, 00, 00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:
Tasks — 任务(进程)共有144个进程,运行中的有1个,139个在休眠(sleep),stoped状态的有4个,zombie状态(僵尸)的有0个。
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
1030528 total — 物理内存总量(10GB)
386032k used — 使用中的内存总量(3.86GB)
644496k free — 空闲内存总量(6.44)
buffers — 缓存的内存量
第五行:swap交换分区
total — 交换区总量
used — 使用的交换区总量
free — 空闲交换区总量
cached — 缓冲的交换区总量(4GB)
六行是空行
第七行以下:各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)