虚拟机的网络连接的三种方式:
1、桥接模式:
好处-----大家都在同一个网段,相互可以通讯。
坏处-----因为ip地址有限,可能造成ip冲突。
2、Nat[网络地址转换模式]
好处:虚拟机不占用其他的ip,所以不会ip冲突
坏处:内网的其他人不能和虚拟机通讯。
3、主机模式:
单独的一台电脑
Vi/vim命令:
拷贝当前行:yy,拷贝当前行向下5行5yy,并粘贴(p)
删除当前行 dd,删除当前行向下5行 5dd
在文件中查找某个单词[命令行下 /关键字,回车查找,输入n查找下一个]
设置文件的行号,取消文件的行号[命令行下:set nu和:set nonu]
使用快捷键到文档的最末行[G]和最首行[gg]
在一个文件中输入”hello”,然后又撤销这个动作,再正常模式下输入 u
将光标移动到第20行 shift+g:显示行号set nu-----输入20-----输入shift+g
linux基本命令:
shutdown
shutdown -h -now:表示立即关机
shutdown -h 1:表示一分钟后关机
shutdown -r new:立即重启
halt
就是直接使用,效果等价于关机
reboot
就是重启系统
sync:把内存的数据同步到磁盘
注意:当我们关机或者重启时,都应该先执行sync指令,把内存数据写入磁盘
用户登录和注销:
1、登录后再用“su - 用户名”来切换成系统管理员身份,exit退出登录;
2、logout即可注销用户;
3、Useradd xm 添加一个xm用户;
4、Passwd 用户名—修改用户密码;
5、删除用户xm,但保留家目录:userdel xm
6、删除用户xh以及用户主目录:userdel -r xh
7、usermod -g 用户组 用户名,将用户指定到某个组
细节说明:
1、当创建用户成功后,会自动创建和用户同名的家目录
2、也可以通过useradd -d 指定目录 新的用户名,给创建的用户指定家目录
3、查询用户信息:id root,当用户不存在时,返回“无此用户”;
linux系统运行级别的示意图
0:关机
1:单用户(找回丢失密码)
2:多用户无网络服务
3:多用户有网络服务
4:保留
5:图形界面
6:重启
常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字
切换到指定运行级别的指令
基本语法:init 012356
帮助指令:
main ls:获得ls命令的帮助信息
help ls:获得shell内置命令的帮助信息
文件目录类指令:
pwd:显示当前工作目录的绝对路径
ls:显示文件
-a:显示当前目录所有文件和目录,包括隐藏的
mkdir /home/dog:表示在/home目录下创建dog目录
mkdir -p /home/animal/tiger:在/homt目录下创建多级目录
rmdir /home/dog:删除的是空目录,如果目录下有内容时无法删除,如果要删除非空目录,rm -rf 要删除的目录
touch:touch hello.txt创建一个hello.txt空文件
cp aaa.txt bbb/:将当前目录的aaa.txt文件拷贝到当前目录的bbb这个目录
cp -r test/ zwj/:将当前目录的test文件夹复制到zwj文件下,注意当前目录位置,然后要准确的定位源目录和目标目录,
\cp -r test/ zwj/会强制覆盖
rm aaa.txt:删除文件,会提示是否删除(带上-f不会提示);
rm -rf bbb/:删除目录;
mv aaa.txt pig.txt :将当前文件夹的aaa.txt文件改名为pig.txt;
mv pig.txt /root/:将当前目录的pig.txt移动到/root/目录下;
cat -n /etc/profile | more,以cat指令打开文件,并分页显示,-n显示行号,为浏览方便一般会带上管道命令 |more;
less和more命令:less是一页一页加载;查看是enter为下一行,空格为下一页
ls -l a.txt:将ls显示的内容写入到a.txt中;
ls -al a.txt:将列表的内容追加到a.txt;
cat /etc/profile > c.txt:将文件profile内容覆盖到文件c.txt;
echo “内容” >> a.txt:将“内容”追加到a.txt上;
echo “内容” > a.txt:将“内容”覆盖到a.txt上;
cal >> /home/mycal:将日历信息追加到mycal
echo P A T H : 输 出 PATH:输出 PATH:输出PATH环境变量;
head -n 5 /etc/profile:显示文件前五行;
tail -n 5 文件:查看文件后五行;
In -s /root linkToRoot:建立一个软连接,连接到/root;
rm -ef linkToRoot:删除软连接;
history:查看已经执行过的历史命令,也可以执行历史指令
find /home -name hello.txt:按照文件名字查找 /home 文件下的hello.txt文件;
find /home -user nobody:查找/opt目录下,用户名称为nobody的文件;
find / -size +20M:查找这个系统下大于20m的文件(+n大于,-n小于,n等于);
find / -name *.txt:查找根目录下后缀名为txt的文件;
| -ni grep :grep过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理,-n显示行号,-i忽略大小写;
cat fileName|grep 查看文件,G到最底层,b和空格翻页
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
linux 权限和组管理:
用户配置文件(用户信息):/etc/passwd
口令配置文件(密码和登录信息,是加密):/etc/shadow
组配置问(组信息):/etc/group
查看文件的所有者:指令- ls -ahl
修改文件的所有者:chown 用户名 文件名
修改文件所在组:chgrp 组名 文件名
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组:usermod -g 组名 用户名
改变该用户登录的初始目录:usermod -d 目录名 用户名
文件类型:-普通文件 d:目录
软链接 c:字符设备【键盘,鼠标】
b:块文件,硬盘
rwx作用到文件
r:代表可读,可以被读取查看
w:代表可写,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录 有写权限,才能删除该文件
x:代表可执行,可以被执行
rwx作用到目录
r:代表可以读,可以读取,ls查看目录内容
w:代表可写,可以修改,目录内创建+删除+重命名目录
x:代表可执行,可以进入该目录
rwx可用数字来表示:r=4,w=2,x=1,因此rwx=7
通过chmod指令,可以修改文件或者目录的权限
第一种方式:+,-,=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u,g,o的总和)
1、给abc文件的所有者读写执行的权限,给所在组读执行的权限,给其他组读执行权限 chmod u=rwx,g=rx,o=rx abc
2、给abc文件的所有者除去执行的权限,增加组写的权限 chmod u-x,g+w abc
3、给abc文件的所有用户添加读的权限 chmod a+r abc
第二种方式:通过数字变更权限
1、将/home/abc.txt文件的权限修改成 rwxr-xr-x (rwxr-xr-x解析为u的权限未rwx, g的权限为r-x,o的权限为r-x) chmod 755 /homt/abc.txt
通过chown,改变文件所有者
1、请将/home/abc.txt文件的所有者修改成tom chown tom /home/abc.txt
2、请将/home/kkk 目录下所有的文件和目录的所有者都修改成tom(我们应该用root操作) chown -R tom kkk/
通过chgrp,改变文件所在组
1、请将/home/abc.txt文件的所在组修改成tom chgrp tom /home/abc.txt
2、请将/home/kkk 目录下所有的文件和目录的所在组都修改成tom chgrp -R tom kkk/
crond 任务调度
基本语法 crontab
常用选项:-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
分区:
windows分区
1、mbr分区:最多支持四个主分区
系统只能安装在主分区
扩展分区要占一个主分区
MBR最大只支持2TB,但拥有最好的兼容性
2、gtp分区:支持无限多个主分区(单操作系统可能限制,比如windows下最多128个分区)
最大支持18EB的大容量(EB=1024PB,PB=1024TB)
windows7 64位以后支持gtp
linux分区
原理介绍:1、linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分
2、linux采用了一种叫‘载入’的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
对应IDE硬盘,驱动器标识符为‘hdx’,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或者扩展分区,从5开始就是逻辑分区。例:hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
对于SCSI硬盘则标示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样
查看系统的分区和挂载的情况:lsblk -f或者 lsblk
如何增加一块硬盘
1、虚拟机添加硬盘
2、分区— fdisk/dev/sdb
3、格式化---- mkfs -t ext4 /dev/sdb1
4、挂载-----先创建一个 /home/newdisk,挂载 mount /dev/sdb1 /home/newdisk (重启后会失效),卸载 umount /dev/sdb1或者 umount /newdisk
5、设置可以自动挂载(永久挂载,当你重启系统,任然可以挂载到 /home/newdisk)。
vim /etc/fstab
/dev/sdb1 /home/newdisk ext4 defaults 0 0
查询系统整体磁盘使用情况
基本语法:df -h
查询指定目录的磁盘占用情况
基本语法:du -h /目录
-s:指定目录占用大小汇总
-h:带计量单位
-a:含文件
–max-depth=1 :子目录深度
-c:列出明细的同时,增加汇总值
例如:查询/opt 目录的磁盘占用情况,深度为1:du -ach --max-depth=1 /opt
1、统计/home文件夹下文件的个数
ls -l /home | grep "^-" | wc -l
2、统计/home 文件夹下目录的个数
ls -l /home | grep "^d" | wc -l
3、统计/home 文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep "^-" | wc -l
4、yum instal tree 安装tree指令,tree 命令以树状显示目录结构
给linux指定ip: vi /etc/sysconfig/network-scripts/ifcfg-eth0(eth0网卡的配置文件)
ifcfg-eth0文件说明:
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2X:6X:0X:XX #MAC地址
TYPE=Ethernet #网络类型(通常是Ethenet)
UUID=926ASDAD XXXXXXXXXXXXXXXXXX #随机ID
ONBOOT=yes #系统启动的时候网络接口是否有效(yes/no)
BOOTPROTO=static #ip的配置方法【none|static|bootp|dhcp】(引导时不使用协议|静态分配ip|BOOTP协议|DHCP协议)
IPADDR=192.168.184.130 #ip地址
GATEWAY=192.168.184.2 #网关
DNS1=192.168.184.2 #域名解析器,一般跟网关一样
重启网络服务或者重启系统生效
service network restart、reboot
查看当前主机名:hostname
修改linux的主机映射文件:
vim/etc/sysconfig/network文件中内容
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=hadoop100 //写入新的主机名
注意:主机名称不要有“_”下划线
linux进程:
1、在Linux中,每个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号
2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
3、每个进程都可能以两种方式存在。前台和后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则石实际在操作,但是由于屏幕上无法看到进程,通常使用后台方式执行。
4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
ps命令是用来查看目前系统中,有哪些正在执行,以及他们执行的状况,可以不加参数
ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
命令:ps -aux | more
参数:USER-----------------用户名
PID-------------------进程ID
CPU------------------占用的cpu(百分比)
MEM------------------占用内存(百分比)
VSZ--------------------占用虚拟内存(单位:KB)
RSS------------------使用物理内存情况(单位:KB)
TTY--------------------使用的终端
STAT-------------------进程状态(s-休眠,r-运行,z-僵死)
START-----------------启动时间
TIME--------------------占用CPU的总时间
COMMAND-----------进程执行时的命令行
要求:以全格式显示当前所有的进程,查看进程的父进程
命令:ps -ef
-e 显示所有进程,-f全格式
ps -ef | grep xxxx
UID-----用户ID
PID------进程ID
PPID-----父进程ID
C------CPU用于计算执行优先级的因子,数值越大,表明进程时CPU密集型运算,执行优先级会降低,数值越小,表明进程时I/O密集型运算,执行优先级会提高
STIME-----进程启动的时间
TTY----------完整的终端名称
TIME--------CPU时间
CMD--------启动进程所用的命令和参数
终止进程的命令kill 和killall
kill 进程号
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符)
-9:表示强迫进程立即停止
sshd:登录服务,端口22
bash:终端
pstree,显示进程树
-p:显示进程的pid
-u:显示进程的所属用户
Linux服务管理’
服务(service)本质就是进程,但是时运行在后台的,通常都会监听某个端口,等待其他进程序的请求,因此我们又称为守护进程。
service 服务名 start|stop|restart|reload|status,这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
在centos7.0后,不再使用service,而是systemctl
查看防火墙状态:service iptables status
通过windows 的telnet指令检查Linux的某个端口是否在监听,并且可以访问
指令:telnet ip 端口
/etc/init.d/ 列出系统有哪些服务
服务的运行级别:
查看或者修改默认级别:vi /etc/inittab
Linux系统有7种运行级别:常用的是级别3和5
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用户系统维护,禁止远程登录
运行级别2:多用户状态(NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机流程说明:开机→BIOS→/boot→init进程1→运行级别→运行级别对应的服务
通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
基本语法 :chkconfig --list 可以看见各个服务在各个运行级别下是否为自启动
chkconfig --list | grep 服务名 ------------筛选服务,查看服务自启动状态
chkconfig 服务名 --list ------------直接按照服务名查找
chkconfig --level 5 服务名 on/off --------修改服务在运行级别为5的情况下自启动或者关闭自启动
chkconfig iptables off -------------------在所有运行级别下,关闭防火墙(不带--level就是指所有级别)
使用细节:chkconfig 重新设置服务后自启动或关闭,需要重启机器reboot才能生效
动态监控进程
top与ps命令很相似,他们都是用来显示正在执行的进程,top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
top基本语法:-d 秒数:指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令
-i :使top不显示认为闲置或者僵死进程
-p :通过指定监控进程id来仅仅监控某个进程的状态
交互命令 q---退出
p---以cpu使用率排序,默认是此项
m---以内存的使用率排序
n----以pid排序
案例:监视特定用户------ 输入命令top,按回车,查看执行的进程,然后输入u,再输入用户名即可
终止指定的进程-----输入命令top,按回车,查看执行的进程,然后输入k,再输入要结束的进程id
指定系统状态更新的时间(每隔10秒自动更新,默认是3秒) -----top -d 10
查看系统的网络状况
基本语法:netstat
-an 按照一定顺序排列输出
-p 显示哪个进程调用
查看所有的网络服务:netstat -anp | more
查看单个服务的网络状态:netstat -anp | sshd
RPM包和YUM包
rpm包:一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有RPM扩展名的文件。
rpm包的简单查询指令:
查询已安装的rpm列表,rpm -qa | grep xx
一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:45.0.1-1
适用操作系统:el6.centos.x86_64-----表示centos6.x的64位系统,如果是i686、i386表示32位系统,noarch表示通用
rpm包的其它查询指令:
rpm -qa | more 查询所有分页显示
rpm -q 软件包名:查询软件包是否安装
rpm -qi 软件包名:查询软件包信息
rpm -ql 软件包名:查询软件包中的文件及位置
rpm -qf 文件全路径名:查询文件所属的软件包
卸载rpm包基本语法:rpm -e RPM包的名称,如果其他软件包依赖于要卸载的软件包,卸载时则会产生错误信息。如:rpm -e foo ,removing these packages would break depencies:foo is needed by bar-1.0.1,
如果我们就是要删除foo这个rpm包,可以增加参数–nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行。rpm -e --nodeps foo
安装rpm包的管理,基本语法:rpm -ivh RPM包名全路径名称,参数说明:i=install 安装,v=verbose提示,h=hash进度条
YUM是一个shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包(需要联网)
yum的基本指令:
安装指定的yum包:yum install xxx 下载安装
查询yum服务器是否有需要安装的软件:yum list | grep xxx软件列表
linux常用命令,至少6个(netstat、top、lsblk、ps、chkconfig)
linux查看内存:top
查看磁盘存储:df -lh
端口占用:netstat -tunlp
进程命令:ps -aux
io读写情况:iotop
yum仓库配置:
yum源文件repo配置文件位置:/etc/yum.repos.d/*.repo