作者:codejiwei
日期:2020-09-28
-
注意:这里的硬盘分区这里比之前的ubuntu系统多了一个200M左右挂载在/boot的分区。
-
另外:自定义系统软件的时候,除了基本系统内的:基本、兼容程序库;应用程序内的:互联网浏览器;中文语言支持;桌面(正式开发不用),其他的所有都不选。
-
然后:去掉重新引导界面的Kdump。
-
联网:设置网络为自动连接。
-
最后:安装VMTools,作用是:虚拟机显示优化和调整,方便虚拟机和本机的交互,拖放文件、鼠标切换等
-
点击安装VMware Tools
-
将压缩文件拖拽到桌面,解压到此处
-
终端内运行vmware-install.pl,然后一直回车即可
-
- 设置共享文件夹,可以通过/mnt/hgfs/centos2-share-window此路径链接到window下目录。
-
网络配置方式:
-
桥接模式
- 好处是:大家都在同一网段,相互可以通讯
- 缺点是:因为ip地址有限,可能造成ip冲突
-
Nat网络地址转换模式
- 好处是:虚拟机不占用其他的ip,所以不会ip冲突
- 缺点是:内网的其他人不能和虚拟机通讯
-
主机模式
单独的一台电脑
-
- Xshell5
- SecureCRT
- Xftp5
- FileZilla
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pn4clJi8-1601865733388)(F:CopyFileMarkDown学习LinuxCentOS.assets1596080583774.png)]
①etc目录常用文件
/etc/passwd 用户信息
/etc/group 组信息
/etc/inittab 当前运行级别
/etc/sysconfig/network-scripts/ifcfg-eth0 网络配置文件
/etc/sysconfig/network 主机映像文件
②dev目录
/dev/sdb1 硬盘分区
-
正常模式
在正常模式下,可以使用快捷键
-
插入模式
也叫编辑模式,输入i和o等
-
命令行模式
可以通过命令,完成读取、退出、替换等操作
保存退出:wq
强制保存退出:wq!
-
快捷键使用:
-
拷贝当前行yy
-
拷贝当前行向下的5行,5yy
-
粘贴:p
-
删除当前行:dd
-
删除当前行向下的5行:5dd
-
删除单个元素x 相当于delete;X相当于Backspace
-
撤销操作:u
-
快速定位到尾行:G
-
快速定位到首行:gg或1G
-
将光标移动到20行:20 shift +g 或 20 G
-
查找某个单词: /查找内容,输入n是查找下一个
-
设置文件的行号::set nu
-
取消文件的行号::set nonu
-
①关机
- 立即关机:shutdown -h now
- 1分钟后关机:shutdown -h 1
- 立即关机:halt
②重启
- 重启:shutdown -r now
- 重启:reboot
③sync指令
- 把内存的数据写入磁盘,防止数据丢失
④用户登录注销
- 注销:logout,在图形界面无效,远程操作有效
- 切换用户:su +用户名
- 用户和组的概念
root - root组
hadoop - hadoop组(默认创建用户就自动生成了一个该用户的组)
- 家目录概念
用户登录的时候会自动进入自己的家目录:/home/hadoop
①添加用户
必须是管理员权限才能添加删除用户操作。
- useradd [选项] 用户名
- useradd -d /home/tiger hadoop 将用户的家目录指定放到/home/tiger目录
前提是:在/home/下不能存在tiger这个目录
②删除用户
- userdel -r hadoop
删除用户同时删除/home/下的hadoop这个用户的家目录。
- userdel hadoop
这样只是删除了hadoop这个用户,但是不会同时删除/home/下的hadoop文件
- 注意:一般也不会删除用户文件
③指定修改密码
- passwd+用户名
④查询用户信息
- id + 用户名
⑤查看当前是哪个用户
- whoami
查看当前登录的账号是谁
-
who am i
-
查看所有的用户或者组信息
cat /etc/passwd 查看用户
cat /etc/group 查看所有组
⑥切换用户su
[root@hadoop101 ~]#su codejiwei
⑦设置普通用户root权限
- 创建组
groupadd +组名
- 删除组
groupdel +组名
- 添加用户的时候直接指定组
useradd -g 用户组 用户名
- 修改用户所在组
usermod -g 用户组 用户名
用户配置文件(用户信息):/etc/passwd
组配置文件(组信息):/etc/group
口令配置文件(密码和登录信息,是加密的):/etc/shadow
①运行级别说明
-
0 :关机
-
1 :单用户 [类似安全模式, 这个模式可以帮助找回root密码]
-
2:多用户状态没有网络服务
-
3:多用户状态有网络服务 [使用最多]
-
4:系统未使用保留给用户
-
5:图形界面 【】
-
6:系统重启
②查看当前的运行级别
③指定运行级别
面试题
- 如何找回root密码?
启动时->快速输入enter->输入e-> 进入到编辑界面-> 选择中间有kernel 项->输入e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入enter->输入b [boot]-> 进入到单用户模式 【这里就可以做补救工作】
- 我的理解是?那岂不是谁都可以修改root密码?
解:这种方式修改root密码不能远程登录修改,只能在机房里,手里拿着机器才能修改,所以默认这台电脑就是你的。
①帮助指令
- man 获得帮助信息
- help 帮助文档
②文件目录类
-
pwd 显示当前工作目录的绝对路径
-
ls 显示当前路径的文件或目录
- ls -a 显示隐藏的文件
- ls -l 以长列表的形式显示信息
-
cd 切换路径
-
mkdir 创建目录
- mkdir -p /home/hadoop 创建多级目录
-
rmdir 删除目录,不能删除非空的目录
- 其实就等于rm -r /home/hadoop = rmdir /home/hadoop
-
rm 删除文件,
- rm -rf /home/hadoop 可以删除非空的目录
-
touch 创建空文件
- touch hello.txt
- touch hello1.txt hello2.txt
-
cp 拷贝指令
- cp -r 递归复制整个文件夹
- cp -r 强制复制 不提示信息
-
rm 移除文件或目录
- rm -r 删除整个文件夹
- rm -f 强制删除不提示
-
cat 查看文件内容
- cat -n 显示行号查看文件内容
- cat -n /etc/profile | more 通常和more一起使用 分页显示
-
more 文本过滤器☆
- 空格键 :翻页
- enter:一行一行
- ctrl + B :上一页
-
less 分页显示★ 按q退出
-
输出重定向>
- ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
- cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
-
追加>>
- ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
- echo “内容”>> 文件
-
echo 输出内容到控制台
-
echo $PATH 输出当前环境变量
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
-
-
head 显示文件的前几行
- head -5 file.txt
- 默认显示前10行
-
tail 显示文件的后几行
- tail -5 /etc/profile
- tail -f /etc/profile 实时追踪该文档的所有更新,工作中经常使用
- 案例:实时监控info.txt文件,该文件有变化时,实时就能看到!
-
ln 软连接、符号连接指令
切换到软连接的真实目录:
-
ln -s 链接目的路径 软连接名称
-
相当于windows系统的快捷方式,主要存放了链接其他文件的路径
-
案例1:在/home目录下创建一个linkToRoot,链接到/root目录
这个时候进入到linkToRoot会自动进入到/root路径下,但是用pwd查看当前路径还是:/home/linkToRoot
-
删除软连接:rm -r linkToRoot
注意不能这样删除linkToRoot/;否则会出现资源忙现象。
-
-
history 查看执行过的历史指令,也可以执行历史指令
-
后10条指令
-
执行历史编号为n的指令
-
③时间日期类
- date 显示当前日期和时间
-
显示年月日:
-
显示年月日时分秒
-
设置日期
-
案例:设置当前时间为:2020-11-11 11:11:11
-
-
cal 显示当前日历
- 显示一年的日历
④搜索查找类
-
find 【搜索范围】 【选项】
-
案例1:按文件名,根据名称查找/home目录下的hello.txt文件
-
案例2:按照拥有者查找:查找/opt目录下,用户名称为root的文件
-
案例3:查找大小范围:查找整个系统下大于20m的文件(+n 大于 -n 小于 n 等于)
-
按照通配符去查找:查找/home 下所有的.txt文件
-
-
locate 快速定位文件路径
-
第一步:创建locate数据库:updatedb
-
第二部:查找hello.txt文件
-
-
grep指令和管道符号|
⑤压缩解压缩
-
gzip和gunzip
适合单文件压缩,解压后源文件不保留
- gzip用于压缩文件
- 压缩后不会保留原来的文件。
- gunzip 解压缩文件
- 案例:gzip压缩,将/home下的hello.txt文件进行压缩,然后再解压
-
zip和unzip
-
tar 打包指令(最常用!)
-
打包:tar -zcf home.tar.gz /home
将/home文件打包成home.tar.gz文件
-
解压:tar -zxf home.tar.gz /home
将home.tar.gz文件解压到/home文件下
-
①组管理
- 文件详细信息
- 修改文件所有者
- chown 新的文件所有者名 文件名称
但是可以看到上面的组还是root,下面就修改文件所在组。
一般就用chown atguigu:atguigu 文件名 同时修改文件所有者和所在组
-
修改文件所在组
-
chgrp 要改为的新的组名 文件名
-
-
修改用户的所在组(前面第8节也有)
- usermod -g 要改到的组名 用户名
②文件详细信息
(5)文件的话是1;目录的话是里面有几个子目录
(6)文件的话是多少个字节;目录的话都是4096
③权限管理
对文件进行权限的管理操作:
-
修改文件的所有者(上面也讲过了!)
-
chown 新的文件所有者 文件名
-
chown -R 新的文件所有者 目录名
-R 可以递归的将整个目录下的所有文件的所有者都修改为新的用户
-
-
修改文件的所有组(上面也讲过了!)
-
chgrp 新的组 文件名
-
chgrp -R 新的组 目录名
这样就将整个目录下的所有文件的组修改成新的组了!
-
①任务调度(定时任务)
系统在某个时间执行特定的命令或程序
-
crontab[选项]
- crontab -e 编辑crontab定时任务
- crontab -r 删除当前用户的所有crontab任务
- crontab -l 查询crontab任务
-
任务调度文件:/etc/crontab
-
参数说明:
②应用案例(案例2-3为正规写法)
-
每分钟都执行ls -l /etc/ > /tmp/to.txt
每分钟都将/etc目录下的信息写入到/tmp/to.txt文件
输入crontab -e后需要输入 指令:*/1 * * * * ls -l /etc/ > /tmp/to.txt
查看定时任务:
-
案例2:每隔1分钟,就将当前的时间和日期,追加到 /tmp/mydate.log 文件中。
首先用vim创建一个/home/mydate.sh的文件,在里面编辑要执行的操作:
然后,将.sh文件修改成可执行文件
最后,给mydate.sh可执行文件创建定时任务
-
案例3:每天凌晨2:00将mysql数据库testdb,备份到文件backdb.txt
首先用vim创建一个backupdb.sh文件,在里面编辑要执行的操作
然后,将.sh文件修改为可执行文件chmod 744 backupdb.sh
最后,为backupdb.sh创建定时任务
①分区的基础知识(了解)
- mbr分区;gtp分区
②Linux分区
-
硬盘分类:
- IDE硬盘:”hdx~“ :”hd“表示IDE硬盘;”x“表示盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘);“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。
- SCSI硬盘:“sdx~”
-
lsblk -f 查看系统的分区和挂载情况
- lsblk 查看系统分区、挂载情况、大小
③案例:添加新硬盘
-
添加一块硬盘1G,设置中添加硬盘即可‘
-
重启服务器reboot
lsblk
-
给sdb硬盘分区
fdisk /dev/sdb
分区:m查看命令列表
n 新增分区
p 显示磁盘分区,然后选1
回车 默认全部剩余时间
w 写入并退出
-
格式化sdb1
mkfs -t ext4 /dev/sdb1 (格式化为ext4文件格式)
-
挂载sdb1
mount /dev/sdb1 /home/newdisk (挂载到/home/newdisk) 注意此时不要在newdisk文件下
-
-
上面的方式,只是临时挂载,重启系统挂载消失,配置Linux分区表,实现自动挂载
vim /etc/fstab
-
卸载:umount 设备名 | 挂载路径
umount /dev/sdb1
①df命令
- 查看整个磁盘的使用情况
-h表示带计量单位:K M G等
②目录占用情况du指令
查看指定目录的各个文件夹的磁盘占用情况。!!!
-
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
-
应用实例:查询 /usr目录的磁盘占用情况,深度为1
③工作使用指令
-
统计/home文件夹下文件的个数
-
统计/home文件夹下目录的个数
-
统计/home文件夹下文件的个数,包括子文件夹里的
-
统计/home文件夹下目录的个数,包括子文件夹里的
-
以树状显示home目录结构
①Linux网络配置原理图
②查看网络ip和网关
- 可以修改虚拟机vmnet8虚拟网卡ip
- 查看网关
③网络环境配置
-
自动连接:Linux系统界面网络右键,编辑连接,选上自动连接。下次即可自动连接网络。
这样有一个缺点:Linux启动后会自动获取ip,IP可能不一样,这样就不适用于做服务器!因为服务器ip是固定的!!
-
指定固定的ip:
修改配置文件来指定ip,并可以连接到外网。
在ifcfg-eth0这个文件内进行修改:
④修改主机名
- id 查看当前用户的id信息,组信息等
- whoami 查看当前用户
- who am i 查看登录的信息
- hostname 查看主机名
/etc/sysconfig/network 这是主机名!可以在这可以修改主机名!
⑤主机映像文件
/etc/hosts 修改这个文件就能成功ping通了!!!
-
比如说我现在的centos1的ip是192.168.255.132,此时我ping192.168.255.132可以ping通,但是我ping我的hostname为codejiwei就ping不通;我在/etc/hosts文件中添加192.168.255.132 codejiwei这个时候就可以ping通codejiwei了!!!
-
而大数据中需要linux不同节点相互ping,所以在centos2中去ping192.168.255.132可以ping通,但codejiwei就ping不通了,这时候可以修改centos2的/etc/hosts文件,添加192.168.255.132 codejiwei 这个时候就可以ping通了!
-
window系统的这个文件路径在:C:WindowsSystem32driversetchosts
①基本介绍
- 进程:每个执行的程序和代码都是一个进程
- 进程分为前台和后台(守护进程)
②查看系统进程
-
ps 查看进程使用
-
-a显示当前终端的所有进程信息
-
-u以用户的格式显示进程信息
-
-x显示后台进程运行的参数
-
一般都是用
-
查看父进程ps -ef | more
-
③终止进程
- kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)
- killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
④最佳案例
-
案例1:踢掉某个非法登录用户【jack】
远程登录jack,此时用ps -aux | grep sshd 查看有关远程登陆的进程,然后kill [进程号]终止进程
-
案例2: 终止远程登录服务sshd, 在适当时候再次重启sshd服务
-
案例3: 终止多个gedit 编辑器
killall gedit
-
案例4:强制杀掉一个终端 对于 bash
kill -9 对应的bash的进程号
⑤进程树
- pstree
- -p :显示进程的PID
- -u :显示进程的所属用户
服务(Service)本身就是进程,但是是运行在后台的,通常会监听某个端口,等待其他程序的请求,比如:mysql,sshd,防火墙等,又被成为守护进程。
-
查看服务的几种方式:
-
setup
-
ll /etc/init
-
还有就是下面说的chkconfig --list
-
②service指令
-
service 服务名 [start | stop | restart | reload | status]
-
在CentOS7.0以后就不再使用service了,而是systemctl
-
案例:查看当前防火墙的状态,关闭防火墙和重启防火墙
查看:service iptables status
开启:service iptables start
-
这种方式修改服务,只是临时有效,重启后还是回到原来状态;如果要永久有效使用chkconfig命令
③chkconfig指令
-
可以给每个服务的各个运行级别设置自启动关闭
-
语法:1. chkconfig --list | grep xxx
3. chkconfig --level 5 服务名 on/off
4. chkconfig 服务名 on/off
-
应用实例:
-
案例1:请显示当前系统所有服务的各个运行级别的状态
-
案例2:请查看sshd服务的运行状态
-
案例3:将sshd服务在运行级别5下设置为不自动启动
-
案例4:当运行级别为5时,关闭防火墙
-
案例5:在所有运行级别下,关闭防火墙
-
-
chkconfig重新设置后需要重启后才能生效!
①动态监控进程
-
top [选项]
-k 杀死指定PID号的进程
-
交互操作
- P 以CPU使用率排序
- M 以内存使用率排序
-
应用实例:
-
案例1:查看指定用户的进程
-
案例2:终止指定的进程
-
案例3:指定进程刷新时间10秒
-
②监控网络状态
-
查看网络使用情况netstat
-
语法:netstat [选项]
-
-an 按一定顺序排列输出
-p 显示哪个进程在调用
-
-
应用案例
请查看服务名为 sshd 的服务的信息。
Ø Netstat –anp | grep sshd
Ø 如果我们希望查看当前系统有哪些端口在监听
netstat -tlnp
①rpm包管理
-
redHat package manger
-
rpm包的简单查询指令
查询已安装的rpm列表:rpm -qa|grep xx
-
查看当前有没有安装火狐浏览器:
-
查询所有rpm包
rpm -qa
-
查询软件信息
rpm -qi firefox
-
-
删除软件包
rpm -e firefox
-
安装软件包
-
包放在了/media/目录下
-
复制/media下的火狐到/opt目录
-
到/opt/目录下,安装rpm -ivh firefox-。。。。
-
②yum包管理
-
可以自动自动处理依赖关系,一次性安装所有依赖包。前提需要联网!
-
查询安装软件:
yum list |greo 软件包
-
安装软件
yum install 软件包
-
卸载软件
yum remove 软件包
①百度面试题
-
常用命令:
netstat,top,lsblk,find,ps,chkconfig
②瓜子二手车面试题
- 查看Linux内存:top
- 磁盘存储:df -lh
- 端口占用:netstat -tunlp
- io读写占用:
- 首先安装iotop:yum -install iotop
- 然后输入:iotop
- 进程:ps