Linux
这东西是个开源的操作系统
这东西贼他妈稳定,而且高并发处理及其强劲,不收费还很安全
Linux是Unix的一个版本
Linux所有东西都是用文件来表示的,包括用户,硬件都是,比如CPU,网卡,这些在linux中都是一个文件
一、准备工作与概念(根据视频学习)
1、根据视频安装虚拟机和CentOS操作系统
2、CentOS的Linux目录结构
/根目录
➢/bin ([重点] /us/bin、/us/oca/bin)
是Binary的缩写,这个目录存放着最经常使用的命变
➢/sbin /usr/sbin 、/us/loca/sbin)
s就是Ssuper User的意思,这里存放的是系统管理员使用的系统管理程序。
➢/home [重点]
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
➢/root [重点]
该目录为系统管理员,也称作超级权限者的用户主目录。
➢/lib
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的LL文件。几乎所有的应用程序都需要用到这些共享库。
➢/lost+found
这个目录一 -般情况下是空的,当系统非法关机后,这里就存放了一些文件。
➢/etc[重点]
所有的系统管理所需要的配置文件和子目录myconf
➢/usr [重点]
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的programfiles目录。
➢/boot[重点]
存放的是 启动Uinux时使用的一些核心文件,包括一些连接文件以及镜像文件
➢/proc
这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
➢/srv
service缩写,该目录存放一些服务启动之后需要提取的数据。这是linup2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
➢/tmp
这个目录是用来存放一些临时文件的。
➢/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储。
➢/media[重点]
linux系统会自动识别一些设备,例如u盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
➢/mnt[重点]
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了.
➢/opt
这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。
➢/us/local [重点]
这是另一个给主机额外安装软 件所安装的目录。-般是通过编译源码方式安装的程序。
➢/var[重点]
这个目录中存放着在不断扩 充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
➢/selinux
SELinux是一种安全子系统,它能控制程序只能访间特定文件。
3、常用工具:远程操控工具XShell和文件上传下载管理工具XFTP
如果你不想消费买激活码,或者不会破解,可以选用putty和winSCP,免费的
想要用软件控制到Linux,需要你的Linux开启SSHD服务的22号端口
二、VI和VIM,关机和重启(根据视频学习)
1、VI和VIM的三种模式
正常模式
在正常模式下,我们可以使用快捷键。
以vim打开一个档案就直接进入-般模式了(这是默认的模式。在这个模式中,你可以使用[上下左右」按健来移动光
标,你可以使用[删除字符」或[册除整行」来处理档案内容,也可以使用[复制、粘贴]来处理你的文件数据。
插入模式/编辑模式
在此模式下,程序员可以输入内容。.
按下i,I,o,O.a. A.r, R等任何一个字母之后都会进入编辑模式. 一般来说按i即可
命令行模式
在这个模式当中,可以提供你相关指令, 完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的!
2、关机合重启命令
shutdown -h now 立该进行关机
shudown -h 1 "hello, 1分钟后会关机了"
shutdown -f now 现在重新启动计算机
halt 立刻关机,作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘.
注意细节:
不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
3、用户登陆和注销
1)登录时尽量少用root帐号, 因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su-用户名”命令来切换成系统管理员身份.
2)在提示符下输入logout即可注销用户(退出登陆,不是销毁用户)
使用细节:
1) logout 注销指令在图形运行级别无效,在运行级别3下有效.
2)运行级别这个概念,后面给大家介绍
三、用户管理
概念
Linux系统是多用户多任务操作系统,任何一个用户,都需要先向管理员申请一个账号,然后才能用账号进入系统
Linux的每个用户都至少属于一个组
因为Linux有万物皆文件的概念,所以,每个用户都对应到/home/目录下的一个文件夹
组和/home/下文件夹不是一个概念,组是分组,而文件夹代表用户实体
如果你单单创建用户,不指定分组和文件夹,那么默认按用户名创建同名文件夹和组
1、添加用户设置密码
一、不指定文件夹
useradd 用户名
这里没有指定文件夹,所以会自动按照你的用户名在home目录下创建一个同名文件夹
二、指定文件夹
useradd -d 目录 用户名
这里指定的目录,那么这个用户就会被分到这个目录中
三、给指定用户添加密码(修改密码也是这个命令)
passwd 用户名
四、常用指令
cd 路径 : 切换目录
mkdir 名字 : 在当前路径下创建一个指定名字的目录
ll : 显示当前目录所有文件和详细信息
ls : 像素当前目录所有文件
2、删除用户
必须是root根用户才可以使用删除权限
一、删除用户而不删除文件夹(组)
userdel 用户名
删除指定用户
二、删除用户同时删除文件夹
userdel -r 用户名
同时删除指定用户和其所在文件夹
3、用户基本操作
一、查询指定用户信息
id 用户名
查询用户信息,没有返回无此用户
其中uid代表用户id,pid代表其所在组id,groups代表所在组名称
二、切换用户
su - 切换用户名
我们操作系统时,如果权限不够,则需要切换用户
高权限用户切换到低权限用户无需输入密码
低权限切换高权限需要密码
exit
切换回原来用户
三、查看当前用户
whoami/who am i
whoami 只显示用户名
who am i 显示详细信息
4、用户组
类似于角色,系统可以对有共性的多个用户进行统一管理
一、创建组
groupadd 组名
添加一个指定名字的组
二、删除组
groupdel 组名
删除指定组
三、添加用户时指定组
useradd -g 用户组 用户名
创建用户到指定组,如果不指定,前面已经说过了,会自动创建一个同名组
四、修改用户组
usermod -g 新用户组 用户名
将指定用户的组,改为新指定的用户组
5、用户和组的相关文件
/etc/passwd
用户的配置文件,记录用户的各种信息
每行含义,用户名:口令:用户表示号:组标识号:注释性描述:主目录:登陆Shell
/etc/shadow
口令的配置文件
每行的含义,登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
组(group)的配置文件,记录Linux包含的组的信息
每行含义,组名:口令:组标识号:组内用户列表
四、实用指令
1、指定运行级别
一、Linux系统7个运行级别
0:关机
1:单用户(找回丢失密码)
2:多用户五网络服务
3:多用户有网络服务
4:保留
5:图形界面
6:重启
二、运行级别配置文件
/etc/inittab
三、指定运行级别
init 级别
切换到指定运行级别
四、进入单用户找回密码
进入到单用户模式后,root不需要密码即可登录,这时可以重新设置root密码
2、帮助指令
一、获取帮助信息
man 命令或配置文件
查看指定命令或配置文件的帮助信息
help 命令
查看指定命令的帮助信息
3、文件目录类指令
/代表根目录,cd / 就是切换目录到根目录,cd /home/ 就是去往绝对路径 根目录下的home目录中
一、查看目录信息
pwd
显示当前工作目录的绝对路径
ls [选项] [目录或文件夹]
查看当前目录或指定文件和目录的信息内容
选项
-a :显示当前目录所有文件和目录,包括隐藏的
-l :以列表方式显示信息
举例:
ls -l :以列表方式显示当前目录下所有文件
ls -al:一列表方式显示当前目录下所有文件包括隐藏文件
ll:ls -l简写形式
二、切换
cd [参数]
切换到指定目录
常用参数
绝对路径或相对路径:直接切换到对应路径
~ 或 不指定参数 :自己回到自己的家目录,就是/home/里面你的用户目录
.. :回到当前目录的上一级
三、创建目录
mkdir [选项] 要创建的目录
创建指定目录
常用选项
-p :创建多级目录
举例
mkdir /home/test
在home下创建一个目录test
mkdir -p /home/test/test_child
在home下创建test并在test中创建test_child
多级目录必须指明-p,否则会创建失败
四、删除目录
rmdir [选项] 要删除的空目录(注意是空的)
删除指定空目录,非空目录无法删除
rm -rf 要删除的目录
删除指定非空目录
五、创建文件
touch 文件名称
创建一个空文件
举例
touch 1.txt 2.txt
创建1.txt和2.txt两个空文件
六、拷贝指令
cp [选项] source dest
拷贝文件到指定目录
参数
source :你要拷贝的源文件
dest:你要拷贝的目标目录
常用选项
-r :递归复制整个文件夹,简单说就是带上这个参数可以拷贝文件夹,不带只能拷贝文件
举例
cp aaa.txt /home/bbb
拷贝当前目录aaa.txt文件到bbb文件夹下,bbb文件夹必须先存在
cp -r bbb /
拷贝当前目录下的bbb目录到根目录下
前期如果你找不准目录,可以先用cd进入目录,然后pwd看看是否正确,确保无误后在执行cp命令
七、删除指令
rm [选项] 要删除的文件或目录
删除指定文件或目录
常用选项
-r:递归删除整个文件夹
-f:强制删除不提示
八、移动和重命名指令
mv 要重命名文件 重命名后的名字
将要重命名的文件重名名
mv 要移动的文件
将文件移动到当前目录
你需要先进入到某个文件夹,如果你想重命名,就进入到内个文件所在文件夹,然后执行mv指令,就会执行重命名
如果你想将某个文件移动到home文件夹,就进入到home文件夹,然后执行mv 要移动的文件,就会将文件移动过来
九、查看文件内容
cat [选项] 要查看文件
以只读的方式查看指定文件
选项
-n :显示行号
举例
cat -n /etc/profile | more
以只读并且显示行号而且要分页的形式打开文件 | more 是后面的知识点,这里作用就是分页显示文件,按空格换页
more指令
一个机遇VI编辑器的文本过滤器,一全屏方式按页显示文本文件内容
快捷键和指令
空格:向下一页
Enter:向下一行
q:立即离开
Ctrl+F:向下滚动一屏
Ctrl+B:向上一屏
*:输出当前行行号
:f :输出文件名和当前行行号
more /etc/profile
less指令
功能和more一样,但是less指令显示文件时,不是一次性加载所有内容显示,而是根据显示需要加载内容
快捷键和指令
空格 :向下一页
/字符串 :向下查找字符串,n向下,N向上
?字符串:向上查找,n向上,N向下
q:退出
十、>指令(输出重定向)和>>指令(追加)
ls -l>文件 : 将列表的内容写入文件a.txt(覆盖写)
ls -al>>文件: 将列表内容追加到文件aa.txt的末尾
cat 文件1>文件2 : 将文件1的内容覆盖到文件2
echo “内容”>>文件: 将内容写进文件
十一、将文件内容输出到控制台
echo [选项] [输出内容]
输出内容到控制台
举例
echo $PATH
输出Linux系统环境变量
echo “hello”
输出hello到控制台
head 文件
显示文件开头部分,默认为前10行
head -n 5 文件
查看文件前5行内容,要看6行就写6,看几行就写几
举例
head -n 5 /etc/profile
输出文件前5行内容
tail 文件
显示文件尾部内容,默认后10行
tail -n -5 文件
显示文件后5行
tail -f 文件
实时追踪该文档的所有更新
十二、快捷方式
ln -s [源文件或目录] [软连接名]
符号链接,windows中的快捷方式和其有异曲同工之妙
十三、历史命令
history
查看已经执行过的历史命令,或者执行历史命令
举例
history
显示所有历史命令
history 10
显示最近10个历史命令
! 历史命令编号
执行指定编号历史命令,编号使用history可以查到
4、时间日期类指令
一、显示时间
date
显示当前时间
date +%Y
显示当前年份
date +%m
显示当前月份
date +%d
像素当前是哪一天
date +%Y-%m-%d %H:%M:%S
根据指定格式显示年-月-日 时:分:秒
二、设置时间
date -s 字符串时间
设置系统当前时间,比如2020-7-8 11:22:22
三、日历
cal [选项]
显示指定日历
cal
显示当前日历
cal 2020
显示2020年日历
5、搜索查找类指令
一、find指令
从指定目录下递归地遍历器各子目录,将满足条件的文件和目录显示在终端
find [搜索范围] [选项]
选项
-name 文件名 :根据文件名查找
-user 用户名 :查找属于指定用户的所有文件
-size 文件大小 :按文件大小查找
举例
find /home -name yzpnb.txt
查找home目录下 名字为yzpnb.txt的文件
find /home -user yzpnb
查找home目录下 属于yzpnb用户的文件
find /home -size +20M
查找 home目录下,文件大小大于20M的文件(如果你不加+号,会查找20M的文件,如果你用-号,会查找小于20M的文件)
二、locate指令
快速定位文件路径,利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询数的块,为了查询准确,管理员应该定期更新locate时间
由于locate指令基于数据库查询,所以第一次运行前,需要使用updatedb指令创建locate数据库
locate 搜索文件
搜索文件
三、管道符号|
管道符| 表示将前一个命令的处理结果输出传递给后面的命令处理
四、grep指令,过滤查找
grep [选项] 查找内容 源文件
过滤找出源文件中指定的查找内容
选项
-n:显示匹配行及行号
-i:忽略字母大小写
举例
grep yes hello.txt
查询出当前目录中hello.txt文件中的yes字符串
cat hello.txt | grep yes
先以只读方式显示hello.txt内容,然后通过管道符号|将输出传递给grep yes处理,获取输出结果中的yes字符串
grep -n yes hello.txt
查询当前目录中hello.txt文件中包含yes字符串的一整行和行号
6、压缩和解压类指令
一、gzip(压缩)和gunzip(解压)指令
gzip 文件
将文件压缩为.gz文件
gunzip .gz文件
将指定文件解压
二、zip压缩和unzip解压指令
项目打包发布中很有用
zip [选项] xxx.zip
压缩文件和目录
常用选项
-r :递归压缩,压缩目录
举例
zip -r test.zip /home/
将home文件中所有内容包括子目录文件全部压缩到test.zip
unzip [选项] xxx.zip
解压缩文件
常用选项
-d 目录 :指定解压后文件的存放目录
举例
unzip -d /home/test/ test.zip
将test.zip所有文件解压到home中的test目录下
三、tar指令
打包指令,将文件打包为.tar.gz文件,解压也是解压.tar.gz文件
tar [选项] xxx.tar.gz 要打包的内容
将指定内容打包到xxx.tar.gz包中
常用选项
-c 产生tar打包文件
-v 显示详细信息
-f 指定压缩后文件名
-z 打包同时压缩
-x 解压
举例
tar -zcvf test.tar.gz test1.txt test2.txt
将当前目录下test1和test2文本文件,打包成test.tar.gz文件,并显示详细信息,同时压缩
tar -zxvf test.tar.gz
将test.tar.gz解压到当前目录
tar -zxvf test.tar.gz -C /home/testtar/
将test.tar.gz解压到home下testtar目录(目录要确保已存在)
五、组管理和权限管理
1、组管理
linux中每个用户必须属于一个组,不能独立与组外,在linux中每个文件有所有者、所在组、其他组的概念
比如现在有一个小明创建的文件,那么这个文件所有者就是小明,所在组就默认是小明所在组,当然可以改变到其它组
一、文件或目录所有者
文件的创建者自然成为该文件所有者
1、查看文件/目录的所有者
ls -ahl
显示文件,并显示文件所有者(a代表所有,h代表排版好看,l代表列表形式)
2、修改文件所有者
chown 用户名 文件名
修改指定文件的所有者为指定用户
二、文件或目录所在组
用户创建一个文件后,文件所在组就是用户所在组
1、查看文件/目录所在组
ls -ahl
显示文件,并显示文件所在组
2、修改文件所在组
chgrp 组名 文件名
修改指定文件所在组为指定组
三、用户所在组
添加时可以指定组,root权限可以改变组
usermod -g 组名 用户名
修改指定用户的所在组
usermod -d 目录名 用户名
修改指定用户的登陆初始目录(就是home里面对应此用户的文件夹)
2、权限管理
ls -l显示内容如下
- rw- r-- r-- 1 tom police 6 3月 18 19:24 abc.txt
说明
第0位确定文件类型,这里就是一个-,代表普通文件。
d(目录)
-(普通文件)
l(软连接文件)
c(字符设备,键盘鼠标等)
b(块文件,硬盘)
rw- ,这块内容确定文件所有者,拥有的文件权限
1、作用到文件
r代表读权限
w代表写权限,可以修改,但不能删除,必须具有对该文件所在目录有写的权限才能删除文件
x代表可执行权限,这里这个文件没法执行,所以没有x权限
1、作用到目录
r代表读权限,查看目录内容
w代表写权限,可以修改目录中内容,创建+删除+重命名目录
x代表可执行权限,可以进人到目录
第一个r--,确定文件所在组的其他用户对该文件的权限
r--代表只读权限
rw-代表读写权限
rwx代表读写执行权限
---代表没有权限
第二个r--,确定其他用户拥有该文件的权限
r--代表只有读权限
1,这是一个数字
如果是文件,表示硬链接的数量
如果是目录,表示子目录数量
tom
代表文件所有者
police
代表文件所在组
6
代表文件大小,如果是目录就是4096,固定值,代表目录所占空间(不包含其中内容)
3月 18 19:24
是文件最后修改时间
abc.txt
代表文件名称
上面内个权限,你应该具备三位一组的概念
-rwxrw-r--
-这就代表此文件是普通文件
rwx,这三位代表文件拥有者的权限是读写和执行
rw-,这三位代表同组其它用户的权限是读写
r--,这三位代表其它组用户的权限是只能读
rwx的数字表示形式
r=4
w=2
x=1
rwx=7(r+2+x)
如果是3表示(w+x)
一、修改权限
chmod 权限类型 权限操作符 权限值[,权限类型=权限值,...] 文件/目录名
修改指定文件或目录的权限
权限类型
u:所有者
g:所有组
o:其他用户
a:所有人
权限操作符
+:增加权限
-:减少权限
=:设置权限
权限值
r:读
w:写
x:执行
举例
chmod u=rwx,g=rw,o=x a.java
表示设置a.java文件的所有者权限为读写执行,同组用户为读写,其他用户为执行
chmod u+w a.java
给a.java文件的所有者增加一个写权限
chomd u-w a.java
给a.java文件的所有者减少写权限
chmod 751 a.java
等价于 chmod u=rwx,g=rw,o=x a.java
二、修改文件所有者
当你权限不够对文件进行读写操作时,可以用下面命令改写
chown newowner file
改变文件所有者为newowner
chown newowner:newgroup file
改变文件的所有者和所有组为newowner和newgroup
chown -R newowner /home/kkk/
递归改变目录中所有文件的所有者为newowner,这个就得用root用户来了
chgrp -R newgroup /home/kkk/
递归改变目录所有文件的所在组为newgroup
六、任务调度和磁盘
1、任务调度(如果想深入,请专门去学习Linux的任务调度)
什么是任务调度
指在系统的某个时间执行的特定的命令或程序
分为两类:系统工作和个别用户工作
系统工作:有些重要工作需要反复执行,比如病毒扫描
个别用户工作,个别用户可能希望执行某些程序,比如对mysql的数据备份
crontab [选项]
选项
-e:编辑一个定时任务
-l:查看定时任务
-r:删除定时任务
举例
conrtab -r
终止任务调度
crontab -l
列出当前任务调度
service crond restart
重启任务调度
2、磁盘分区、挂载
分区方式
mbr分区:
最多支持4个主分区
系统只能安装在主分区
扩展分区要占一个主分区
MBR最大支持2TB,但拥有最好的兼容性
gtp分区:
支持无限多主分区(操作系统会限制,比如windows最多128分区)
支持18EB大容量(EB=1024PB,PB=1024TB,TB=1024GB,GB=1024MB,MB=1024KB)
windows7 64位以后支持gtp
Linux分区
无论有几个分区,分给哪一个目录使用,它归根结低就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
Linux采用载入的处理方式,整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
Linux挂载
说白了就是Linux万物皆为文件,每一个分区对应挂载一个文件夹
lsblk -f
查看系统分区和挂载情况
fdisk /dev/sdb
分区到sdb
mkfs -t ext2 /dev/sdb1
将dev下sdb1分区格式化为ext2
mount /dev/sdb1 /home/newdisk
将sdb1分区挂载到newdisk文件目录
六、rpm和yum
1、rpm
一种用于互联网下载包的打包及安装工具
包含在某些Linux发布版中,生成具有.RPM扩展名的文件
一、rpm包管理
rpm -qa
查询已经安装的rpm包列表
rpm -qa|grep xx
管道符,过滤一下结果
rpm -qa | grep firefox
查询Linux安装没安装火狐浏览器
二、卸载rpm包
rpm -e RPM包名称
卸载指定包
三、安装rpm包
rpm 参数 RPM包全路径名称
根据路径安装包
参数
-i:安装
-v:提示
-h:进度条
举例:
rpm -ivh 包路径
安装rpm包
2、yum
yum是一个shell前端软件包管理器
基于RPM包管理
可以从指定服务器下载RPM包并安装,自动处理依赖性关系,并一次性安装所有依赖的软件包
一、查询需要安装的软件是否存在与yum服务器
yum list|grep xx软件列表
过滤查询指定软件,是否在yum服务器,没有就只能用rpm下载
二、安装指定yum包
yum install xxx
从yum服务器下载安装指定包
yum install firefox
下载安装火狐浏览器