前言:
作者简介:我是笑霸final,一名热爱技术的在校学生。
个人主页:个人主页1 || 笑霸final的主页2
系列专栏:后端1 专栏 || 后端2专栏
如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
如果感觉博主的文章还不错的话,点赞 + 关注 + 收藏
Linux 遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。
由于 Linux 是自由软件,任何人都可以创建一个符合自己需求的 Linux 发行版。
本笔记Linux 的发行版本 Centos 为例来为大家介绍 Linux 系统的应用。
开放性
特别是遵循开放系统互连(OSI)国际标准。
多用户
操作系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
多任务
计算机同时执行多个程序,而同时各个程序的运行互相独立。
良好的用户界面
Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
设备独立性
操作系统把所有外部设备统一当作成文件来看待,只要安装驱劢程序,任何用户都可以象使用文件一样,操纵、使用这些设备。Linux是具有设备独立性的操作系统,内核具有高度适应能力。 提供了丰富的网络功能:完善的内置网络是Linux一大特点。
可靠性、安全性
Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
良好的可移植性
将操作系统从一个平台转移到另一个平台使它仍然能挄其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
由于Linux开放源代码,降低了对封闭源代码软件潜在安全性的忧虑,这使得Linux操作系统拥有广泛的应用领域。目前,Linux的应用领域主要包括以下几个方面。
1. 桌面应用领域
目前,Windows操作系统在桌面应用中一直占据绝对的优势,但是随着Linux操作系统在图形用户界面和桌面应用软件方面的发展,Linux在桌面应用方面也得到了显著的提高,越来越多的桌面用户转而使用Linux。事实也证明,Linux已经能够满足用户办公,娱乐和信息交流的基本需求。不过,Linux在桌面应用市场上的占有率不高。如今新版本的Linux系统特别在桌面应用方面进行了改进,达到了更高的水平,完全可以作为一种集办公应用,多媒体应用,网络应用等多方面功能于一体的图形界面操作系统。
2. 高端服务器领域
Linux在服务器领域扮演者领军者角色,这在很大程度上得益于它具有稳定性,安全性,开放源代码,总体拥有成本较低等优点。根据调查,Linux操作系统在服务器市场上占有率已经超过50%。由于Linux可以提供企业网络环境所需的各种网络服务,加上Linux服务器可以提供虚拟专用网络(VPN)或充当路由器与网关,因此在不同操作系统互相竞争的情况下,企业只需要掌握Linux技术并配合系统整合与网络等技术,便能够享有低成本,高可靠性的网络环境。
3. 嵌入式应用领域
在通常情况下,嵌入式及信息家电的操作系统支持所有的运算功能,但是需要根据实际应用对其内核进行定制和裁剪,以便为专用的硬件提供驱动程序,并在此基础上开发应用。目前,能够支持嵌入式的常见操作系统有Palm OS,嵌入式Linux,Android和Windows CE等。虽然Linux在嵌入式领域刚刚起步,但是Linux的特性正好符合产品的操作系统,稳定,实时和多任务等需求,而且Linux开放源代码,不必支付许可证费用。
4. 文件服务器系统
网络文件系统是由SUN公司制定的一种文件服务标准,它能实现基于Linux/UNIX的网络文件共享服务。应用Linux的NFS服务,可以很好地解决企业的Linux/unix环境文件共享问题。
Linux提供了安全高效的Windows文件服务器系统-Samba,可以将Windows和Linux有效的整合到一起。Samba基于SMB协议,可提供不同计算机之间的打印共享,文件共享,域管理等服务。
5. 企业门户网站
所谓企业门户网站,就是为企业提供全面信息咨询和服务的行业性网站。在Linux下组建企业的门户网站,可以选择的方案很多,如著名的LAMP方案(Linux+Apache+MySQL+PHP/Python/Perl),LAMP网站架构是目前国际流行的WEB框架,其组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采用此架构,与JAVA架构相比,LAMP具有web资源丰富,轻量,快速开发等特点。
6. 数据备份
对于企业来说,数据就是它的财产,因此数据备份的重要性不言而喻。
Linux是非常安全的操作系统。在Linux最新版本中,广泛采用日志文件系统, 如EXT3。它可以有效降低服务器在突然断电,死机等情况下,对数据可能造成的损失。
在Linux下,还有许多高效率的数据备份工作。如tar,cpio还原备份和dump转储。同时,Linux还有大量的第三方软件包(包括自有软件和商业软件)可以提供数据备份的功能。
详细目录介绍:
/bin
:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令
。
/home
:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/root
:
该目录为系统管理员,也称作超级权限者的用户主目录。
/lib
:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/etc
:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。比如安装mysql后配置文件就在这
/usr
:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/boot
:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/media
:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt
:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt
:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/lost+found
:【隐藏文件】
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
VIM 是 Linux 系统上一款文本编辑器,它是操作 Linux 的一款利器。
当前有很多优秀的 IDE 都支持安装 VIM 插件,原因就是使用它便捷,高效,很爽!
本文主要记录了 VIM 的一些常用使用技巧,方便随时查阅学习 。
一般模式:
yy
拷贝当前行 nyy
拷贝当前向下n行dd
删除当前行 ndd
删除当前向下n行 p
粘贴 u
撤销[Ctrl]+r
重做上一个动作命令模式:
5. /hello 回车
向光标之下寻找一个名称为 hello 的字符串
6. ?hello 回车
向光标之上寻找一个名称为 word 的字符串
7. :n1,n2s/word1/word2/g
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !
7. :1,$s/word1/word2/g 或 :%s/word1/word2/g
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !
命令 | 操作 |
---|---|
shutdown -h now |
立刻关机 |
shutdown -h 1 |
1分钟后关机 |
shutdown -r now |
立刻重启 |
halt |
关机 |
reboot |
重启 |
sync |
内存数据同步到磁盘 |
命令 | 操作 |
---|---|
su 用户名 |
切换用户 |
logout 在运行级别3下有效 |
注销用户 |
命令 | 操作 |
---|---|
useradd 用户名 |
添加用户 |
passwd 用户名 |
指定/修改 用户密码 |
userdel 用户名 |
删除用户(保留home目录) |
userdel -r 用户名 |
删除用户 |
id 用户名 |
查询用户信息 |
whoami 或者who am i |
查询当前用户 |
命令 | 操作 |
---|---|
groupadd 组名 |
添加组 |
groupdel 组名 |
删除组 |
usesradd -g组名 用户名 |
添加用户的同时添加组 |
usermod -g组名 用户名 |
修改用户组 |
cat /etc/group |
查看所有用户组 |
帮助指令:
man [命令过着配置文件] 过去帮助信息
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
指定运行级别:
init X //X表示运行级别
help [命令] //获的shell内置的命令帮助信息
命令 | 操作 |
---|---|
pwd |
显示当前工作目录的绝对路径 |
ls [选项] [目录或文件] |
常见选项:-a :显示当前目录所有文件和目录包括隐藏的。-l :列表的方式显示信息 |
cd [参数] |
切换到指定目录 |
cd ~ 或 cd: |
回到自己的home目录 |
cd .. |
返回上一级目录 |
mkdir [选项] 目录名 |
常用选项:-p 创建多级目录 |
rmdir [选项] 目录名 |
常用选项:- p 递归删除目录删除(空目录) |
rm -rf |
删除目录 |
touch 文件名 |
创建一个空目录 |
cp [选项] A B |
常用选项:-r 递归把A拷贝到B、 |
rm [选项] 目录或文件 |
常用选项:-r 递归删除整个文件夹 、-f 强制删除不提示 |
mv 老文件名 新文件名 |
重命名 |
mv /.../... |
移动文件 |
cat [选项] 文件 |
常用选项:-n显示行号的查看文件 (不能修改) |
more 文件 |
查看文件 |
less 文件 |
查看文件 |
echo [选项] 内容 |
把内容输出到控制台 |
head -n X 文件 |
查看文件前X行内容 |
命令 | 操作 |
---|---|
ls -l > 文件 |
列表的文件写入文件(覆盖) |
ls -l >> 文件 |
列表的文件追加到文件末尾 |
cat 文件1 > 文件2 |
将文件1的内容覆盖到文件2 |
cat 文件1 >> 文件2 |
将文件1的内容追加到文件2末尾 |
echo 内容 >> 文件 |
将内容写入到文件尾部 |
命令 | 操作 |
---|---|
find [搜索范围] [选项] |
命令用来在指定目录下查找文件 |
常用选项:
-amin
n : 在过去 n 分钟内被读取过
-anewer
file: 比文件 file 更晚被读取过的文件
-atime
n: 在过去 n 天内被读取过的文件
-cmin
n : 在过去 n 分钟内被修改过
-cnewer
file :比文件 file 更新的文件
-ctime
n : 在过去 n 天内创建的文件
-mtime
n : 在过去 n 天内修改过的文件
-empty
: 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath
p,-path
p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name
name,-iname
name : 文件名称符合 name 的文件。iname 会忽略大小写
-size
n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type
c : 文件类型是 c 的文件。
命令 | 操作 |
---|---|
locate 文件 |
快速指定文件路径 |
which 指令 |
查看指令的路径 |
|
和grep
命令 | 操作 |
---|---|
grep [选项] 内容 |
常用选项 -n :显示行号、-i 忽略大小写 |
列:
在 h2.txt中查找“h" 并显示行号
cat /root/h2.txt | grep -n "h"
命令 | 操作 |
---|---|
gzip 文件 |
将文件压缩为.gz 文件 |
gunzip *.gz |
解压文件 |
命令 | 操作 |
---|---|
zip [选项] 文件/目录 |
压缩文件或目录 成为.zip 文件 |
unzip [选项] *.zip |
解压 |
常用选项:
-r:递归压缩(压缩目录)
-d<目录> : 指定解压后文件存放的目录
可以打包也可以解压
命令 | 操作 |
---|---|
tar[必要参数][选择参数][文件] |
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的 |
必要参数有如下:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
–help 显示帮助信息
–version 显示版本信息
将 myhome.tar.gz
解压到/root
目录下
tar -zxvf myhome.tar.gz -C /root
文件都有
所有者
、所在组
和其他组
3个概念,默认属于创建者所在的组。
查看文件地所有者:
ls -shl
修改文件所有者:chown 用户名 文件
文件创建时默认在创建者地所在组
创建组:
groupadd 选项 用户组
选项 | 含义 |
---|---|
-g GID | 指定新用户组的组标识号(GID) |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同 |
查看组:
cat /etc/group
,可以用 | grep来过滤信息。
创建一个属于指定组的用户:
useradd -g 组名 用户名
改变用户所在组:
usermod -g 新组名 用户名
改变文件所在组:chgrp 组名 文件
组 | 含义 |
---|---|
1组(第0位) | 确定文件类型 l:链接 d:目录 c:字符设备文件 b块设备 |
2组(1、2、3位) | 第一位r 表示可读 第二位 w 表示可写 第三位x 表示可执行 |
3组(4、5、6位) | 确定所属组的用户用用该文件的权限 |
4组(7、8、9位) | 确定其他组的用户用用该文件的权限 |
第2部分:数字时链接数
第3部分:所属用户
第4部分: 所属组
第5部分:文件大小(字节)如果时目录则为4096
第6部分:最后修改日期
第7部分:文件名
作用到文件:
r
:可读,可以查看
w
:可写。可以修改但是不代表可以删除,删除应对应该文件所在的目录有w(写)
的权限
x
:可以执行
作用到目录
r
:可读,可以查看
w
:可写。可以删除对目录内的 创建 删除 重命名 目录
x
:可以执行。可以进去该目录
符号说明
u:所有者
g:所有组
o:其他人
a:所有人
方式一:+ - = 修改权限
代码 | 说明 |
---|---|
chmod u=rwx,g=rw,o=x 文件/目录 |
给该 文件/目录 所有者可读可写可执行,所有组可读可写,其他人可执行 |
chmod o+x 文件/目录 |
给该 文件/目录 其他人增加 可执行的权限 |
chmod a-x 文件/目录 |
给该 文件/目录 所有人散出 可执行的权限 |
方式二: 通过数字修改权限
r=4,w=2,x=1
代码 | 说明 |
---|---|
chmod u=7,g=6,o=7 文件/目录 |
给该 文件/目录 所有者可读可写可执行,所有组可读可写,其他人可执行 |
块设备一般位于 /dev/sda 下,它的第一个属性为 [b]。
I/O 设备是字符设备。字符设备以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有任何寻道操作。常见的字符设备有 打印机、网络设备、鼠标、以及大多数与磁盘不同的设备。
基本语法:crontab +[选项]
一般设置有5个 * 号 (
* * * * *
)他们的位子含义如下:
第一个星表示:一个小时里面的哪一分钟(0~59)
第二个星表示:一天中哪一个小时(0~23)
第三个星表示;一个月中哪一天(1~31)
第四个星表示:一年中第哪个月(1~12)
第五个星表示:一周中星期几(0(7)~6)【0和7都表示星期天】
五个星的位置可以有以下符号表示
实列代码:
*/10 4 * * 1-5 //表示周一到周五的4点每隔10分钟执行一次
基本语法:at+[选项]+[时间]
*注意
ctrl+d结束at命令输入
在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef | grep at
检测atd是否在运行
实列代码:
2天后执的下午5点执行 /bin/ls/home
at 5pm +2days 回车
/bin/ls/home
输入两次ctrl+d结束at命令
基本语法 :
ps [选项]
选项 | 描述 |
---|---|
-A | 列出所有的进程 |
-w | 显示加宽可以显示较多的资讯 |
-u | 以用户格式显示进程信息 |
-x | 显示后台进程运行参数 |
-ef |
显示当前所有进程 |
ps-aux 可以组合以上命令
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
实列代码
显示 ***进程
ps -ef | grep ***
kill命令的语法:
kill [选项] 进程ID
killall命令的语法:killall 进程ID
常用选项 -9 :表示强制进程停止
基本语法:
pstree[选项]
常用选项 -u :显示user
下面是Linux中可以使用的运行级别(从0~6总共七个运行级别):
0:关机
1:单用户模式
2:多用户模式(没有NFS)
3:完全的多用户模式
4:系统未使用
5:图形界面模式
6:重启
server指令
1、基本语法:
service 服务名 [start|stop|restart|reload|status]
2、在CentOS7.0后很多服务不再使用service,而是systemctl。
3、service指令管理的服务在 /etc/init.d 查看
chkconfig指令
1、通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
2、chkconfig指令管理的服务在/etc/init.d查看
3、注意:CentOS7.0后,很多服务使用systemctl管理
基本语法:chkconfig --list [|grep xxx]查看服务
systemctl 管理指令
基本语法:systemctl [start|stop|restart|status] 服务名
firewall指令
打开端口:
firewall-cmd --permanet --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
注意:要重新载入才能神效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
top动态监控指令
于ps功能相似 但是可以动态得 刷新
基本语法:top [选项]
选项 | 描述 |
---|---|
-dn | 指定top命令 n秒刷新 默认n=3 |
-i | 不显示任何闲置或者僵死进程 |
-p | 指定监控进程id来反监控某个进程的状态 |
rpm命令和yum命令都可以用来安装软件
区别
yum命令在安装软件时如果碰到了依赖性的问题,yum会去主动尝试解决依赖性,如果解决不了才会反馈给用户。
rpm命令一旦遇到了依赖性的问题不会去解决依赖性,而是直接反馈给用户,让用户自行解决
查询安装的rpm的列表 rpm -qa
rpm -qa | grep xxx 查看xxx安装没
卸载rpm rpm -e 名称
查询yum服务器是否有需要的安装软件
yum list | grep xxx
安装指定得 yum包
yum install xxx