1、常用网络管理命令 2、网络配置 3、修改主机名称 4、主机映射 5、防火墙 6、系统启动级别 7、用户和用户组 8、为用户配置sudoer权限 9、文件权限管理 10、打包和压缩
ifconfig:查看活动的网络接口信息
ifconfig etho up:启用etho接口
ifconfig etho down:禁用网卡
ping:测试网络的连接状态。
ping www.baidu.com 测试虚拟机是否连接上Internet
ping 192.168.72.1 测试虚拟机是否连接上宿主机
host:通过网站域名查看网站的ip。
host www.baidu.com
host www.jd.com
netstat:查看程序端口的占用情况。
netstat -a 列出所有端口,包括监听和未监听的;
netstat -at 列出所有TCP端口;
netstat -au 列出所有UDP端口;
netstat -nltp 查看正在监听的tcp协议的程序;("最常用")
上面这个代码可以“查看某个端口”,被某个pid占用了,然后我们可以通过端口找到这个
pid,然后杀死该进程,以便我们可以使用其他程序。eg: kill -9 2218 就可以把该进程杀死 。
操作如下(主要记住红色方框中几个重要参数):
测试网络连接状态:
通过网站域名查看网站的ip:
注意:没有安装虚拟机之前,没有VMnet1和VMnet8这两个虚拟网卡。只有一个有线网卡和一个无线网卡,这两个才是真实的物理网卡。
"通俗说:就是给电脑起名字。"
hostname:查看主机名。
hostname+名字:临时修改。
vim /etc/sysconfig/network:修改配置文件,永久修改。
打开配置文件,将HOSTNAME改为你想要的主机名,即可。
主机映射就是:域名与ip地址之间的映射关系。
"举例说明配置主机映射的含义"
我们访问百度的时候,经常使用的是www.baidu.com,这个表示的是百度网站的域名,其实我们本质上就是访问百度的ip,
但是ip不太容易记住,因此,就弄了一个www.baidu.com的域名与百度ip之间的主机映射关系。我们不仅可以通过ip访问百度,
还可以通过容易记住的域名www.baidu.com去访问百度。
这样的话宿主机既可以通过虚拟机ip访问虚拟机,还可以通过域名image_boundary 访问虚拟机(但是需要我们自己配置)。
"在windows中找到这个配置文件。"
C:\Windows\System32\drivers\etc\hosts
"打开hosts文件,在最后添加下面这行代码。"
192.168.2.110 image_boundary
在CMD黑窗口,分别使用虚拟机ip和域名访问虚拟机。出现下图,证明配置完成!
这样的话虚拟机既可以通过宿主机ip去访问宿主机,还可以通过域名win10去访问宿主机(需要我们自己配置)。
"在虚拟机中,使用vim命令打开这个配置文件。"
vim /etc/hosts
"在hosts文件中,添加下面这行代码。"
192.168.72.1 win10
在虚拟机命令行中,分别使用宿主机ip和域名,来访问宿主机。
示意图如下:
[root@image_boundary ~]# vim /etc/sysconfig/iptables
"使用service命令进行的操作,属于【暂时】打开、关闭防火墙。"
service iptables status 查看防火墙状态
service iptables start/restart 打开/重启防火墙
service iptables stop 关闭防火墙
"设置防火墙开机不自启,是常用的命令。"
chkconfig iptables on 开机自启
chkconfig iptables off 开机不自启
禁止SSH登陆(如果服务器在机房,一定要小心)
"关闭22端口 DROP表示删除,删除就是关闭"
iptables -D INPUT -p tcp --dport 22 -j DROP
"开放80端口 ACCEPT表示接受,接受就是开放"
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
总结:以后所有的后台服务的状态查看,服务启动,服务关闭,都是用"service 服务名 status" 进行操作。
七个启动级别,只需要记住3和5:"3"代表【无图形化界面】的启动级别;"5"代表【有图形化界面】的启动级别
[root@image_boundary ~]# runlevel
N 5
[root@image_boundary ~]# vim /etc/inittab
配置文件的内容如下:
"前面的内容都被我删了,因为是注释内容,没啥用。我们只看以下部分"
# Default runlevel. The runlevels used are:
"0代表关机,设置了这个启动级别,系统启动不起来了。"
// 因此,不要去设置这个启动级别。
# 0 - halt (Do NOT set initdefault to this)
"1表示单用户模式,设置了这个其他用户登陆不了。"
// linux特点本来是多用户的,因此不要设置这个1。
# 1 - Single user mode
"2表示没有网络的多用户启动级别。多用户还可以,没有网络肯定是不行的"
// 因此2也不要去设置。
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
"3没有图形界面的多用户启动级别,这个也是我们使用最多的。"
// 通常将默认启动级别设置为:3
# 3 - Full multiuser mode
"4代表没有使用。"
# 4 - unused
"5代表有图形界面的启动级别。"
# 5 - X11
"6代表重启,设置了这个启动级别,系统将无限重启。"
// 因此,不要去设置这个启动级别。
# 6 - reboot (Do NOT set initdefault to this)
"打开如下配置文件"
[root@image_boundary ~]# vim /etc/inittab
配置后如下:
修改启动级别以后,使用reboot命令重启才可生效。
[root@image_boundary ~]# reboot
配置之前的界面如图所示: 【有图形化界面】
配置之后的界面如图所示: 【无图形化界面】
上面七个红框的信息分别表示的含义如下:
-rw-r--r--:该文件的类型和权限信息,d代表是文件夹
1:链接数,如果是文件则是1,如果是文件夹则表示该文件夹下的子文件夹个数
第一个root:文件或者目录的所属者
第二个root:所属用户组
9:文件或者目录的大小,是目录的话一般都是4096
Sep 17 19:10:文件的最后编辑时间
aa.txt:表示文件或者目录,具体的文件类型是由该行最前面的那个符号表示
Linux用户分类:共有3类。
用户信息查看
"查看linux中所有的用户信息。"
[root@image_boundary ~]# cat /etc/passwd
"以配置文件中第一条root用户和最后一条自己创建的image用户,做详细说明"
root:x:0:0:root:/root:/bin/bash
image:x:500:500:image:/home/image:/bin/bash
用户名:密码占位符:用户UID:用户组GID:注释信息:家目录:用户默认使用shell
"查看root用户和普通用户的登陆密码(加密的密码),【了解就行】"
"系统用户不需要登陆密码。"
[root@image_boundary ~]# cat /etc/shadow
"下面就是root用户的密码。"
root:$6$7FW70Vsr3PbEbw0g$UMWirFujazK.N1sJCfwMl81DIpoGpmHjPJCKPKbYfjlCOlLQ5wa17orNE/TF.iqI
Linux用户组分类:共有3类。
用户组信息查看
"查看linux中所有的用户组信息。"
[root@image_boundary ~]# cat /etc/group
"以配置文件第一条root用户组和最后一条自己创建的image用户组,做详细说明"
root:x:0:
bin:x:1:bin,daemon // bin用户组中,有bin、daemon两个用户。
image:x:500: // image用户组中,没有其它用户,叫做【私有组】。
用户组名:用户组密码占位符:用户组id:用户组中的用户。
"密码信息使用如下命令,了解就行。"
[root@image_boundary ~]# cat /etc/gshadow
"注意:在创建普通用户的时候,一定记得使用passwd命令【设置登陆密码】"
"注意:每创建一个新用户,就会创建一个新的同名的用户组"
1)useradd + 用户名 创建新用户
2)passwd + 用户名 设置用户的登陆密码
3)usermod (-l:修改用户名 -G:修改用户组 -c:修改用户备注) 用户的修改
Ⅰusermod -l 新用户名 旧用户名
Ⅱusermod -G 指定的用户组名 用户名
Ⅲusermod -c "备注信息" 用户名
4)userdel -r + 用户名 用户删除
操作如下:
"创建一个hadoop用户"
[root@image_boundary ~]# useradd hadoop
"查看linux所有的用户信息。新创建的用户信息一般在最后一条。"
"查看linux所有的用户组信息。创建一个新用户,就会创建一个同名用户组。"
[root@image_boundary ~]# cat /etc/passwd
[root@image_boundary ~]# cat /etc/group
"给用户设置登陆密码。(如果你以后想要登陆该用户,最好操作这一步。)"
[root@image_boundary ~]# passwd hadoop
Changing password for user huangwei.
New password: ******
"修改用户名"
[root@image_boundary ~]# usermod -l spark hadoop
"给用户添加备注信息"
[root@image_boundary ~]# usermod -c "Hello" hadoop
"指定该用户,所属的组"
[root@image_boundary ~]# usermod -G hadoop spark
"删除用户"
[root@image_boundary ~]# userdel -r spark
注1:创建用户的时候,假如出现以下提示:表明你现在创建的用户名,和用户组里面的 某个用户组名重名了。你需要先删除那个同名的用户组,才可以创建该用户。
注2:创建用户的时候,不仅会创建此用户,还会创建一个和此用户同名的用户组。 这是创建的hadoop用户。
这是系统自动创建的同名的用户组。此时,里面没有用户,叫做私有组。
注3:用户添加备注信息:usermod -c “Hello” hadoop
注4:用户修改用户名:usermod -l spark hadoop
注5:用户分配到指定组中去:usermod -G hadoop spark
把spark分配到hadoop这个组中去。此时hadoopp由“私有组”变为“基本组”。
1)groupadd + 组名 创建新的用户组;
2)groupmod -n + 组重命名 修改用户组名;
3)groupdel + 组名 删除某个用户组;
4)gpasswd -a/-d + 用户组 用户组中,用户的添加与删除;
gpasswd -a 用户名 用户组 将某个用户添加到该用户组中;
gpasswd -d 用户名 用户组 将某个用户从该用户组中删除;
操作如下:
"创建新用户组:创建spark用户组"
[root@image_boundary ~]# groupadd spark
"用户组重命名:把spark改为storm"
[root@image_boundary ~]# groupmod -n storm spark
"删除用户组:删除storm用户组"
[root@image_boundary ~]# groupdel storm
"将某个用户添加到用户组中:将huangwei用户添加到hadoop组中"
[root@image_boundary ~]# gpasswd -a huangwei hadoop
Adding user huangwei to group hadoop
"将某个用户从用户组中移除:将huangwei用户从hadoop组中移除"
[root@image_boundary ~]# gpasswd -d huangwei hadoop
Removing user huangwei from group hadoop
举例说明:使用普通用户创建新用户,就会权力受限制。
"设置sudoers权限的配置文件在/etc/sudoers中"
[huangwei@image_boundary root]$ su root
Password: ******
[root@image_boundary ~]# vim /etc/sudoers
由于这个文件很长,使用查找命令快速定位到root:
"在vim编辑器中。在底行模式下输入以下命令,点击enter,就可以上下查找"
:/root
截取部分配置文件如下:此时还未添加任何东西。
修改配置文件:在root这一行下,为普通用户huangwei添加如下代码。
"配置完成后,一定要使用:wq!强制保存退出。"
root ALL=(ALL) ALL
huangwei ALL=(ALL) ALL
再切换到普通用户,使用如下命令:sudo useradd 用户名
"普通用户被赋予权限后,使用命令时,一定要在前面加一个【sudo】"
[root@image_boundary etc]# su huangwei
[huangwei@image_boundary etc]$ sudo useradd chenli
当赋予普通用户的权利用完以后,root管理员需要将权限收回来。
rwx权限对于“文件”和“文件夹”,有着不同的含义。
注意:对于文件 或 文件夹,去掉某个权限,有着不同的意义,但是这些仅仅是对“普通用户”起作用,root用户仍然是拥有所有权利。记住一句话:root用户就算你去掉了某些权限,对它并不起作用,它还是拥有所有的权限,以上操作仅对普通用户起作用。
第一种方式:使用+或-的方式修改权限。
chmod g-rw haha.dat // 表示将haha.dat对所属组的rw权限取消
chmod o-rw haha.dat // 表示将haha.dat对其他人的rw权限取消
chmod u+x haha.dat // 表示将haha.dat对所属用户的权限增加x
chmod a-x haha.dat // 表示将haha.dat对所用户取消x权限
注:a表示对所有用户执行某个操作。
第二种方式:可以用数字的方式来修改权限。
chmod 664 haha.dat
注:你可以把每一组rwx想象成一个三位的二进制数。有这个权限用1表示,没有用0表示。
下面举例说明:
rwx rwx rwx rw- rw- r--
二进制 111 111 111 110 110 100
十进制 7 7 7 6 6 4
注意:如果要将一个文件夹的所有内容权限统一修改,则可以-R参数。
"将文件夹aaa下的所有内容,统一执行某个权限。"
-R:使用此参数,可以将某个文件夹下所有内容的权限统一修改。
chmod -R 770 aaa/
操作如下:
[root@image_boundary Desktop]# cd File
[root@image_boundary File]# ll
total 8
-rw-r--r--. 1 root root 119 Oct 16 02:22 a.txt
-rw-r--r--. 1 root root 0 Oct 16 01:32 a.txt~
-rw-r--r--. 1 root root 15 Oct 15 23:36 file
[root@image_boundary File]# cd ..
// 针对当前用户,给File文件夹下的所有内容,添加一个可执行权限。
// 以前只有可读可写权限,数字为6,现在修改为7。
[root@image_boundary Desktop]# chmod -R 744 File/
[root@image_boundary Desktop]# cd File
[root@image_boundary File]# ll
total 8
-rwxr--r--. 1 root root 119 Oct 16 02:22 a.txt
-rwxr--r--. 1 root root 0 Oct 16 01:32 a.txt~
-rwxr--r--. 1 root root 15 Oct 15 23:36 file
// <只有root权限能执行>
chown angela aaa // 改变所属用户
chown :angela aaa // 改变所属组
chown angela:angela aaa/ // 同时改变,所属用户和所属组
操作如下:
[root@image_boundary Desktop]# ll
total 4
drwxr--r--. 2 root root 4096 Oct 16 02:36 File
// 将aa文件夹授权给huangwei这个用户
[root@image_boundary Desktop]# chown huangwei File
[root@image_boundary Desktop]# ll
total 4
drwxr--r--. 2 huangwei root 4096 Oct 16 02:36 File
// 将aa文件夹授权给huangwei这个用户组
[root@image_boundary Desktop]# chown :huangwei File
[root@image_boundary Desktop]# ll
total 4
drwxr--r--. 2 huangwei huangwei 4096 Oct 16 02:36 File
// 将文件夹aa,同时授权给huangwei这个用户,huangwei这个用户组
[root@image_boundary Desktop]# mkdir aa
[root@image_boundary Desktop]# ll
total 8
drwxr-xr-x. 2 root root 4096 Oct 17 09:15 aa
drwxr--r--. 2 huangwei huangwei 4096 Oct 16 02:36 File
[root@image_boundary Desktop]# chown huangwei:huangwei aa
[root@image_boundary Desktop]# ll
total 8
drwxr-xr-x. 2 huangwei huangwei 4096 Oct 17 09:15 aa
drwxr--r--. 2 huangwei huangwei 4096 Oct 16 02:36 File
压缩和解压缩
“注意:压缩后,原文件没了,只有压缩文件。使用原文件,需要再解压缩。”
压缩:gzip aa.txt // 压缩后,后缀名叫做gz。
解压缩:gzip -d aa.txt.gz
压缩:bzip2 bb.txt // 压缩后,后缀名叫做bz2。
解压缩:bzip2 -d bb.txt.bz2
操作如下:
注意:也许你会注意到,上面代码对aa.txt进行压缩后,文件怎么还变大了,因为这个一个空文件(小文件),压缩的时候肯定会添加一些东西,因此看着空间大小还变大了,因为小文件,进行文件压缩体现不出好处。当文件很大时,压缩效果才会得以体现。
还有一个注意点:多个文件不能“压缩”到一个文件中。除非是你把他们事先移动到同一个文件夹中,在进行压缩。多个文件只能“打包”到同一个文件中。
打包和解包
语法:tar -cvf 打包名 文件列表
例如:tar -cvf a.tar aa.txt bb.txt
操作如下:
语法:tar -xvf 打包名
例如:tar -xvf a_b.tar
注:先删除aa.txt和bb.txt原文件,再进行解包。
注:解包后并删除原打包文件。
语法:tar -zcvf 打包并压缩文件名 文件列表
例如:tar -zcvf a_b.tar.gz a.txt b.txt
操作如下:
语法:tar -zxvf 打包并压缩文件名 -C 解包解压缩后的存放路径
例如:tar -zxvf a_b.tar.gz -C File/
操作如下: