目录
快速链接:
10.2 查看所有设备(光驱 /media,u盘, 硬盘)挂载情况
10.6 经典案例——在系统中增加一块硬盘,挂载到/home/newdisk上(含自动挂载操作)
1 linux 目录结构
/opt 给主机额外安装软件所摆放的目录。
2 vi与vim相关操作
2.1 一般模式
以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
2.2 编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。退出按Esc。
2.3 指令模式
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
3 查看网络ip和网关
3.1 查看当前网络ip
3.2 修改IP地址
以下标红的项必须修改,有值的按照下面的值修改,没有该项的要增加。
最后,记得执行service network restart或者reboot重启虚拟机。
4 配置主机名
4.1 显示和设置系统的主机名称
4.2 修改主机名
配置主机ip
5 关闭防火墙
5.1 service 后台服务管理
开启、关闭、重启查看服务状态
5.2 chkconfig 设置后台服务自启配置
5.3 进程运行级别
当忘记root密码时,如何找回密码:启动时->快速输入 enter->输入 e-> 进入到编辑界面-> 选择中间有 kernel 项->输入 e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入 enter->输入 b [boot]-> 进入到单用模式。
5.4 关闭防火墙
临时关闭防火墙:
开机启动时关闭防火墙:
6 常用基本命令
6.1 帮助命令
eg:
6.2 常用快捷键
6.3 文件目录操作
eg:递归删除目录中所有内容
rm -rf dssz/
般查看比较小的文件,一屏幕能显示全的。
-n表示显示行号
如果需要一行行,输入 enter;
如果需要翻页,输入空格键;
如果需要退出,输入 q。
eg:cat -n houge.txt
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
eg: more smartd.conf
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
eg: less smartd.conf
eg:
[atguigu@hadoop101 ~]$ echo "hello\tworld"
hello\tworld
[atguigu@hadoop101 ~]$ echo -e "hello\tworld"
hello world
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/
查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。
7 用户 组 权限
7.1 linux用户机制
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。在linux中每个文件有所有者、所在组、其它组的概念。用户组是为了让系统可以对有共性的多个用户进行统一的管理。当我们创建一个用户后,默认会在/home/xx 创建一个和用户名相同的目录,该目录就是该用户的家目录。当一个新用户登录后,默认会切换到/home/xx下。一个用户默认是不能进入到其他用户的该目录下。
另外,因为在实际的工作中,是不可能让每一个人都用最高管理权限的root用户,只能是让他们用到低第一级的用户权限。登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。如果在操作中真的需要管理员权限,可以利用普通用户登录,登录后再用”su-root’命令来切换成系统管理员身份。
7.2 用户操作
添加新用户:
设置用户密码:
id 查看用户是否存在:
查看创建了哪些用户:
切换用户:
删除用户:
查看登录用户信息:
sudo设置普通用户具有root权限:
修改用户:
7.3 用户组管理
1)文件/目录的所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
2)查看文件的所有者与所在组的指令——ls ahl (第一个为所有者名称,第二个为所在组名称)
3)组自身的一些命令:
增加组:groupadd lab
新增一个用户,并且将他指定到一个新增的组中 groupadd -g lab sharm(当这个语句用不了的话就只能是一步一步操作)
4)文件与组的一些操作:
修改文件的所有者:chown 用户名 文件名 (修改文件的所有者时,它的所在组还是属于原来的组)
运用chown同时修改所有者和所有组:chown newowner:newgroup 文件名
修改文件所在的组: chgrp 组名 文件名
删除组:groupdel lab (前提是这个组里没有用户了)
5)所有者与所在组之间的一些操作
在已有组中添加一个新用户: useradd -g 组名 新用户
修改所有者的所在组:usermod -g 新的组名 用户
改变该用户登陆的初始目录:usermod –d 目录名 用户名
新增组:
删除组:
查看创建了那些组:
7.4 文件 、权限类
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
- 第0位确定文件类型,其中-:普通文件;d:目录;l:连接文件;c:字符设备文件[键盘,鼠标];b:块设备文件[硬盘]
- 第1-3位确定所有者(该文件的所有者)拥有该文件的权限(r:读权限;w:写权限;x:执行权限)
- 第4-6位确定所属组(同用户组的)拥有该文件的权限
- 第7-9位确定其他用户拥有该文件的权限
- 1:如果是文件,表示硬链接的数目(一般都是1);如果是目录,则表示有多少个子目录
- root表示所有者名称
- police表示所属组名称
- 1213:表示文件存储的大小,如果是目录,则统一为4096
- Feb209:39表示文件最后的修改时间
7.4.1 rxw作用文件和目录的不同解释:
(1)作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
(2)作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
7.4.2 chmod 修改权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
eg:
- chmod u=rwx,g=rx,o=x 文件、目录 【表示:给所有者rwx, 给所在组的用户 rx, 给其他人 x】
- chmod o+w 文件、目录 【表示:给其它用户增加w 的权限】
- chmod a-x文件、目录 【表示:给所有用户 去掉 x权限】
- chmod u=rwx,g=rx,o=x 文件、目录
chmod 751 文件、目录 ( 两者的功能是相同的)
7.4.3 chown 改变所有者
eg:chown atguigu houge.txt
7.4.3 charp 改变所属组
eg:chgrp root houge.txt
8 搜索与查找
8.1 find 查找文件或者目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
eg:
(1)按文件名:根据名称查找/目录下的filename.txt文件。
[root@hadoop101 ~]# find xiyou/ -name *.txt
(2)按拥有者:查找/opt目录下,用户名称为-user的文件
[root@hadoop101 ~]# find xiyou/ -user atguigu
(3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)
[root@hadoop101 ~]find /home -size +204800
8.2 locate快速定位文件路径
ocate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
eg:
(1)查询文件夹
[root@hadoop101 ~]# updatedb
[root@hadoop101 ~]#locate tmp
8.3 grep 与管道符“|”
-i 忽略字母大小写;
eg:
(1)查找某文件在第几行
[root@hadoop101 ~]# ls | grep -n test
9 压缩和解压缩
9.1 gzip/gunzip
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件 (删除原文件)
9.2 zip/unzip
eg:
zip -r nn.zip /home/temp/ 将/home目录下的temp文件夹压缩成名为nn.zip的文件,同时保留原文件,注意,要写全,如/home/temp/
unzip -d /home/haha nn.zip 将nn.zip文件解压到/home/haha中,如果没有该目录,则自动创建该目录(在当前文件夹中操作另一个文件夹,那么该文件夹的前面不要加/,不然电脑会识别到根目录的下一层上)
9.3 tar
eg:
tar -zcvf a.tar.gz haha.txt mimi.txt 将haha.txt和mimi.txt合并打包为a.tar.gz文件
tar -zcvf myhome.tar.gz /home/ 将/home文件夹下的所有东西打包成一个myhome.tar.gz文件
tar -zxvf a.tar.gz 将z.tar.gz压缩文件解压到该原目录下
tar -zxvf a.tar.gz -C /opt/tmp 将a.tar.gz压缩文件解压到/opt/tmp文件夹下,该文件夹需要事先创建
10 磁盘分区类
10.1 分区的方式
1) mbr分区:
最多支持四个主分区
系统只能安装在主分区
扩展分区要占一个主分区
MBR最大只支持2TB,但拥有最好的兼容性
2) gtp分区(✔):
支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
windows764位以后支持gtp
10.2 查看所有设备(光驱 /media,u盘, 硬盘)挂载情况
10.3 df 查看磁盘空间使用情况
1)查询系统整体磁盘使用情况 df -h
2)查询指定目录的磁盘占用情况(默认为当前目录) du -h 目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
10.4 fdisk 查看分区
该命令必须在root用户下才能使用。
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
System:分区类型
10.5 mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
eg:
(1)挂载光盘镜像文件
[root@hadoop101 ~]# mkdir /mnt/cdrom/ 建立挂载点
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中
[root@hadoop101 ~]# ll /mnt/cdrom/
(2)卸载光盘镜像文件
[root@hadoop101 ~]# umount /mnt/cdrom
10.6 经典案例——在系统中增加一块硬盘,挂载到/home/newdisk上(含自动挂载操作)
步骤:
1 增加一块硬盘 1G [到设置中添加一块硬盘即可]
2 重启一下服务器 reboot
3 lsblk
4 给sdb 硬盘分区,分区命令:fdisk /dev/sdb
选项:
m 显示命令列表
p 显示磁盘分区 同 fdisk –l
n 新增分区
d 删除分区
w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
5 格式化 sdb1
mdfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化]
6 挂载
mkdir /home/newdisk
mount /dev/sdb1 /home/newdisk [说明;挂载时,当前目录不要在 /home/newdisk ]
7 上面的方式,只是临时生效,当你重启系统,挂载的关系没有, 配置Linux的分区表,实现启动时,自动挂载。
vim /etc/fstab
8 重启后,会自动挂载
9 如果,我们希望卸载
umount /dev/sdb1(设备名)或/home/newDisk(挂载名)
11 进程、线程
1)在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
11.1 ps 查看当前系统进程状态
(1)ps aux显示信息说明
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
(2)ps -ef显示信息说明
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef
11.2 kill 终止进程
11.3 pstree 查看进程树
11.3 top 查看系统健康状态
交互操作:
eg:
第一行信息为任务队列信息:
第二行为进程信息:
第三行为CPU信息:
第四行为物理内存信息:
第五行为交换分区(swap)信息:
12 netstat 显示网络统计信息和端口占用情况
-an 按一定顺序排列输出
13 crond 系统定时任务
很多时候,我们在linux中,需要自动执行某一个脚本(代码),这个时候,我们就需要任务调度的作用。任务调度分为两类,第一类,系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。第二类,个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
任务调度的两种方式:
1)直接通过命令行来调度
2)通过调用脚本来调度
本质上两者是相同的,只不过当内容太多时,放在脚本中比较方便。
13.1 crond 服务管理
13.2 crontab 定时任务设置
快速入门:
第一步:设置任务调度文件:/etc/crontab
第二步:设置个人任务调度。执行crontab –e命令。
第三步:接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令
eg:
案例:每隔1分钟, 将当前日期和日历都追加到 /home/mycal.log 文件中(用脚本形式)(思路,我先把写好的脚本放在某个文件夹下,然后通过crontab调度这个脚本)
cd /tmp/tp/crontask.sh (放脚本的位置)
在该脚本中写入 date >> /tmp/tp/mycal.log
cal >> /tmp/tp/mycal.log (存放保存文件的位置)
[root@localhost tp]# chmod 755 ./crontask.sh (对了,还要给它一个可执行的权限)
crontab -e
*/1 * * * * /tmp/tp/mycal.log
crontab -r
14 软件包管理
14.1 RPM
PM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
Apache-1.3.23-11.i386.rpm
- “apache” 软件名称
- “1.3.23-11”软件的版本号,主版本和此版本
- “i386”是软件所运行的硬件平台,Intel 32位微处理器的统称
- “rpm”文件扩展名,代表RPM包
14.1.1 RPM查询命令(rpm -qa)
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
14.1.2 RPM卸载命令(rpm -e)
14.1.3 RPM安装命令(rpm -ivh)
eg:
14.2 YUM仓库配置
yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,如图所示。
14.2.1 YUM的常用命令
yum的基本指令
-
yum list|grep xx软件列表 查询yum服务器是否有需要安装的软件
-
yum install xxx 安装指定的yum包(默认会安装最新版本的软件)
14.2.2 修改网络YUM源
默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163。
1.前期文件准备
(1)前提条件linux系统必须可以联网
(2)在Linux环境中访问该网络地址:CentOS镜像使用帮助,在使用说明中点击CentOS6->再点击保存,如图所示
(3)查看文件保存的位置,如图所示
在打开的终端中输入如下命令,就可以找到文件的保存位置。
2.替换本地yum文件
(1)把下载的文件移动到/etc/yum.repos.d/目录
(2)进入到/etc/yum.repos.d/目录
(3)用CentOS6-Base-163.repo替换CentOS-Base.repo
3.安装命令
yum makecache就是把服务器的包信息下载到本地电脑缓存起来
4.测试
参考:尚硅谷官方文档、及 Linux极速上手,超全面总结_是志明呀的博客-CSDN博客