Linux 基础
1.安装虚拟机
网络类型
#1.桥接模式
上网不需要经过其他路由,上网速度快,ip数量少,容易跟同一网段的主机ip冲突。
#2.仅主机模式
只能与宿主机进行交互,并不能上网。
#3.NAT模式
ip多,独立的网段。上网需要经过VMnet8网卡。
下载虚拟机官网地址
https://centos.org/
CentOS-7-x86_64-DVD-1810.iso 我们下载的镜像 23:55 4588568576
CentOS-7-x86_64-DVD-1810.torrent 下载速度快 03-Dec-2018 15:03 88027
CentOS-7-x86_64-Everything-1810.iso 所有的 26-Nov-2018 14:28 10743709696
CentOS-7-x86_64-Everything-1810.torrent 03-Dec-2018 15:03 102990
CentOS-7-x86_64-LiveGNOME-1810.iso 演示版本 24-Nov-2018 17:41 1474297856
CentOS-7-x86_64-LiveGNOME-1810.torrent演示版本 03-Dec-2018 15:03 28645
CentOS-7-x86_64-LiveKDE-1810.iso 演示版本 24-Nov-2018 17:53 1949302784
CentOS-7-x86_64-LiveKDE-1810.torrent 演示版本 03-Dec-2018 15:03 37699
CentOS-7-x86_64-Minimal-1810.iso 最小化操作系统 25-Nov-2018 21:25 962592768
CentOS-7-x86_64-Minimal-1810.torrent 03-Dec-2018 15:03 37237
CentOS-7-x86_64-NetInstall-1810.iso 网络安装 25-Nov-2018 16:21 531628032
CentOS-7-x86_64-NetInstall-1810.torrent 03-Dec-2018 15:03 20806
1)更改网卡的名称
1.安装系统选择界面进行更改
net.ifnames=0 biosdevnmae=0
2.可安装完操作系统进行更改
磁盘分区
#标准分区
#1.swap分区 虚拟内存分区,正常是物理内存1-2倍。最大值不能超过16G
#2./boot分区 引导分区,正常500-1024M
#3./分区 系统主要分区,40-200G
#4./data 数据分区,剩余多少给多少。
#5.不分区 把空间留着,等哪个分区空间不足,就分配给谁。
装系统时,必须要装哪两个分区?
centos-6 / swap
centos-7 /
32位和64位的区别
#1.安装要求不同
#2.运算能力不能
#3.寻址能力不同
#4.设计定位不同
2. 虚拟机的管理
虚拟机的配置
VMnet8网卡
ip网段10.0.0.0 子网掩码255.255.255.0 网关10.0.0.254
Xshell链接排错
#1.在本地进行测试是否能通 [c:\~]$ ping 10.0.0.200
#2.查看虚拟机的虚拟网络编辑器 IP地址网段和网关配置是否正常 虚拟机内的IP地址同一网段
#3.查看windows vmnet8网卡是否获取到了同IP地址(虚拟网络编辑器开启DHCP) 手动配置
手动配置
使用下面的IP地址
IP地址 10.0.0.1
子网掩码 255.255.255.0
最后确定即可
#4.测试对外提供远程连接的服务是否开通
端口是否开启:[c:\~]$ telnet 10.0.0.200 22
Connecting to 10.0.0.200:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4
虚拟机本地执行命令:ss -lntp |grep sshd
#5.防火墙和selinux的问题
永久关闭selinux
修改配置文件/etc/selinux/config
重启生效
临时关闭selinux
如何查看当前是否关闭了selinux
getenforce
[root@oldboy ~]#setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@oldboy ~]#setenforce 0
[root@oldboy ~]#getenforce
Permissive
Enforcing =====1
Permissive =====0
centos7.x centos6.x
firewalld iptables 重点
1)查看防火墙状态 c6.x查看防火墙状态
systemctl status firewalld /etc/init.d/iptables status
2)临时关闭防火墙 临时关闭防火墙
systemctl stop firewalld /etc/init.d/iptables stop
3)永久关闭防火墙 永久关闭防火墙
systemctl disable firewalld chkconfig iptables off on开启 off关闭
#6.wifi共享问题
#7.VMware的服务没有开启
NetworkManager
如何关闭此服务
systemctl stop NetworkManager
systemctl restart network 重启网络
禁止NetworkManager开机启动
systemctl disable NetworkManager
上不去网排查
1.ping www.baidu.com
如果ping不通百度
查看IP地址配置是否正常
查看vmware的虚拟网络编辑器的配置是否正常
2.ping DNS
阿里云 223.5.5.5
谷歌 8.8.8.8
百度 114.114.114.114
联通 202.106.0.20
DNS?
域名解析
www.baidu.com www.sina.com www.weibo.com
61.135.169.125====www.baidu.com====DNS域名解析===223.5.5.5
DNS配置文件
1. /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=223.5.5.5
/etc/resolv.conf
nameserver 223.5.5.5
网卡中配置的DNS 优先于resolv.conf中的DNS,重启网卡会覆盖掉resolv.conf
如果网卡配置文件中 不配置DNS 则重启 不会覆盖 resolv.conf
保证windows中的VMware服务运行状态 我的电脑---右键管理---服务---vmware
快照
#1.开机状态
#2.关机状态
#3.挂起状态
克隆
#1.链接克隆
#2.完整克隆
Xshell管理
#1.给Xshell设置开启的密码。
#2.禁止检查更新
#3.日志存放位置
#4.缓冲区的大小,字体大小,闪烁的光标
#5.会话名称,登录的主机,协议,端口,用户,密码。密钥。
3. 命令行基础
命令行的结构
[root@nginx01 ~]#
root 当前登录的用户
@ 分隔符
nginx01 主机名
~ 当前所在位置,本身表示当前用户的家目录。
# 超级管理员的命令行提示符
$ 普通用户命令行提示符
Bash的特性
#1.tab补全
#2.命令别名
alias rm=‘echo rm command bny’
unalias rm
#3.历史记录
history
-c 清空缓存
-w 写入到文件
-d 删除指定id对应的命令
#4.快捷键
Ctrl键+a 光标快速移动到行首
Ctrl键+e 光标快速移动到行尾
Ctrl键+l 清屏
Ctrl键+w 删除命令组
Ctrl键+u 剪切光标所在位置到行首
Ctrl键+k 剪切光标所在位置到行尾
Ctrl键+y 粘贴剪切的内容
Ctrl键+c 强制结束当前的命令
Ctrl键+z 中止进程后台运行
Ctrl键+d 退出终端
Ctrl键+r 滚轮终止
Ctrl键+方向键 移动一个单词
Ctrl键+q 解锁
Ctrl键+s 锁屏
esc+. 复制上一个命令末尾单词
delete 删除
! 强制
!! 执行上一条命令
关机与重启及注销
#关机
init 0
shutdown -h 0/now
poweroff
halt -p
#重启
reboot
init 6
shutdown -r 0/now
#注销
Ctrl键+d
exit
logout
查看命令帮助
#1.man
#2.help
#3.--help(选项)
#4.info
#5.百度
显示ip地址命令
#1.ip a
ip a s eth0
ip address show eth0
#2.ifconfig
ifconfig eth0
#3.hostname -i
hostname -I
4. linux历史
GNU
是FSF(自由软件基金会)下的项目
GNU is not Unix
bash gawk gcc EMACS
GPL
通用公共许可协议
1.开源的
2.可以任意修改,必须把修改之后的源代码发布出来
linux应用领域
#1.嵌入式开发
#2.服务器端
#3.个人PC桌面
linux的发行版本
Redhat
CentOS
Ubuntu
FreeBSD
SUSE
Debian
Fedora
5. 系统文件管理
基础命令
echo 所见即所得
-e
ls 查看目录的列表
-l ll 显示详细信息
-d 只查看目录本身
-a 查看所有文件(包括隐藏)
-h 以人类可读的形式
-1 列表
-i 显示inode号
-t 根据时间进行显示
-r 倒叙
-F 显示加上标识符
cd 切换目录
. 当前目录
.. 当前目录的上一级目录
- 返回上一次所在的位置
~ 返回到家目录 cd
cd / 到根目录
pwd 显示所在位置
mkdir 创建目录
-p 创建多级目录,递归
-v 显示创建过程
-m 创建的时候设置权限
{}
touch 创建文件
{}
tree 以树状型显示目录结构
-d 只显示目录
-f 只显示文件
-F 给目录加上一个标识符
-L 查看的目录结构的深度
-a 显示所有文件
cp 复制
-i 系统别名自带
-r 递归复制
-p 保持属性
-a -rpd
-t 把源文件和目标文件位置进行对换
mv 引动或者重命名文件
-i 系统自带的别名
-t 把源文件和目标文件位置进行对换
-f 强制覆盖
rm 删除*****
-i 系统自带的别名
-r 删除目录
-f 强制删除
文件查看命令
cat 查看文件内容
-n 显示行号
-A 给显示出来的内容的结尾加上一个标识符
more 分页查看文件内容,在文件结束的时候,会自动退出
+n 从第几行开始显示文件内容
-n 一页只显示多少行内容
空格和f 向下翻页
b 向上翻页
回车键 向下显示一行
/ 搜索
q 退出
= 显示当前光标所在行
less 分页查看文件内容,在文件结束的时候,不会自动退出
-N 显示行号
空格和f 向下翻页
b 向上翻页
回车键 向下显示一行
/ 搜索,可以高亮显示
q 退出
head 显示文件头部信息,默认显示十行
-n 取消默认输出,显示指定行数
-c 显示文件的头部字符
tail 显示文件尾部信息,默认显示十行
-n 取消默认输出,显示指定行数
-c 显示文件的尾部字符,会有一个换行符
-f 实时查看文件的更新
-F 实时查看文件的更新
tailf 实时查看文件的更新
文件的上传与下载
rz 上传
sz 下载
wget 联网下载
-O 指定下载路径
curl 联网下载,访问测试网站
-o 指定下载的路径
-s 静默输出
命令查找
which 查看命令的绝对路径
whereis 查看命令的绝对路径
type 查看命令的绝对路径
-a 查看内部的命令的绝对路径
字符处理命令
sort 排序
-t 指定分隔符
-k 指定列排序
-n 以数字的大小进行排序
-r 倒叙排序
uniq 必须是相邻的,去重,统计
-c 统计
-d 只显示重复的行
-u 只显示不重复的行
cut 截取字段
-d 指定分隔符
-f 取指定的列
-c 取指定的字符
wc 统计
-l 统计行数
-c 统计字节大小
-w 统计列数,默认以空白字符分隔
tr 替换,单对单的进行替换
-d 删除字符
tr ‘源’ ‘目标’ <
显示系统信息的命令
hostname 显示主机名
/etc/hostname 主机名称配置文件 Centos7.x /etc/sysconfig/network Centos6.x
如何更改主机名称
第一个方法 永久修改
直接修改配置文件 需要重启电脑
vim /etc/hostname
第二个方法 临时修改 重启失效
hostname oldboyedu
第三种方法 临时+永久
hostnamectl set-hostname oldboy
whoami 当前用户
w 显示系统负载,登录的用户
-h 只显示登录的用户信息
uptime 显示系统负载,登录的用户
who 登录的用户信息
uname 显示系统的信息
-a 显示所有信息
-r 显示内核信息
-n 显示主机名
cat /etc/redhat-release 查看系统操作版本信息
三剑客
grep 过滤,给过滤的内容高亮显示
-n 显示行号
-o 只显示匹配的内容
-i 忽略大小写
-E 支持扩展正则
-c 统计
-v 排除
-w 只匹配过滤出来的字符串
-A 向下
-B 向上
-C 上下
-r 递归过滤
-R 递归过滤
sed 替换,增删改查
-i 替换
-n 取消默认输出
-r 支持扩展正则使用
-i.bak 先备份,再替换
= 显示行号
命令参数
p 打印
d 删除
s 替换
g 全局
c 在原位置替换
a 追加
i 插入
$ 结尾
; 多条命令的分隔
#用法一:查找出行
1.查找出第三行
sed -n '3p' abc.txt
2.查找出连续的三行
sed -n '3,5p' abc.txt
3.查找出不连续的三行
sed -n '3p;5p' abc.txt
sed -nr '/3|5/p' abc.txt
3.模糊匹配查找出的行
sed -n '/oldboy/p' abc.txt
4.查找多个条件的多行
sed -n '/aaa/p;/oldboy/p' abc.txt
5.查找出空行
sed -n '/^$/p' abc.txt
6.查找出以什么开头,以什么结尾的行
sed -n '/^xxx/p' abc.txt
sed -n '/xxx$/p' abc.txt
7.删除某一行
sed -n '3d' abc.txt
#用法二:添加某一行
1.在第一行前插入aaa
sed -i '1i aaa' abc.txt
2.在第二行后插入bbb
sed -i '1a bbb' abc.txt
3.在文件中的第三行后连续插入多行(一行是aaa,一行是bbb)
sed -i '3a aaa\nbbb' abc.txt
#用法三:替换
1.整体替换,将第三行整体替换成oldboy
sed -i '3c oldboy' abc.txt
2.替换一行的部分信息
sed -i '3s#aaa#oldboy#g' abc.txt
注意:如果g后面加入了p,会在后面追加一行
强调说明:利用sed命令替换文件信息时,不能让-i参数和-n参数同时使用,否则会清空文件信息
i和其他参数使用一般吧-i参数放在所有的参数的后面使用
3.取反操作(了解)
sed -n '/oldboy/!p' abc.txt #打印出不包含oldboy行的所有行
#用法四:后项引用前项
sed -n 's#(.*)#\1#g' abc.txt
awk 擅长取列,计算,统计
-F 指定分隔符 FS
-v 输出分隔符 OFS
! 取反
$NF 最后一列
NF 每行的列数
NR 行数
==
>< &&
; 多条命令的分隔
print 打印
BEGIN 行处理前
{} 整体
6. 软硬链接
软链接
一个快捷方式
可以跨区创建软链接
ln -s 源 目标
企业应用:版本的升级和回退
硬链接
给文件加个入口。
不能对目录创建硬链接
ln 源 目标
软硬链接的区别
从概念上说
软链接是快捷方式,硬链接相当于多了一个入口,(inode号相同)
从创建上说
ln命令创建硬链接,加上-s选项创建软链接。
从删除方面上说
删除软链接,对硬链接和源文件没有任何影响
删除硬链接,对源文件和软链接没有影响
删除源文件,对硬链接没有影响,软链接会失效,出现红底白字闪烁状。
只有删除所有的硬链接和源文件,文件才会被真正的删除。
7. 文本处理工具Vim
vim三种模式
普通模式(命令模式)
编辑模式
底行模式(末行模式)
vim +n filename 快速的进入某一行
普通模式(命令模式)
G 末行
gg 首行
ngg 指定行数
nG 指定行数
^ 行首
$ 行尾
r 单个替换
R 进行多个替换
dd 删除当前行
ndd 删除当前行及下多少行,包含当前行
dG 删除当前所在行及下所有行
u 撤销
yy 复制
nyy 复制多行
p 向下粘贴
np 粘贴多次
P 向上粘贴
nP 粘贴多次
x 向后删除一个字符
X 向前删除一个字符
ctrl+r 回滚
ZZ 保存退出
de 删除一组字符串
dw 删除一组字符串
D 删除当前光标所在位置及后面的内容
编辑模式
a 在当前光标所在位置向后进行插入内容
i 在当前光标所在位置向前进行插入内容
A 在当前光标所在位置行尾进行插入内容
I 在当前光标所在位置行首进行插入内容
o 进入下一行,进入编辑模式
O 进入上一行,进入编辑模式
s 删除当前光标所在的字符,并进入编辑模式
S 删除当期行,并进入编辑模式
C 删除当前光标所在位置及后面的内容,并进入编辑模式
cw 删除一组字符串
底行模式(末行模式)
:wq 保存退出
:q! 强制退出
:x 保存退出
/ 搜索n/N
:nd 删除某一行
:n,md 删除多行
:n 跳转某一行
:set nu 显示行号
:set nonu 取消显示行号
:set list 给每行的结尾加个标识符
:set nolist
:set ic 搜索忽略大小写
:set noic
:%s###g 全局替换
:1,5s###g 按行替换
批量管理
可视块
添加
ctrl + v 进入可视块
选中要添加的行
shift +i 进行编辑
输入内容
esc退出
删除
ctrl + v 进入可视块
选中要删除的内容
d或x 进行删除
可视行
shift +v
光标移动,选中要原则的区域
d 删除
y 复制
p 粘贴
vim故障
非正常退出,再次进入编辑时,会提示有一个临时文件
vim -r 进入非正常退出之前的状态。
都要删除那个临时文件。
rm -f .filename.swp
8. 特殊符号和引号相关
特殊符号
* 所有
! 取反。非
# 注释
{} 生成序列
$ 变量$()
$? 查看上一条命令执行的结果,返回值,0表示成功,非0就是失败
&& 前面的命令执行成功,才会后面的命令
|| 前面的命令执行失败,才会后面的命令
& 放入后台
; 多条的命令的分隔符
| 把前面的命令的执行结果交给后面的命令
[] 包含中括号中的所有内容
引号相关
不加引号 所见即所得,会解析变量,支持通配符,如果出现空格,就不会是一个整体。
单引号 所见即所得,强引用,会把里面内容看做是一个整体
双引号 所见即所得,会解析变量,会把里面内容看做是一个整体
反引号 会先执行反引号里面的命令
9. 文件目录结构
/ #linux中一切以根为顶点
bin -> usr/bin #普通用户使用的命令
sbin -> usr/sbin #管理员使用的命令
boot #引导
dev #设备目录
/dev/cdrom #光驱
/dev/sr0 #光驱
/dev/zero #产生数据的文件
/dev/null #黑洞设备
/dev/stderr #错误输出 2
/dev/stdin #标准输入 0
/dev/stdout #标准输出 1
/dev/random #产生随机数字的文件
/dev/sd* #磁盘
/dev/pts #虚拟终端
etc #配置文件目录
/etc/hostname #主机名
/etc/hosts #域名解析
/etc/sysconfig/network-scripts/ifcfg-eth0 #网卡配置文件
/etc/resolv.conf #dns配置文件
/etc/fstab #挂载设备列表
/etc/selinux/config #selinux配置文件
/etc/sysconfig/grub #grub菜单
/etc/profile #环境变量配置文件
/etc/bashrc #别名
/etc/issue #登录前提示
/etc/issue.net #登录前提示
/etc/inittab #系统运行的级别文件
/etc/redhat-release #查看系统版本
home #普通用户的家目录
lib -> usr/lib #库文件 32位
lib64 -> usr/lib64 #库文件 64位
media #设备目录
mnt #临时挂载点
opt #早期第三方的软件安装目录
proc #系统进程实时的负载情况
root #超级管理员家目录
run #存放进程的pid文件
tmp #临时存放目录
usr #安装目录
/usr/local #默认编译安装的软件在此目录
/usr/share #安装目录
var #存放是可变的内容
/var/log #日志
/var/log/messages #系统日志
/var/log/secure #系统用户的登录日志
/var/log/cron #定时任务的日志
/var/run #进程的pid文件
proc
/proc/cpuinfo #cpu的信息
lscpu #查看cpu信息
/proc/meminfo #查看内存信息
free -h #查看内存信息
/proc/loadavg #查看负载均衡
w #查看负载信息
uptime #查看负载信息
top #查看系统进程信息
/proc/mounts #挂载信息
df -h #查看磁盘信息
du -h #查看文件大小
绝对路径和相对路径
以根为开头就是绝对路径
不是以根为开头就是相对路径
~/test #绝对路径 /root ~
10. 用户管理
用户
约定
centos-7
0 #超级管理员用户
1~200 #系统进程用户
201~999 #系统服务用户
1000+ #普通用户
centos-6
0 #超级管理员用户
1~499 #系统用户
500+ #普通用户
useradd 创建用户
-u 指定uid
-g 指定gid(用户组)
-G 指定附加组
-M 不创建家目录
-r 不创建家目录
-s 指定登录shell
-c 指定注释信息
-d 指定家目录
usermod 修改用户的信息
-u 修改用户uid
-g 修改gid(用户组)
-aG 设置附加组
-dm 移动家目录
-s 修改登录shell
-c 修改注释信息
-l 修改用户名
userdel 删除用户,默认不删除家目录
-r 删除用户时删除家目录和邮件
passwd 设置用户的密码信息
交互式 passwd username
非交互式 echo ‘密码’ |passwd --stdin username
id 查看用户的信息
groupadd 创建用户组
-g 指定gid
groupmod 修改组的信息
-g 修改组id
-n 修改组名
groupdel 删除用户组
组里面不能存在用户。
su 切换用户
-
-c 以其他用户的身份执行命令
su 和 su - 的区别?
sudo 提权
-l 查看权限
visudo 配置权限,vi /etc/sudoers
-c 检查语法
root ALL=(ALL) ALL
用户名 主机名(角色) 权限
个人的配置文件
~/.bashrc 局部生效 针对当前使用用户
~/.bash_profile 局部生效 针对当前使用用户
全局
/etc/profile 全局生效 针对所有用户
/etc/profile.d/*.sh 全局生效 针对所有用户
/etc/bashrc 全局生效 针对所有用户
用户相关的配置文件
/etc/passwd 用户信息
/etc/shadow 用户密码信息
/etc/group 组的信息
/etc/gshadow 组的密码信息
/etc/default/useradd
/etc/login.defs
/etc/skel/ #环境变量的模板家目录
11. 权限
基础权限
权限位 | 含义 | 对应数字 |
---|---|---|
r(read) | 读权限 | 4 |
w(wite) | 写权限 | 2 |
x(execute) | 执行权限 | 1 |
- | 没有权限 | 0 |
#文件的权限
w和x的权限,必须要有r权限
rwx
rw
rx
r
#目录的权限
r和w的权限,必须要有x的权限
rwx
rx
wx
x
权限的命令
chmod 修改文件或目录的权限
-R 递归设置权限
u 属主
g 数组
o 其他用户
a 所有
特殊权限
a 只能追加
i 什么都不能操作,只能读
chattr 设置特殊权限
lsattr 查看特殊权限
特殊属性
setuid 使用该命令相当于是这个命令的所有者
u+s
setgid 在创建新的文件或目录时,属组默认属于设置的属组
g+s
stick 粘滞位t,所有用户只能管理自己文件。
o+t
chmod 设置目录和文件权限
chown 设置属主和属组
-R 递归设置
文件属性
drwxr-xr-x 2 root root 6 Jul 29 10:10 test
文件类型:
- 普通文件
d 目录
l 软链接
c 字符设备
b 块设备
s 套接字
p 管道文件
2-4 属主权限
5-7 属组权限
8-10 其他用户权限
硬链接数
属主
属组
大小
6-8 最近的修改时间
文件名
12. 输出输入
> 标准输出重定向,会覆盖源文件
>> 标准追加重定向,不会覆盖源文件,只会追加的文件的结尾
< 标准输入重定向,默认的从键盘读取字符改为从文件中读取
<< 两个相同标识符作为首和尾 cat>filename<<EOF
&> 混合输出,重定向到文件中
&>> 混合输出,追加到文件中
2> 错误输出重定向,会覆盖源文件
2>> 错误输出追加重定向,不会覆盖源文件
tee 重定向的功能,输出到屏幕上面
-a 追加。
13. 文件查找
find
选项:
-type 类型 f 文件 d 目录
-name 指定查找名字
-iname 忽略大小写
-mtime 按照修改时间查找
+N
-N
N
-size 根据大小查找
b
+k
-k
M
G
-user 根据用户查找
-group 根据属组查找
-perm 根据权限查找
-644 包含这个权限
644 精确查找
-maxdepth 跟目录阶级查找
-nouser 没有属主
-nogroup 没有属组
-print 默认显示
-ls 显示列表
-delete 删除,只能删除空目录
-exec
-ok
find 和 其他命令
find | xargs
把/data目录中所有的以*.txt的文件复制到/tmp目录下
find /data -type f -name "*.txt" |xargs cp -t /tmp
find /data -type f -name "*.txt" |xargs -i {} cp {} /tmp
find /data -type f -name "*.txt" -exec cp {} /tmp \;
cp $(find /data -type f -name "*.txt") /tmp
cp `find /data -type f -name "*.txt"` /tmp
14. 打包压缩
zip
gzip
bzip2
zip filename.zip filename
-r 打包压缩目录
-q 静默输出
-T 查看压缩的完整情况
unzip 解压
-d 指定的解压的目录
-l 查看压缩包的列表
-t 查看包里面内容是否ok
gzip 压缩文件,压缩之后会删除源文件
-d 解压
-r 压缩目录中的所有文件
zcat 查看zip格式的压缩包
tar gzip格式
czf 打包压缩
tf 查看压缩包
xf 解压压缩包
-C 指定解压目录
-P 使用绝对路径打包,没有删跟的操作
-X 指定排除文件的列表文件
--exclude 排除文件
--exclude-from=
date 显示时间命令
+%F 显示年月日
[root@nginx01 ~]# date +%F
2019-07-29
[root@nginx01 ~]# date +%T
16:55:40
[root@nginx01 ~]# date +%y-%m-%d
19-07-29
[root@nginx01 ~]# date +%Y-%m-%d
2019-07-29
[root@nginx01 ~]# date +%H-%M-%S
16-56-54
[root@nginx01 ~]# date +%H:%M:%S
16:57:00
[root@nginx01 ~]# date -d '-1day' +%F
2019-07-28
[root@nginx01 ~]# date -s "20181001"
Mon Oct 1 00:00:00 CST 2018
[root@nginx01 ~]# date +%F
2018-10-01
[root@nginx01 ~]# date -s "12:00:00"
Mon Oct 1 12:00:00 CST 2018
[root@nginx01 ~]# date +%T
12:00:04
[root@nginx01 ~]# date -s "2019072916:58:00"
date: invalid date ‘2019072916:58:00’
[root@nginx01 ~]# date -s "20190729 16:58:00"
Mon Jul 29 16:58:00 CST 2019
[root@nginx01 ~]# date +%T
16:58:03
[root@nginx01 ~]# date +%F
2019-07-29
15. rpm和yum安装命令
mount /dev/cdrom /mnt
rpm 本地进行安装
-ivh 安装软件包
-Uvh 升级软件包
-e 删除软件包
-qa 查询软件包是否安装
-ql 查看软件包中的内容
-qi 显示软件包的详细信息
-qc 显示软件的主配置文件
-qf 查看命令属于哪个软件包,必须使用绝对路径,本地必须要有这个命令。
yum 安装软件
install 安装
list 查看所有可安装的包
provides 查看命令属于哪个软件包
clean 清空 all packages
update 更新
history 历史记录
installgroup
repolist 查看域名仓库
makecache 生成缓存
remove 删除软件
-y 确认安装
yum仓库列表
/etc/yum.repos.d/*repo
base 基础仓库
epel 扩展源
createrepo
源码编译安装
1. 下载软件包,安装依赖
2. 预编译 ./configure
3. 编译安装 make mkae install
16. 硬件基础
服务器的分类
外观分类、尺寸、高度单位
服务器的品牌
Dell服务器的常见型号
云服务器的品牌
服务器的核心部件
电源
cpu
内存
磁盘
RAID卡
光驱
远程管理卡
机房
17. 磁盘管理
磁盘的结构
磁头、盘片、磁道、扇区、柱面。
磁盘的单位和接口
SATA SAS PCIE
bit 1B=bit
B KB MB GB TB PB EB
磁盘的分区
lsblk 磁盘的信息
df 查看磁盘的使用情况
ll /dev/sd*
fdisk 适用于2TB以下的分区,MBR表 4个主分区,3+1()
-l 显示分区列表信息
mkfs.xfs /dev/sdb1
mount 挂载
/etc/fstab 中,永久挂载。
mount -a
umount
blkid 查看UUID信息
gdisk GPT分区表,128个分区
mkfs.xfs /dev/sdb1
mount 挂载
/etc/fstab 中,永久挂载。
mount -a
umount
blkid 查看UUID信息
挂载的方式
mount 挂载
-o 指定挂载参数
-t 指定文件系统
-a 重新加载/etc/fstab文件中设备
umount 卸载
-lf 强制卸载
切换到其他目录进行卸载。
/etc/fstab中
UUID=d9a59ed7-7a1c13b swap swap defaults 0 0
挂载的设备 挂载点 文件系统类型 默认的挂载参数 是否备份 是否检查磁盘
swap 企业案例:java大量占用swap
磁盘分区或者创建一个大文件
mkswap 指定为swap类型
swapon 文件名或者设备分区名
free -m
swapoff 文件名或者设备分区名
swapoff -a 禁用swap
swapon -a 启用swap
swapon -s swap文件列表
RAID
级别和特点
RAID0
RAID1
RAID5
RAID10
软RAID和硬RAID(板载和独立)
在装系统前做RAID。
LVM逻辑卷
PV 物理卷
VG 卷组
LV 逻辑卷
PE 基本单元(4MB)
18. 进程管理
ps aux
[root@nginx01 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
top/htop
[root@nginx01 ~]# top
top - 17:34:33 up 1 day, 2:35, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995896 total, 722556 free, 104732 used, 168608 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 718316 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
pstree
ss -lntp |grep 22
netstat -lntp|grep 22
lsof -i:22
杀手三人组
kill 根据进程id -1 -9 -15
killall 根据进程名
pkill 根据进程名 模糊杀手
jobs bg fg
screen
19. 开机启动流程
1. 按下电源
2. BIOS自检
3. MBR引导
4. 进入GRUB菜单
5. 加载内核kernel
6. systemd进程
7. 读取运行级别
8. 初始化系统
9. 启动开机自启动的服务(并行)
10.进入登录页面
运行级别
0-6
0 关机
1 单用户
2 多用户
3 多用户
4 多用户(centos-6中没有使用)
5 图形化
6 重启
systemctl set-default 级别
systemctl get-default
centos-6
init runlevel
systemctl start server
systemctl stop
systemctl restart
systemctl reload
systemctl status
systemctl enable
systemctl disable
systemctl status
active(runing) 运行
inactive 不在运行
定义网卡名称
网卡命令规则
net.ifnames=0 biosdevname=0
20. 系统的优化
1.更新yum源
2.关闭selinux
3.关闭防火墙
4.关闭NetworkManager
5.安装常用的软件
21. 定时任务
crontab -e
crontab -l
* * * * *
分 时 日 月 周 使用绝对路径 命令 &>/dev/null
22.yum源修改及系统优化
第一个里程碑 查看当前使用的仓库
yum repolist 默认的仓库随机选择某个大学 或者某个仓库网站
第二个里程碑 修改默认yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
使用wget或者curl 命令下载 如果是wget 前提是安装了wget
curl -o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
安装企业扩展安装包
ctrl + f 搜索页面内容
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
23.PS1 修改命令行格式的变量
[root@oldboy ~]#
[ \u@ \h \W] \$
user @ \hostname 路径 用户提示符
24.网卡配置
12 NAME=eth0 # 网卡的名称
13 UUID=007885a1-f43f-458e-93e8-0a85242f0f9d # 系统默认会给所有的设备分配一个唯一标识
14 DEVICE=eth0 # 设备的硬件名称
15 ONBOOT=yes # 开机是否自动连接
16 IPADDR=10.0.0.200 # IP地址
17 PREFIX=24 # 子网掩码 决定了当前网络可用的IP数量
18 GATEWAY=10.0.0.254 # 网关 要出去上网 大楼门口
19 DNS1=223.5.5.5 # 域名解析 将域名解析成IP地址 你把域名给DNS服务
标签:文件,查看,删除,基础,etc,Linux,root,目录
From: https://www.cnblogs.com/skyy/p/17289606.html