centos镜像地址
网易镜像: http://mirrors.163.com/centos/7/isos/
搜狐镜像: http://mirrors.sohu.com/centos/7/isos/
安装请看上篇
Linux系统中一切皆文件
Linux目录结构
一、vi,vim
VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
1、测试数据准备
1)拷贝/etc/profile 数据到/root目录下
cp /etc/profile /root
语法 功能描述
yy 复制光标当前一行
y数字y 复制一段(从第几行到第几行)
p 箭头移动到目的行粘贴
u 撤销上一步
dd 删除光标当前行
d数字d 删除光标(含)后多少行
x 剪切一个字母,相当于del
X 剪切一个字母,相当于Backspace
yw 复制一个词
dw 删除一个词
shift+6(^) 移动到行头
shift+4 ($) 移动到行尾
1+shift+g 移动到页头,数字
shift+g 移动到页尾
数字+shift+g 移动到目标行
注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式
你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。
按键 功能
i 当前光标前
a 当前光标后
o 当前光标行的下一行
I 光标所在行最前
A 光标所在行最后
O 当前光标行的上一行
ESC 退出编辑模式
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!
命令 功能
:w 保存
:q 退出
:! 强制执行
/要查找的词 n 查找下一个,N 往上查找
:noh 取消高亮显示
:set nu 显示行号
:set nonu 关闭行号
:%s/old/new/g 替换内容 /g 替换匹配到的所有内容
二、网络配置和系统管理操作(重点)
1)查看虚拟网络编辑器
2)修改虚拟网卡Ip,如图所示
3)查看网关
4)查看windows环境的中VMnet8网络配置
5)配置网络ip地址
ifconfig (功能描述:显示所有网络接口的配置信息)
(1)查看当前网络ip
ifconfig
6)测试网络连通性
ping www.baidu.com
7)修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
以下修改,有值的按照下面的值修改,没有该项的要增加。
TYPE="Ethernet" #网络类型(通常是Ethemet)
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #IP的配置方法[none|static|bootp|dhcp](引导时不 使用协议|静态分配IP|BOOTP协议|DHCP协议)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e83804c1-3257-4584-81bb-660665ac22f6" #随机id
DEVICE="ens33" #接口名(设备,网卡)
ONBOOT="yes" #系统启动的时候网络接口是否有效(yes/no)
#IP地址
IPADDR=192.168.1.100
#网关
GATEWAY=192.168.1.2
#域名解析器
DNS1=192.168.1.2
8)执行service network restart 重启网络
service network restart
9)配置主机名称
#查看当前主机名称
hostname
#修改主机名称
vi /etc/hostname
修改完成后重启生效。
10)修改hosts映射文件
修改linux的主机映射文件(hosts文件)
后续在hadoop阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置,
比较简单方便。 不用刻意记ip地址。`
vim /etc/hosts
#添加如下内容
192.168.2.100 hadoop100
192.168.2.101 hadoop101
192.168.2.102 hadoop102
192.168.2.103 hadoop103
192.168.2.104 hadoop104
192.168.2.105 hadoop105
11)修改windows的主机映射文件(hosts文件)
(1)进入C:\Windows\System32\drivers\etc路径
(2)打开hosts文件并添加如下内容
192.168.2.100 hadoop100
192.168.2.101 hadoop101
192.168.2.102 hadoop102
192.168.2.103 hadoop103
192.168.2.104 hadoop104
192.168.2.105 hadoop105
12)关闭防火墙
centos6版本(了解)
service 服务名 start | stop | restart | status
查看服务的方法:/etc/init.d/服务名 ,发现只有两个服务保留在service
chkconfig (功能描述:查看所有服务器自启配置)
chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list (功能描述:查看服务开机启动状态)
systemctl (CentOS 7版本-重点掌握)
systemctl start | stop | restart | status 服务名
查看服务的方法:/usr/lib/systemd/system
(1)查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld
(2)停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld
(3)启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld
(4)重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalld
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
(1)开启/关闭iptables(防火墙)服务的自动启动
[root@hadoop100 桌面]# systemctl enable firewalld.service
[root@hadoop100 桌面]# systemctl disable firewalld.service
常用快捷键 功能
ctrl + c 停止进程
ctrl+l 清屏;彻底清屏是:reset
ctrl + q 退出
善于用tab键 提示(更重要的是可以防止敲错)
上下键 查找执行过的命令
ctrl +alt linux和Windows之间切换
13)linux常用命令
(1)显示当前工作目录的绝对路径
[root@hadoop101 ~]# pwd
(2)查看当前目录的所有内容信息
[root@hadoop101 ~]$ ls -al
(3)使用绝对路径切换到root目录
[root@hadoop101 ~]# cd /root/
(4)使用相对路径切换到“公共的”目录
[root@hadoop101 ~]# cd 公共的/
(5)表示回到自己的家目录,亦即是 /root 这个目录
[root@hadoop101 公共的]# cd ~
(6)cd- 回到上一次所在目录
[root@hadoop101 ~]# cd -
(7)表示回到当前目录的上一级目录,亦即是 “/root/公共的”的上一级目录的意思;
[root@hadoop101 公共的]# cd ..
(8)创建一个目录
[root@hadoop101 ~]# mkdir xiyou
[root@hadoop101 ~]# mkdir xiyou/mingjie
(9)创建一个多级目录
[root@hadoop101 ~]# mkdir -p xiyou/dssz/meihouwang
(10)删除一个空的文件夹
[root@hadoop101 ~]# rmdir xiyou/dssz/meihouwang
(11)创建文件
[root@hadoop101 ~]# touch xiyou/dssz/sunwukong.txt
(12)复制文件
[root@hadoop101 ~]# cp xiyou/dssz/suwukong.txt xiyou/mingjie/
(13)递归复制整个文件夹
[root@hadoop101 ~]# cp -r xiyou/dssz/ ./
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不提示用于进行确认。
-v 显示指令的详细执行过程
(14)删除目录中的内容
[root@hadoop101 ~]# rm xiyou/mingjie/sunwukong.txt
(15)递归删除目录中所有内容
[root@hadoop101 ~]# rm -rf dssz/
(16)重命名
[root@hadoop101 ~]# mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt
(17)移动文件
[root@hadoop101 ~]# mv xiyou/dssz/houge.txt ./
(18)查看文件内容并显示行号
[atguigu@hadoop101 ~]$ cat -n houge.txt
(19)采用more查看文件
[root@hadoop101 ~]# more smartd.conf
空白键 (space) 代表向下翻一页;
Enter 代表向下翻『一行』;
q 代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
(20)采用less查看文件
[root@hadoop101 ~]# less smartd.conf
(21)输出控制台
echo “hello\tworld”
hello\tworld
echo -e “hello\tworld”
-e转换符号
(22)查看文件的头2行
[root@hadoop101 ~]# head -n 2 smartd.conf
(23)查看文件尾1行内容
[root@hadoop101 ~]# tail -n 1 smartd.conf
(24)实时追踪该档的所有更新
[root@hadoop101 ~]# tail -f houge.txt
(25)将ls查看信息写入到文件中
[root@hadoop101 ~]# ls -l>houge.txt
(26)将ls查看信息追加到文件中
[root@hadoop101 ~]# ls -l>>houge.txt
(27)采用echo将hello单词追加到文件中
[root@hadoop101 ~]# echo hello>>houge.txt
(28)创建软连接
[root@hadoop101 ~]# mv houge.txt xiyou/dssz/
[root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi
[root@hadoop101 ~]# ll
lrwxrwxrwx. 1 root root 20 6月 17 12:56 houzi -> xiyou/dssz/houge.txt
(29)删除软连接(注意不要写最后的/)
[root@hadoop101 ~]# rm -rf houzi
(30)进入软连接实际物理路径
[root@hadoop101 ~]# ln -s xiyou/dssz/ ./dssz
[root@hadoop101 ~]# cd -P dssz/
(31)查看已经执行过的历史命令
[root@hadoop101 test1]# history
(32)显示当前时间信息
[root@hadoop101 ~]# date
2017年 06月 19日 星期一 20:53:30 CST
(33)显示当前时间年月日
[root@hadoop101 ~]# date +%Y%m%d
20170619
(34)显示当前时间年月日时分秒
[root@hadoop101 ~]# date "+%Y-%m-%d %H:%M:%S"
(35)显示前一天
[root@hadoop101 ~]# date -d '1 days ago'
2017年 06月 18日 星期日 21:07:22 CST
(36)显示明天时间
[root@hadoop101 ~]#date -d '-1 days ago'
(37)设置系统当前时间
[root@hadoop101 ~]# date -s "2017-06-19 20:52:18"
(38)查看当前月的日历
[root@hadoop101 ~]# cal
(39)查看2017年的日历
[root@hadoop101 ~]# cal 2017
(40)添加一个用户
[root@hadoop101 ~]# useradd zhangsan
[root@hadoop101 ~]#ll /home/
(41)设置用户的密码
[root@hadoop101 ~]# passwd zhangsan
(42)查看用户是否存在
[root@hadoop101 ~]#id zhangsan
(43) 查看创建了哪些用户
cat /etc/passwd
(44)切换用户
[root@hadoop101 ~]#su zhangsan
[root@hadoop101 ~]#echo $PATH
[root@hadoop101 ~]#exit
[root@hadoop101 ~]#su - zhangsan
[root@hadoop101 ~]#echo $PATH
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
(45)删除用户但保存用户主目录
[root@hadoop101 ~]#userdel tangseng
[root@hadoop101 ~]#ll /home/
(46)删除用户和用户主目录,都删除
[root@hadoop101 ~]#useradd zhubajie
[root@hadoop101 ~]#ll /home/
[root@hadoop101 ~]#userdel -r zhubajie
[root@hadoop101 ~]#ll /home/
(47)显示自身用户名称
[root@hadoop101 opt]# whoami
(48)显示登录用户的用户名
[root@hadoop101 opt]# who am i
whoami (功能描述:显示自身用户名称)
who am i (功能描述:显示登录用户的用户名以及登陆时间)
(49)sudo 设置普通用户具有root权限
[root@hadoop101 ~]#vi /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zhangsan ALL=(ALL) ALL
或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zahngsan ALL=(ALL) NOPASSWD:ALL
(50)用普通用户在/opt目录下创建一个文件夹
[zhangsan@hadoop101 opt]$ sudo mkdir module
[root@hadoop101 opt]# chown zhangsan:zhangsan module/
(51)将用户加入到用户组
[root@hadoop101 opt]# usermod -g root zhubajie
(52)添加一个xitianqujing组
[root@hadoop101 opt]#groupadd xitianqujing
(53)删除xitianqujing组
[root@hadoop101 opt]# groupdel xitianqujing
(54)修改zhangsan组名称为zhangsan1
[root@hadoop101 ~]#groupadd zhangsan1
[root@hadoop101 ~]# groupmod -n zhangsan1 zhangsan
(55)查看有哪些组
root@hadoop101 atguigu]# cat /etc/group
三、文件权限
1)如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
(1)0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
d 代表目录
l 链接文档(link file);
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User
(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group
(4)第7-9位确定其他用户拥有该文件的权限 —Other
2)rxw作用文件和目录的不同解释
(1)作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
(2)作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
chmod 改变文件权限
(1)修改文件使其所属主用户具有执行权限
[root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./
[root@hadoop101 ~]# chmod u+x houge.txt
(2)修改文件使其所属组用户具有执行权限
[root@hadoop101 ~]# chmod g+x houge.txt
(3)修改文件所属主用户执行权限,并使其他用户具有执行权限
[root@hadoop101 ~]# chmod u-x,o+x houge.txt
(4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop101 ~]# chmod 777 houge.txt
(5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop101 ~]# chmod -R 777 xiyou/
chown 改变所有者
(1)修改文件所有者
[root@hadoop101 ~]# chown zhansan houge.txt
(2)递归改变文件所有者和所有组
[root@hadoop101 xiyou]# chown -R zhangsan:zhangsan xiyou/
chgrp 改变所属组
[root@hadoop101 ~]# chgrp root houge.txt
find查找
(1)按文件名:根据名称查找/目录下的filename.txt文件。
[root@hadoop101 ~]# find xiyou/ -name *.txt
(2)按拥有者:查找/opt目录下,用户名称为-user的文件
[root@hadoop101 ~]# find xiyou/ -user zhangsan
(3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)
[root@hadoop101 ~]find /home -size +204800
locate快速定位文件路径
#由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
(1)查询文件夹
[root@hadoop101 ~]# updatedb
[root@hadoop101 ~]#locate tmp
grep 过滤查找及“|”管道符
(1)查找某文件在第几行
[root@hadoop101 ~]# ls | grep -n test
压缩解压缩
(1)压缩 houge.txt 和bailongma.txt,压缩后的名称为mypackage.zip
[root@hadoop101 opt]# touch bailongma.txt
[root@hadoop101 ~]# zip mypackage.zip houge.txt bailongma.txt
adding: houge.txt (stored 0%)
adding: bailongma.txt (stored 0%)
[root@hadoop101 opt]# ls
houge.txt bailongma.txt mypackage.zip
(2)解压 mypackage.zip
[root@hadoop101 ~]# unzip mypackage.zip
Archive: houma.zip
extracting: houge.txt
extracting: bailongma.txt
[root@hadoop101 ~]# ls
houge.txt bailongma.txt mypackage.zip
(3)解压mypackage.zip到指定目录-d
[root@hadoop101 ~]# unzip mypackage.zip -d /opt
[root@hadoop101 ~]# ls /opt/
tar压缩解压缩
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
-C 解压到指定目录
(1)压缩多个文件
[root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt
houge.txt
bailongma.txt
[root@hadoop101 opt]# ls
houma.tar.gz houge.txt bailongma.txt
(2)压缩目录
[root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt
(3)解压到当前目录
[root@hadoop101 ~]# tar -zxvf houma.tar.gz
(4)解压到指定目录
[root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt
[root@hadoop101 ~]# ll /opt/
磁盘分区
(1)查看磁盘使用情况
[root@hadoop101 ~]# df -h
挂载、卸载
(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
5)设置开机自动挂载
[root@hadoop101 ~]# vi /etc/fstab
进程线程类
选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 显示没有终端的进程
)ps -aux显示信息说明
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
查看进程的CPU占用率和内存占用率
[root@hadoop101 datas]# ps aux
查看进程的父进程ID
[root@hadoop101 datas]#ps -ef
(1)杀死浏览器进程
[root@hadoop101 桌面]# kill -9 5102
(2)通过进程名称杀死进程
[root@hadoop101 桌面]# killall firefox
(1)显示进程pid
[root@hadoop101 datas]# pstree -p
(2)显示进程所属用户
[root@hadoop101 datas]# pstree -u
查看健康
[root@hadoop101 atguigu]# top -d 1
[root@hadoop101 atguigu]# top -i
[root@hadoop101 atguigu]# top -p 2575
netstat 显示网络统计信息和端口占用情况
(1)通过进程号查看该进程的网络信息
[root@hadoop101 hadoop-2.7.2]# netstat -anp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp 0 0 192.168.202.100:22 192.168.202.1:57741 ESTABLISHED 3380/sshd: root@pts
tcp 0 52 192.168.202.100:22 192.168.202.1:57783 ESTABLISHED 3568/sshd: root@pts
tcp 0 0 192.168.202.100:22 192.168.202.1:57679 ESTABLISHED 3142/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 951/sshd
unix 2 [ ] DGRAM 39574 3568/sshd: root@pts
unix 2 [ ] DGRAM 37452 3142/sshd: root@pts
unix 2 [ ] DGRAM 48651 3380/sshd: root@pts
unix 3 [ ] STREAM CONNECTED 21224 951/sshd
(2)查看某端口号是否被占用
[root@hadoop101 桌面]# netstat -nltp | grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1324/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp6 0 0 :::22 :::* LISTEN 951/sshd
四、软件包管理
(1)查询firefox软件安装情况
[root@hadoop101 Packages]# rpm -qa |grep firefox
firefox-45.0.1-1.el6.centos.x86_64
(2)卸载firefox软件
[root@hadoop101 Packages]# rpm -e firefox
-i -i=install,安装
-v -v=verbose,显示详细信息
-h -h=hash,进度条
--nodeps --nodeps,不检测依赖进度
(3)安装firefox软件
[root@hadoop101 Packages]# pwd
/run/media/root/CentOS 7 x86_64/Packages
[root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
YUM的常用命令
1)安装wget, wget用来从指定的URL下载文件
[root@hadoop101 ~] yum install wget
2)在/etc/yum.repos.d/目录下,备份默认的repos文件,
[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base
.repo.backup
3)下载网易163或者是aliyun的repos文件,任选其一,如图8-2
[root@hadoop101 yum.repos.d] wget
http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云
[root@hadoop101 yum.repos.d] wget
http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易163
4)使用下载好的repos文件替换默认的repos文件
例如:用CentOS7-Base-163.repo替换CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo
5)清理旧缓存数据,缓存新数据
[root@hadoop101 yum.repos.d]#yum clean all
[root@hadoop101 yum.repos.d]#yum makecache
yum makecache就是把服务器的包信息下载到本地电脑缓存起来
6)测试
[root@hadoop101 yum.repos.d]# yum list | grep firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
五、常见问题解决方案
1)虚拟化支持异常情况如下几种情况
问题原因:宿主机BIOS设置中的硬件虚拟化被禁用了
解决办法:需要打开笔记本BIOS中的IVT对虚拟化的支持
六、总结题目
问题:Linux常用命令
参考答案:find、df、tar、ps、top、netstat等。(尽量说一些高级命令)```
问题:Linux查看内存、磁盘存储、io 读写、端口占用、进程等命令
答案:
1、查看内存:top
2、查看磁盘存储情况:df -h
3、查 看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序)
4、查看端口占用情况:netstat -tunlp | grep 端口号
5、查看进程:ps -aux