转换关系 | 字节数 |
---|---|
1B=8bit | 2^0B |
1KB=1024B | 2^10B |
1MB=1024KB | 2^20B |
1GB=1024MB | 2^30B |
1TB=1024GB | 2^40B |
1PB=1024TB | 2^50B |
1EB=1024PB | 2^60B |
规格 :
厚度 用U表示 1U=1.75英寸=4.445CM=4.45CM
宽度 19英寸
刀片服务器
塔式服务器
命令 [选项] [参数]
ls -l /etc/hosts
mkdir /data
ls /data
ls -d /data
cd
cd /data
cd ~
cd -
cd ..
pwd
mv /data /wuxing
cp -r /wuxing /root/
rm -r /wuxing
touch oldboy.txt
echo oldboy > oldboy.txt #覆盖
echo 123456 >> oldboy.txt #追加
查看文件内容命令很多
cat oldboy.txt
head oldboy.txt
tail oldboy.txt
more oldboy.txt
less oldboy.txt
grep sed awk
ls -l oldboy.txt
mv oldboy.txt oldgirl.txt
cp oldgirl.txt /tmp/
vi/vim oldgirl.txt
vi编辑器简单操作步骤
rm oldgirl.txt
type cd
命令 --help
man 命令/配置文件
help 命令 (用于linux内置命令)
info 命令
搜索 linux ls 命令
http://man.linuxde.net/
http://linux.51yip.com/
https://www.gnu.org/software/coreutils/manual/coreutils.html
tab键 命令或路径补全功能
ctrl+c 终止当前命令或程序
ctrl+d 退出当前shell
ctrl+l 清屏
ctrl+a 命令行光标移到行首
ctrl+e 命令行光标移到行尾
ctrl+u 命令行删除光标到行首的内容
ctrl+k 命令行删除光标到行尾的内容
ctrl+r 命令行搜索
ctrl+s 锁屏
ctrl+q 解锁
http://www.pathname.com/fhs/pub/fhs-2.3.html
tree
目录 | 含义 |
---|---|
/usr/bin | 基本用户命令二进制文件 |
/usr/sbin | 系统命令二进制文件 |
/usr/lib | 基本共享库和内核模块 |
/usr/lib64 | 64位共享库 |
/usr/local | 本地安装软件存放目录(源码安装软件默认目录) |
/usr/include | C程序包含的头文件 |
/usr/src | 程序源码目录 |
/usr/share | 与体系结构无关的数据 |
/usr/share/man | 帮助目录 |
/usr/share/doc | 文档目录 |
centos7系统运行级别
/usr/lib/systemd/system/runlevel0.target -> poweroff.target
/usr/lib/systemd/system/runlevel1.target -> rescue.target
/usr/lib/systemd/system/runlevel2.target -> multi-user.target
/usr/lib/systemd/system/runlevel3.target -> multi-user.target
/usr/lib/systemd/system/runlevel4.target -> multi-user.target
/usr/lib/systemd/system/runlevel5.target -> graphical.target
/usr/lib/systemd/system/runlevel6.target -> reboot.target
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf
/etc/hostname
hostnamectl set-hostname wuxingge
/etc/hosts
/etc/fstab
[root@oldboyedu ~]# blkid
/dev/sda1: UUID="1515d309-b3aa-4df7-8a0a-a6bf5d0587c9" TYPE="xfs"
/dev/sda2: UUID="e5256992-206d-4ade-bb70-7ca46ec94998" TYPE="swap"
/dev/sda3: UUID="7189cadf-e438-4507-a4ef-4e304c4c3d40" TYPE="xfs"
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/etc/rc.local -> /etc/rc.d/rc.local
/etc/inittab
/etc/rc.d/rc0.d/
/etc/rc.d/rc1.d/
/etc/rc.d/rc2.d/
/etc/rc.d/rc3.d/
/etc/rc.d/rc4.d/
/etc/rc.d/rc5.d/
/etc/rc.d/rc6.d/
/etc/issue 认证前的输出信息,默认输出版本内核信息
/etc/issue.net
/etc/motd 设置认证后的输出信息
[root@repo ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@repo ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@repo ~]# uname -a
Linux repo.novalocal 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
/etc/selinux/config
本次关闭selinux
setenforce 0
查看selinux状态
getenforce
/etc/locale.conf
设置语言字符集
localectl set-locale LANG=zh_CN.utf8
/run/lock/ 锁文件
文件 | 含义 |
---|---|
/proc/cpuinfo | 处理器的信息 |
/proc/meminfo | 内存信息 |
/proc/devices | 当前运行内核所配置的所有设备清单 |
/proc/filesystems | 文件系统 |
/proc/dma | 当前正在使用的DMA通道 |
/proc/interrupts | 正在使用的中断和曾经有多少个中断 |
/proc/ioports | 当前正在使用的I/O端口 |
目录 | 含义 |
---|---|
/var/cache | 应用程序缓存数据 |
/var/lib | 变化的数据 |
/var/log | 日志文件和目录 |
/var/opt | /opt的变量数据 |
/var/spool | 应用程序假脱机数据 |
/var/tmp | 系统重新引导之间保留的临时文件 |
系统相关日志文件
/var/log/messages
/var/log/secure
/var/log/dmesg
[root@repo ~]# ll -i /etc/hosts
101031 -rw-r--r--. 1 root root 159 6月 4 17:17 /etc/hosts
列 | 含义 |
---|---|
第一列 | inode号 |
第二列 | 文件类型及权限(第二列共11个字符:其中第一个字符是文件类型,随后的9个字符为文件的对应权限,最后一个字符点号 . 是和selinux有关的一个标识) |
第三列 | 硬链接个数 |
第四列 | 文件所有者(属主) |
第五列 | 文件所属的组(属组) |
第六列 | 文件大小 |
第七、八、九列 | 修改时间 |
第十列 | 文件名 |
硬盘格式化的时候,操作系统将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
inode号是文件在磁盘上的唯一标识
inode 用来存放文件的属性和指向其block的指针
一个文件占一个inode,至少占用一个block
磁盘读取或写入数据是按block为单位进行的
读或者写一个block称为一次IO
文件类型 | 目录项 | inode | block |
---|---|---|---|
文件 | 文件名 | inode号 | 文件内容 |
目录 | 目录名 | inode号 | 目录中的文件名 |
首先,系统找到这个文件名对应的inode号码
其次,通过inode号码,获取inode信息
最后,根据inode信息,找到文件数据所在的block,读出数据
ls -li
stat /etc/hosts
df -i
df -h
inode使用完或block使用完都表示磁盘空间使用完
文件类型标识符 | 文件类型 |
---|---|
- | 普通文件(文本文件、二进制文件、数据文件、压缩文件) |
d | 目录(directory) |
l | 软链接(link) |
b | 块设备(block) |
c | 字符设备(character) |
s | socket文件 |
p | 管道文件(pipe) |
file /etc/hosts
权限 | 含义 | 数字表示 |
---|---|---|
r | 读 | 4 |
w | 写 | 2 |
x | 执行 | 1 |
- | 没有任何权限 | 0 |
属主 | 属组 | 其他用户 |
---|---|---|
rw- | r– | r– |
6 | 4 | 4 |
[root@oldboy test]# ls -ldi oldboy oldboy/. oldboy/oldboydir/..
398269 drwxr-xr-x 3 root root 4096 Aug 26 20:20 oldboy
398269 drwxr-xr-x 3 root root 4096 Aug 26 20:20 oldboy/.
398269 drwxr-xr-x 3 root root 4096 Aug 26 20:20 oldboy/oldboydir/..
ln oldboy.txt OLDBOY.TXT
ln -s oldboy.txt old.txt
UID | 用户类型 | 用户特性 |
---|---|---|
0 | 超级用户root | linux系统超级管理员 |
1-999 | 虚拟用户 | 不能登录系统 |
1000-65535 | 普通用户 | 可以登录系统 |
modify mtime 文件内容(block)修改时间
change ctime 文件属性(元数据)改变时间
access atime 文件内容访问时间
ls -lhi
7 8 9 三列是时间(修改时间)
tar [选项] 归档文件 【文件或目录】
参数 | 参数说明 | 其他说明 |
---|---|---|
-z | gzip压缩格式 | |
-c | 创建归档 | |
-f | 指定归档文件 | |
-r | 给归档文件中添加文件 | |
-t | 列出归档文件的内容 | |
-x | 从归档中提取文件 | |
-v | 显示执行过程 | |
-C | <目录> 指定解压到的目录 | |
–exclude=文件目录 | 排除文件 | –exclude=/etc/services --exclude=c --exclude=b |
-h | 需要打包的文件是软链接用此参数 | |
-P | 从/开始打包 |
rpm [选项...] 参数
选项 | 含义 |
---|---|
-q | 查询 |
-a | 所有 |
-p | 软件包 |
-f | 文件属于哪个软件包 |
-l | 软件包中的文件列表 |
-c | 软件包中的配置文件 |
-R | 软件包依赖 |
选项 | 含义 |
---|---|
-i | 安装 |
-v | 显示附加信息 |
-h | 安装时输出hash记号 |
-e | 卸载 |
-U | 升级 |
–nodeps | 不检查依赖 |
rpm包管理工具,自动解决依赖关系
yum [选项] command [参数]
clean all 清除全部
clean packages 清除临时包文件(/var/cache/yum 下文件)
clean headers 清除rpm头文件
clean oldheaders 清除旧的rpm头文件
list 可安装和可更新的RPM包
repolist 显示资源库的配置
list installed 已安装的包
list extras 已安装且不在资源库的包
deplist 列出包的依赖
install 安装包
localinstall 安装本地的RPM包
groupinstall 组安装
reinstall 重新安装包
remove 卸载包
update 更新包
search 搜索包
provides 搜索文件属于哪个包
history 查看yum历史操作
info installed 已安装包的信息
[BaseOS]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
./configure
make
make install
wget https://src.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz/13275fd039de8788b15151c896150bc4/manpages-zh-1.5.1.tar.gz
./configure --disable-zhtw --prefix=/usr/local/zhman
make
make install
alias cman='man -M /usr/local/zhman/share/man/zh_CN'
Linux是一个多用户多任务的操作系统
登录认证
管理计算机资源
UID | 用户类型 |
---|---|
0 | 超级用户root |
1-499/1-999 | 系统用户(或傀儡用户) |
>500/> 1000 | 普通用户 |
gid | 组类型 |
---|---|
0 | root组 |
1-499/1-999 | 系统用户组 |
>500/> 1000 | 普通用户组 |
用户相关信息
root | x | 0 | 0 | root | /root | /bin/bash |
---|---|---|---|---|---|---|
账号 | 密码占位符 | UID | GID | 用户说明 | 家目录 | 登录shell |
密码相关信息
账号 | 用户账号名称 |
---|---|
密码 | 加密后的口令 |
最近更改密码的时间 | 从1970年1月1日起,到用户最后一次更改密码的天数 |
禁止修改密码的天数 | 从1970年1月1日起,到用户可以更改密码的天数 |
用户必须更改口令的天数 | 从1970年1月1日起,到用户必须更改密码的天数 |
警告更改密码的期限 | 用户密码过期前多少天提示用户更改密码 |
不活动时间 | 在用户密码过期之后到禁用账户的天数 |
失效时间 | 从1970年1月1日起,到用户被禁用的天数 |
标志 | 保留 |
添加用户时的默认配置
GROUP=100 依赖于/etc/login.defs 的USERGROUPS_ENAB参数,如果为no,则此处控制
HOME=/home 把用户家目录建在/home 下
INACTIVE=-1 是否启用账号过期停权,-1表示不启用
EXPIRE= 账号终止日期,不设置表示不启用
SHELL=/bin/bash 新用户默认所用的shell类型
SKEL=/etc/skel 配置新用户家目录的环境配置文件路径
CREATE_MAIL_SPOOL=yes 创建mail文件
用户认证的默认属性
PASS_MAX_DAYS 99999 一个密码最长可以使用的天数
PASS_MIN_DAYS 0 更换密码的最小天数
PASS_MIN_LEN 5 密码的最小长度
PASS_WARN_AGE 7 密码失效前提前多少天开始警告
用来存放新用户的环境配置文件,为新创建的用户添加初始化配置
[root@localhost ~]# ll /etc/skel/ -a
总用量 28
drwxr-xr-x. 2 root root 76 9月 25 15:45 .
drwxr-xr-x. 101 root root 8192 10月 28 12:01 ..
-rw-r--r--. 1 root root 18 5月 11 08:16 .bash_logout
-rw-r--r--. 1 root root 141 5月 11 08:16 .bash_profile
-rw-r--r--. 1 root root 312 5月 11 08:16 .bashrc
-rw-r--r--. 1 root root 658 5月 12 00:06 .zshrc
useradd
选项 | 说明 |
---|---|
-u uid | 指定用户id |
-g initial_group | 用户登录起始用户组(主要组) |
-G group,[…] | 附加组(次要组) |
-M | 不创建家目录。一般创建虚拟用户是不创建家目录,部署服务时要创建虚拟用户 |
-s shell | 指定用户登录系统后使用的shell |
-d home_dir | 指定家目录 |
-r | 创建虚拟用户 |
-c comment | 注释说明信息 |
-m | 用户目录如不存在则自动创建 |
-e expire_date | 账号终止日期(账号过期时间) 日期 -e “+30 day” -e “2016/12/20” |
-f | 账号过期几日后永久停权 |
id root
w
who
users
last
lastlog
su [选项] 用户
选项 | 说明 |
---|---|
- | 使切换后的用户登录自己对应的shell |
-c | 以另外一个用户身份执行一个命令 |
-m | 切换用户时,不登录自己的shell |
-s | 切换用户时,登录指定的shell |
usermod
选项 | 注释说明 |
---|---|
-u uid | 指定用户id |
-g initial_group | 用户登录起始用户组(主要组) |
-G group,[…] | 附加组(次要组) |
-s shell | 指定用户登录系统后使用的shell |
-d home_dir | 指定家目录 |
-m newhome_dir | 将家目录内容移至新位置 (仅于 -d 一起使用) |
-L | 冻结用户的密码,使之无法登录,实际就是修改/etc/shadow 的密码栏,在前面加上 ! useradd -e chage -E 或 passwd -l 都有类似效果 |
-U | 取消冻结用户密码,使之恢复登录 |
-c comment | 注释说明信息 |
-e expire_date | 账号终止日期(账号过期时间) 日期 -e “+30 day” -e “2016/12/20” |
-f | 账号过期几日后永久停权 |
userdel 用户名
选项
-r 删除用户家目录
passwd
passwd [选项…] <用户名>
选项 | 说明 |
---|---|
-k | 保留即将过期的用户在期满后仍然能使用 |
-d | 删除用户密码,仅能以root权限操作 |
-l | 锁定用户,仅能通过root操作 |
-u | 解除锁定 |
-f | 强制操作,只有root才能操作 |
-x | 两次密码修改的最大天数,后面接数字,只有root才能操作 |
-n | 两次密码修改的最小天数,后面接数字,只有root才能操作 |
-w | 在距多少天提醒用户修改密码,只有root才能操作 |
-i | 在密码过期后多少天,用户被禁用,只有root才能操作 |
-S | 查询用户的密码状态,只有root才能操作 |
–stdin | 从stdin读入密码 |
gpasswd
gpasswd [-a user] [-d user] [-A user,…] [-M user,…] [-r] [-R] groupname
选项 | 含义 |
---|---|
-a | 添加用户到组 |
-d | 从组删除用户 |
-A | 指定管理员 |
-M | 指定组成员和-A的用途差不多 |
-r | 删除密码 |
-R | 限制用户登入组,只有组中的成员才可以用newgrp加入该组 |
以其他用户身份执行一条命令
某个用户可以使用不同角色,执行不同的命令
sudo [选项] [command]
选项 | 含义 |
---|---|
-l | 列出用户在主机上可以使用的命令 |
-u | 用户名 指定以某个用户身份执行特定的命令(默认是root) |
-k | 删除时间戳(时间戳默认5分钟失效) |
-v | 跟踪最新的时间戳 |
visudo <====> vim /etc/sudoers
用户或组 | 主机 | 可以切换的用户角色 | 命令 |
---|---|---|---|
root | ALL= | (ALL) | ALL |
User_Alias ADMINS = jsmith,mikem, %groupname | Host_Alias FILESERVERS = fs1,fs2 | Runas_Alias OP = root | Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig |
User_Alias KAIFA_ADMINS = kaifa01, kaifa02
User_Alias OLD_ADMINS = oldboy, oldgirl, %sa
User_Alias OLD_NETADMINS = leo,maya
Host_Alias FILESERVERS = fs1, fs2
Runas_Alias OP1 = root, oldboy
Runas_Alias OP2 = root, oldgirl
Cmnd_Alias USERCMD = /usr/bin/passwd [a-zA-Z0-9]*, /bin/chown, /bin/chmod, !/usr/bin/passwd root
Cmnd_Alias DISKCMD = /sbin/fdisk, /sbin/parted
Cmnd_Alias NETMAGCMD = /sbin/ifconfig, /etc/init.d/network
Cmnd_Alias CTRLCMD = /usr/sbin/reboot, /usr/sbin/halt
Cmnd_Alias KAFACMD = /bin/grep,/usr/bin/tail,/bin/cat
visudo 最后添加
Defaults logfile=/var/log/sudo.log
[root@localhost ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1514 10月 18 21:28 /etc/passwd
权限 | 含义 | 八进制数字表示 |
---|---|---|
r | 读 | 4 |
w | 写 | 2 |
x | 执行 | 1 |
- | 没有任何权限 | 0 |
属主 | 属组 | 其他用户 |
---|---|---|
rw- | r– | r– |
6 | 4 | 4 |
权限 | 文件 | 目录 |
---|---|---|
r:读 | 查看阅读 | 列出目录中文件列表 |
w:写 | 对文件内容增 删 改操作 | 在目录中创建文件 删除文件 修改文件名 |
x:执行 | 运行 | 可以使用cd命令进入目录 |
chmod [选项]… 模式[,模式]… 文件…
chmod [选项]… 八进制模式 文件…
用户类型 | 操作字符 | 权限字符 |
---|---|---|
ugoa | ±= | rwx- |
三个八进制数: 属主 属组 其他人
chown [选项]... [所有者][:[组]] 文件
常用选线 -R
chown 用户 文件或目录
chown :组 文件或目录
chown 用户:组 文件或目录
chown 用户.组 文件或目录
权限 | 针对文件 | 针对目录 |
---|---|---|
— | 什么都做不了 | 什么都做不了 |
r– | 可以查看文件内容 | 只能看到文件名 |
-w- | 对文件写操作会覆盖文件内容 | 什么都做不了 |
–x | 什么都做不了 | 可以cd |
rw- | 正常读写 | 只能查看文件名 |
r-x | 可读可执行 | 可以cd 可以查看 |
-wx | 对文件写操作会覆盖文件内容 | 可以cd 可以写 不能查看 |
rwx | 什么都可以做 | 什么都可以做 |
umask 数字
对于文件 umask值任意一位是奇数时, 减umask值 后, 对应位为奇数的 加1
4(SUID) 设置SUID的文件,无论谁执行此文件,他都有文件所有者的权限
2(SGID) 设置SGID的目录,无论谁来此目录,他都有目录所属组的权限
1(sticky) 存放在该目录的文件只允许属主操作
chmod 4755 filename
chmod u+s filename
chmod g+s filename
chmod +t /tmp
suid | sgid | sticky |
---|---|---|
4 | 2 | 1 |
install
install [选项]… 源文件 目标文件
install -m 755 chmod /bin/chmod
chattr
chattr [选项] 参数(文件)
+ - =
i 不可改变
a 只能添加数据,不能删除 一般用于日志文件
A atime不可修改 S 磁盘I/O同步
c 数据存取时经过压缩
d 不备份j 日志功能 从ext3开始有此功能
s 保密性的删除文件,硬盘空间全部回收
u 最大限度保存数据
lsattr 文件名
静态的指令集合
不占用系统的运行资源
不能申请系统资源、不能被系统调度、也不能作为独立运行的单位
进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。
一个程序的动态执行过程,它具有生命期,是动态的产生和消亡的资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源
最常被用来存放进程的可执行代码,也用于其他类型的非串行数据访问
和进程相关的文件系统概念,例如进程的当前工作目录、和进程的umask(用来为新生成文件设置权限)
所有环境变量的集合,称为进程的环境
-A,-e,ax 所有进程
-C,commmand 所有command的实例
-U,--user username 属于user的所有进程
-t,--tty terminal 从terminal启动的所有进程
-p,p,--pid N Pid为N的进程
-eo
选项 | 含义 |
---|---|
user | 用户名 |
uid | UID |
pid | 进程号 |
ppid | 父进程号 |
size | 内存大小 |
vsize | 总虚拟内存大小 |
share | 共享页面文件数量 |
nice | 进程优先级 |
pmem | 物理内存占用率 |
trs | 程序执行代码驻留大小 |
rss | 进程使用的总物理内存数 kbytes |
time | cpu使用时间 |
stat | 进程状态 |
cmd(args) | 命令内容 |
选项 | 含义 |
---|---|
-f | 详尽列表 |
-l,l | 长格式 |
-j,j | 作业格式 |
按键 | 含义 |
---|---|
q | 退出 |
h或? | 帮助 |
S | 设置两次更新之间的时间(以秒为单位) |
Space | 更新显示 |
M | 根据内存大小对进程排序 |
P | 根据CPU(处理器)占用对进程排序 |
U | 显示特定用户的进程 |
K | 杀死进程(给进程发送信号) |
R | 更改进程优先级 |
z | 高亮显示 |
x | 选中列 |
shift + < 或 > | 移动选中列 |
c | 命令详细 |
选项 | 含义 |
---|---|
-d secs | 在两次刷新之间延迟secs秒(默认为5秒) |
-n N | 刷新N次后退出 |
-p | 只监控指定的进程PID |
-i | 只显示正在使用CPU的进程 |
-H | 显示线程 |
-u | 只查看指定用户名的进程 |
-b | 将输出编排成易处理格式,适合输出到文件处理 |
列名 | 含义 |
---|---|
PID | 进程ID |
USER | 进程所有者 |
PR | 进程优先级 |
NI | 负值表示高优先级,正值表示低优先级 |
VIRT | 进程启动后使用虚拟内存总量(KB), VIRT=SWAP+RES |
RES | 实际物理内存使用大小(KB),RES=CODE+DATA |
SHR | 共享内存大小(KB),可能与其它进程共享的内存;计算进程使用物理内存大小: RES-SHR |
S | 进程状态; R 运行, S 休眠, D 不可中断, T 停止, Z 僵尸 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 使用物理内存百分比 |
TIME+ | 使用CPU总时间 |
COMMAND | 命令名称和参数 |
五种状态
状态其它说明
符号 | 含义 |
---|---|
< | 高优先级 |
N | 低优先级 |
L | 将页面锁定到内存中 |
s | 是session领导者 |
l | 是多线程的 |
+ | 位于前台进程组中 |
如果父进程在子进程之前终止,这个子进程就变成了孤儿进程
数字越小,优先级越高
-20(最大优先级)~19(最小优先级)
renice -15 -p 3371 #进程号为3371的进程优先级设置为-15
信号名 | 信号数字 | 含义 |
---|---|---|
HUP | 1 | 终端断线 |
INT | 2 | 中断(同 Ctrl + C) |
QUIT | 3 | 退出(同 Ctrl + \) |
KILL | 9 | 强制终止 |
TERM | 15 | 终止 |
CONT | 18 | 继续(与STOP相反, fg/bg命令) |
STOP | 19 | 暂停(同 Ctrl + Z) |
trap "reboot" 2 #获取2信号,执行reboot命令
trap "" 2 #屏蔽一个信号
trap 2 #恢复信号
Bash允许前台运行一个作业,后台运行多个作业
从shell提示符运行命令时,除非特别指定,命令会在前台运行
通过给命令行附加一个“&”字符,任何指定的命令也可以在后台运行
jobs #查看后台作业
ctrl+z #挂起当前的前台作业,并将其置于后台
bg %num # 将后台作业由stoped变成running
fg %num #把后台的作业搬到前台
kill %N #终止后台作业N
& #后台运行程序
nohup #将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端
screen -S test #创建一个名称为test会话,并进入此会话
Ctrl+a+d #按Ctrl+a,然后再按d 暂时离开当前会话
screen -ls #查看所有screen会话
screen -r test #进入test会话
/proc
进程号目录
cpuinfo
diskstats
filesystems
fs
loadavg
meminfo
swaps
uptime
vmstat
/sys
服务:启动后在后台执行,等待用户或其他软件调用
/etc/init.d/* ----> /etc/rc.d/init.d/*
service servername start/stop/restart/reload/status
/usr/lib/systemd/system/*.service
systemctl start/status/stop/restart/reload servername
chkconfig servername on/off
开机启动的本质
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle
备注
S表示服务开启
K表示服务关闭
systemctl enable/disable servername
开机启动本质
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
/etc/rc.local -----> /etc/rc.d/rc.local
xinetd
只执行一次的任务
atd
/etc/at.allow #允许使用at的用户
/etc/at.deny #禁止使用at的用户
/var/spool/at/ #计划任务存放位置
选项 | 含义 |
---|---|
-m | 完成工作后,使用邮件通知用户 |
-l | 查看计划任务 |
-d | 删除 |
-v | 详细信息 |
-c | 查看工作的详细内容 |
HH:MM [YY-MM-DD]
at 04:00
at> command
ctrl+d 退出
周期性执行任务
crond
/etc/cron.allow
/etc/cron.deny
/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/var/spool/cron/
/etc/crontab
-u 用户名 指定用户名称
-e 定制计划任务
-l 查看计划任务
分 | 时 | 日 | 月 | 周 | 任务 |
---|---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 命令或脚本 |
符号 | 含义 |
---|---|
* | 任何时间 |
, | 分隔时间 |
- | 时间范围 |
/n | 每隔n个单位 |
执行的任务的输出一定要重定向
linux下的文本编辑器
命令 | 含义 |
---|---|
i | 在当前光标插入 |
a | 在当前光标后面插入 |
o | 在当前行下一行插入一个新的空行并进入编辑模式 |
O | 在当前行上一行插入一个新的空行并进入编辑模式 |
C | 把光标所在位置到行尾的内容删除并进入编辑模式 |
含义 | 命令 |
---|---|
移动到文件的最后一行 | G |
移动到文件的第一行 | gg |
把光标移动到行尾 | $ |
把光标移动到行首 | ^ |
移动到第100行 | 100gg 100G |
移动光标到括号的另一半 | % |
含义 | 命令 |
---|---|
复制当前行 | yy |
粘贴 | p |
剪切当前的内容 | dd |
剪切光标到行首内容 | d^ |
剪切光标到行尾内容 | d$ |
剪切一个单词 | dw |
剪切当前行到最后一行内容 | dG |
剪切当前行到第一行内容 | dgg |
撤销 | u |
恢复 | ctrl + r |
剪切光标位置一个字符 | x |
替换光标位置一个字符 | r |
含义 | 命令 |
---|---|
显示行号 | :set nu |
取消显示行号 | :set nonu |
取消高亮显示 | :noh |
保存文件内容 | :w |
退出 | :q |
保存文件内容并退出 | :wq |
强制退出 | :q! |
强制保存退出 | :wq! |
n1到n2行查找word1并替换为word2 | :n1,n2s#word1#word2#g |
全文查找word1并替换为word2 | :%s#word1#word2#g |
将n1到n2行的内容移动到n3行后面 | :n1,n2 m n3 |
将n1到n2行的内容拷贝到n3行后面 | :n1,n2 co n3 |
删除n1到n2行的内容 | :n1,n2d |
删除空行及全部是空白字符的行 | :g/^\s*$/d |
删除所有行尾的空白字符 | :%s#\s*$## |
保存当前文件到filename文件 | :w filename |
将n1到n2行的内容保存成filename文件 | :n1,n2 w filename |
读入filename文件内容并加载到当前文件 | :r filename |
暂时离开vi到命令行模式下执行command的显示结果 | :!command |
帮助 | :h :wq |
切换到下一个文件 | :bn |
切换到上一个文件 | :bp |
1、 ctrl + v / shift + v
2、 光标(任意移动光标的命令)选中
3、 命令
批量插入模式 I
批量删除内容 x
4、 esc 退出视图模式(插入模式需要退出)
命令补全和文件路径补全tab
快捷键
命令记忆功能
别名功能
shell执行命令顺序
shell类型
shell环境加载文件
字符流处理
变量相关
shell符号
ctrl+c 终止当前命令或程序
ctrl+d 退出当前shell
ctrl+l 清屏
ctrl+a 命令行光标移到行首
ctrl+e 命令行光标移到行尾
ctrl+u 命令行删除光标到行首的内容
ctrl+k 命令行删除光标到行尾的内容
ctrl+y 粘贴
ctrl+r 命令行搜索
ctrl+ < 光标左移一个单词
ctrl+ > 光标右移一个单词
ctrl+s 锁屏
ctrl+q 解锁
自己设置一个命令,执行时其实是执行另一个命令
[root@repo ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
别名—>函数—>内置命令—>外部命令(可执行文件)
/etc/profile 通用的有效环境变量
/etc/profile.d/*.sh 软件包特有的环境变量
~/.bash_profile 用户特有的环境变量
~/.bashrc 用户特有的别名、shell功能和shell选项
/etc/bashrc 通用别名、shell功能和shell选项
~/.bash_logout 用户退出shell执行
~/.bash_history 命令历史记忆功能history
登录式shell加载配置文件顺序
/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc
~/.bashrc -> /etc/bashrc
~/.bash_logout
source(或.) 文件
< (或 0<) 覆盖
<< (或 0<<) 追加
> (1>) 覆盖
>> (1>>) 追加
2> 覆盖
2>> 追加
2>&1 &>
子shell的本质是shell的子进程
子进程是由父进程的概念引申而来,在linux系统下,我们所运行的应用程序几乎都是从init(systemd)(pid为1的进程)进程延伸出来的
shell子进程是从一个父shell进程调用shell程序而产生的一个全新的shell
source(或 .)
export
Variables变量 are used to store保存、储存
information信息 to be referenced被以后调用
and manipulated操作或更改 in a computer program程序.
They also并且还 provide提供 a way方式 of labeling标记 data数据 with a descriptive描述性 name,
so our programs can be understood理解 more clearly更清晰 by the reader阅读者 and ourselves我们自己.
It is helpful to think of variables as containers容器 that hold保持、保存 information(如果我们把变量看作成是一个保存信息的容器是更容易理解的).
Their sole主要 purpose目的 is to label标记 and store存储 data in memory内存里. This data数据 can then然后 be used使用它 throughout整个 your program
变量名=变量值
$变量名
一般用于定义shell的运行环境,保证shell命令的正确执行
shell通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等,可用于所有子进程中
定义它的shell及其子shell可以使用,使用export申明
? 获取执行上一个命令的返回值
$ 获取当前执行脚本的进程号
! 获取上一个后台进程号信息
_ 获取上一个命令的最后一个参数
/ 根目录或者路径分隔符
~ 用户家目录
# 注释
. 当前目录 隐藏文件名开头
.. 上级目录
$ 取变量值
\ 转义符号(或 续行符)
! 执行历史记录中的命令(或取反)
& 后台执行命令
() 子shell中执行命令
{} {a,g,l} {1..100} {1..10..2}
符号 | 含义 |
---|---|
‘’ | 单引号 强引用 所有字符都不解析 |
“” | 双引号 弱引用 可以解析 $ ` \ ! |
`` | 命令替换 `命令` ==== $(命令) |
符号 | 含义 |
---|---|
; | 顺序执行每个命令 |
&& | 前面执行成功, 则执行后者 |
|| | 前面执行失败, 则执行后者 |
匹配命令参数
符号 | 含义 |
---|---|
* | 匹配任意多个字符 |
? | 匹配任意一个字符 |
[] | 匹配括号中任意一个字符a-z,0-9,A-Z,a-Z |
[^] | 排除括号中任意一个字符a-z,0-9,A-Z,a-Z |
shopt 内置命令启用shell选项 (extglob) 则会识别几个扩展模式匹配运算符
shopt |grep extglob
shopt -s extglob
shopt -u extglob
符号 | 含义 |
---|---|
?(pattern-list) | 匹配给定模式零或一次 |
*(pattern-list) | 匹配给定模式零次或多次 |
+(pattern-list) | 匹配给定模式一次或多次 |
@(pattern-list) | 匹配给定模式之一 |
!(pattern-list) | 匹配除了给定的模式 |
find [path…] [expression]
优先级递减;未做任何指定时默认使用 -and
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
N 可以是 +N 或 -N 或 N
-type [bcdpflsD]
-name 匹配模式
-iname 匹配模式
-size N[bcwkMG]
-atime N
-ctime N
-mtime N
-amin N
-cmin N
-mmin N
-uid N
-gid N
-used N
-user NAME
-group 名称
-inum N
-perm [-/]MODE
-regex PATTERN
-iregex 匹配模式
-path PATTERN
-ipath 匹配模式
-anewer FILE
-empty
-false
-fstype 类型
-ilname 匹配模式
-links N
-lname 匹配模式
-cnewer 文件
-newer 文件
-nouser
-nogroup
-readable
-writable
-executable
-wholename PATTERN
-true
-xtype [bcdpfls]
-context 文本
-delete
-print
-print0
-printf 格式
-fprintf 文件 格式
-fprint0 文件
-fprint 文件
-ls
-fls 文件
-prune
-exec 命令 ;
-exec 命令 {} +
-quit
-ok 命令 ;
选项
-n 不自动换行
-e 支持转义字符
字体颜色
echo -e "\033[30m 黑色字oldboy trainning \033[0m"
echo -e "\033[31m 红色字oldboy trainning \033[0m"
echo -e "\033[32m 绿色字oldboy trainning \033[0m"
echo -e "\033[33m 黄色字oldboy trainning \033[0m"
echo -e "\033[34m 蓝色字oldboy trainning \033[0m"
echo -e "\033[35m 紫色字oldboy trainning \033[0m"
echo -e "\033[36m 天蓝字oldboy trainning \033[0m"
echo -e "\033[37m 白色字oldboy trainning \033[0m"
背景颜色
echo -e "\033[40;37m 黑底白字 welcome to old1boy\033[0m"
echo -e "\033[41;37m 红底白字 welcome to old2boy\033[0m"
echo -e "\033[42;37m 绿底白字 welcome to old3boy\033[0m"
echo -e "\033[43;37m 黄底白字 welcome to old4boy\033[0m"
echo -e "\033[44;37m 蓝底白字 welcome to old5boy\033[0m"
echo -e "\033[45;37m 紫底白字 welcome to old6boy\033[0m"
echo -e "\033[46;37m 天蓝白字 welcome to old7boy\033[0m"
echo -e "\033[47;30m 白底黑字 welcome to old8boy\033[0m"
选项
-n 显示所有行行号
-A 显示所有
输出
cat<<-EOF
1.[install lamp]
2.[install lnmp]
3.[exit]
EOF
输入输出
cat >> /etc/profile <<'EOF'
$PATH
EOF
语法
date [OPTION]… [+FORMAT]
选项
选项 | 说明 |
---|---|
-s | 设置日期与时间 |
-d | 显示字符串所指的日期与时间 -2day +48Hour +1440Min |
格式
符号 | 含义 |
---|---|
%F | 年月日 |
%T | 时分秒 |
%w | 星期 周日显示0 |
%u | 星期 周日显示7 |
%Y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
语法
seq [OPTION]… FIRST INCREMENT LAST
选项 | 说明 |
---|---|
-s | 指定分隔符(默认\n) |
-w | 使输出字符串宽度相等 |
-f FORMAT | 指定格式 |
seq -s " " -f "stu%g" 10 15
选项 | 说明 |
---|---|
-r | 降序 |
-o | 把排序后的结果输出到文件 |
-n | 以数字排序 |
-k | 指定列 -k 1.2 第一列第二个字符开始到本列最后一个字符 |
-t | 指定分隔符 |
-h | 以人类可读排序 |
-R | 随机排序 |
-u | 去除重复行 |
-f | 忽略大小写 |
选项 | 说明 |
---|---|
-c | 打印出现的次数 |
-d | 只打印重复行 |
-D | 只打印重复行,并且把所有重复行打印出来 |
-u | 只打印不重复行 |
-i | 忽略大小写 |
-f N | 比较时跳过前N列 |
-s N | 比较时跳过前N个字符 |
-w N | 对每行第N个字符以后内容不做比较 |
选项 | 说明 |
---|---|
-b | 选中第几个字符 |
-c | 选中多少个字符 |
-d | 指定分隔符,默认是空格 |
-f | 指定字段 |
语法
tr [OPTION]… SET1 [SET2]
默认是将set1中的字符替换为set2中的字符
选项
选项 | 说明 |
---|---|
-c | set1的补集 |
-d | 删除set1中字符 |
-s | 把set1中连续重复的字符以单独一个字符表示 |
-c 打印文件字节数,一个英文字母1字节,一个汉字占2-4字节
-m 打印文件字符数,一个汉字占2个字符
-l 打印文件行数
-L 打印最长行的长度,也可以统计字符串的长度
选项 | 说明 |
---|---|
-c | bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数 |
-n | 检测脚本是否正确,并不执行脚本 |
-x | 执行脚本,输出执行过程 |
符号 | 含义 |
---|---|
^ | 匹配开头 |
$ | 匹配结尾 |
^$ | 匹配开头结尾 (即空行) |
\<…\> | 锚定边界 |
. 任意一个字符
[]
\ 转义
| 或
() 分组 (把多个内容看成一个整体)
扩展正则表达式
语法
grep [OPTION]... PATTERN [FILE]...
选项 | 说明 |
---|---|
-o | 仅显示匹配的内容 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择 |
-E | 扩展的grep |
-A | 显示匹配字符串及其后n行 |
-B | 显示匹配字符串及其前n行 |
-C | 显示匹配字符串及其前后各n行 |
-w | 匹配单词 |
-c | 包含关键字的有多少行 |
-m | 匹配地几个 |
-a | 在二进制文件中,以文本文件方式搜索 |
-l | 匹配多个文件时,显示匹配的文件名 |
-r | 递归 |
-P | 调用perl正则 |
perl正则
man perlretut
名字 | 表达式 | 含义 |
---|---|---|
(零宽度正预测先行断言 ) | (?=subexp) | 如果匹配到右边则成功 |
(零宽度负预测先行断言) | (?!subexp) | 如果没有匹配到右边则成功 |
(零宽度正回顾后发断言) | (?<=subexp) | 如果匹配到左边则成功 |
(零宽度负回顾后发断言) | (? | 如果没有匹配到左边则成功 |
[root@bogon ~]# ip a s eth0 |grep -Po '(?<=inet )([0-9]{1,3}\.?){4}'
10.0.0.130
[root@bogon ~]# ip a s eth0 |grep -Po '([0-9]{1,3}\.?){4}(?=/[0-9]{1,2})'
10.0.0.130
sed [option] ‘条件{sed-commands…}’ [input-file]
-n 取消默认输出,常与sed软件的p命令连用
-r 支持扩展正则表达式,默认只支持基本正则表达式
-i 修改文件内容(修改磁盘上的数据),sed软件默认只修改内存中的数据
-e 每个 -e 选项后可接一个命令
-s 把后面的多个文件看成一个一个的单独文件 ,sed默认会把多个文件看成一个文件
-f 选项后面可以接sed脚本的文件名
p 打印模式空间的内容,通常p与选项 -n 一起使用
= 打印行号
a 追加,在指定行后添加一行或多行文本
i 插入,在指定行前添加一行或多行文本
d 删除指定的行
Ms#▇#▲#Ng
把▇替换为▲
▇能用正则表达式,但▲不能用,必须是具体的
Ms 第M行处理,无g标志,只处理第一处,有g标志则处理全部
Ng 从第N处开始处理到结尾
N 只处理第N处 ( N的取值范围: 1
分组替换
扩展
根据对应位置转换字符
另存,把模式空间的内容保存到文件中
退出sed
不执行命令,放在命令前面
连接两个命令
不清空模式空间,并读取下一行数据并追加到模式空间
定义一个标签(这里的label是标签名,可自定义)
跳转到该标签执行它后面的命令
如果前面的命令执行成功,那么就跳转到t指定的标签处,继续往下执行后续命令,否则,仍然继续正常的执行流程
如果前面的命令执行失败,那么就跳转到t指定的标签处,继续往下执行后续命令,否则,仍然继续正常的执行流程
10{sed-commands} 第10行
10,20{sed-commands} 第10到20行
10,${sed-commands} 第10到最后一行
10,+20{sed-commands} 第10到30(10+20)行
1~2{sed-commands} 第1,3,5,7…行
行号可以换成模式(条件) /pattern/
awk [option] 'BEGIN{ commands } pattern{ commands } [pattern{ commands }]...END{ commands }'
-F 指定列分隔符
-v var=val 自定义变量赋值
-P(或--posix) 支持{}
-f 指定awk脚本文件
每条记录都是由多个字段组成的,默认情况下字段之间的分隔符是由空格(或tab)
变量名 | 含义 |
---|---|
$1 | 第一个字段 |
$2 | 第二个字段 |
$3 | 第三个字段 |
$NF | 最后一个字段 |
$0 | 整行 |
NF | 每行字段数 |
FS | 输入字段分隔符 |
OFS | 输出字段分隔符 |
默认记录(行)分隔符为换行
变量名 | 含义 |
---|---|
NR | ( number of record) 行号,记录的数 awk当前处理着的,记录的数 |
RS | (record separator) 输入记录(行)分隔符 |
ORS | (output record separator) 输出时候的分隔符 |
FNR | 当前文件的读入记录号 |
/pattern/ 整行正则匹配
$3~/pattern/ $3正则匹配
$4!~/pattern/ $4正则不匹配
/pattern1/,/pattern2/{command}
/pattern/,NR==xxx{command}
NR==xxx,NR==xxx{command}
/pattern/ && /pattern/ 逻辑and,同时满足两个模式
/pattern/ || /pattern/ 逻辑or,满足其中一个模式
!/pattern/ 逻辑not,不满足模式
pattern ? pattern : pattern
awk读取文件之前执行
awk读取完所有文件之后,再执行END模块
tcp状态
连接多个计算机组成一个网络,让计算机之间通信
在一个交换机的端口上连接的所有终端设备,均在一个网段上(称为一个广播域)
同一网络
连接多个网络,让不同的网络通信
数据转发,维护路由表
路由器会作为网关
连接广域网(WAN)
网关: 不同网络通信的逻辑地址
路由: 网络间数据通信的规则
一个套接字对(socket pair)是一个定义该网络连接的两个端点的五元组
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 <- 第一块网卡逻辑设备名;第二块为eth1
TYPE=Ethernet <- 上网类型,目前基本都是以太网
UUID=sasd-sdasd-wqe-12 <- 通用唯一识别码(Universally Unique Identifier);克隆虚拟主机时,要进行删除(centos6)
HWADDR=00:0c:29:10:2e:28 <- 以太网硬件地址即MAC地址,如果是vmware克隆的虚拟机 克隆虚拟主机时,要进行删除(centos6)
ONBOOT=yes <- 这个地方要设置为yes,才能保证下次开机启动激活网卡设备
NM_CONTROLLED=no <- 是否通过NetworkManager管理网卡设备(centos6关闭)
BOOTPROTO=none <- 启动协议,获取IP地址配置方式,有none|bootp|dhcp三个选项
IPADDR=10.0.0.51 <- 表示本台局域网中服务器的固定IP地址
NETMASK=255.255.255.0 <- 子网掩码,用来规划网络为和主机位的,一般为255.255.255.0
GATEWAY=10.0.0.254 网关地址
DNS1=223.5.5.5 <- 主DNS,这里默认会覆盖以及优先于/etc/resolv.conf的配置生效
DNS2=223.6.6.6 <- 第二个DNS,这里默认会覆盖以及优选于/etc/resolv.conf的配置文件
PEERDNS=yes <- 是否确认网卡配置文件中的DNS配置优先于/etc/resolv.conf配置文件
ip addr add 10.0.0.33/24 dev eth0 label eth0:0
ip link set dev eth0 up/down
ip route add 10.15.150.0/24 via 192.168.150.253 dev eth0
永久添加
/etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 10.172.7.247 dev eth0
100.64.0.0/10 via 10.172.7.247 dev eth0
172.16.0.0/12 via 10.172.7.247 dev eth0
192.168.0.0/16 via 10.172.7.247 dev eth0
ifcfg-bond0
NAME=bond0
DEVICE=bond0
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
ifcfg-eth0
MASTER=bond0
SLAVE=yes
桥接网卡 ifcfg-br0
TYPE=Bridge
其它网卡
BRIDGE=br0
选项 | 含义 |
---|---|
-a | 所有 |
-n | 数字(不解析名字) |
-l | 监听 |
-t | tcp |
-u | udp |
-p | pid/program |
-s | 连接统计 |
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html-single/networking_guide/index#sec-Using_the_NetworkManager_Command_Line_Tool_nmcli
接口类型
接口类型
英文 | 中文 |
---|---|
disk | 磁盘 |
head | 磁头 |
sector | 扇区 |
track | 磁道 |
Cylinder | 柱面 |
Units | 单元块(一个柱面的大小) |
block | 数据块 |
inode | 索引节点 |
一个扇区大小 512B
MBR本身仅是单个物理扇区(512字节)
[root@oldboy ~]# fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #删除一个分区
g create a new empty GPT partition table #创建GPT分区表
G create an IRIX (SGI) partition table
l list known partition types #查看分区类型对应编号列表
m print this menu #打印帮助菜单
n add a new partition #新建一个分区
o create a new empty DOS partition table
p print the partition table #打印分区表
q quit without saving changes #退出程序,不保存
s create a new empty Sun disklabel
t change a partition's system id #更改分区类型
u change display/entry units
v verify the partition table
w write table to disk and exit #将操作写入分区表并退出程序
x extra functionality (experts only)
partprobe /dev/sdc
传统的fdisk分区不支持2T以上的磁盘分区,而parted分区可以支持,而ext4格式不支持16T以上的磁盘空间分区,必须使用xfs分区
parted /dev/sdb mklabel gpt Yes
parted /dev/sdb mkpart primary 0 10 Ignore
parted /dev/sdb mkpart primary linux-swap 11 21 Ignore
parted /dev/sdb mkpart logical ext4 22 32 Ignore
parted /dev/sdb p
[root@localhost ~]# parted /dev/sdb # 使用parted来对GPT磁盘操作,进入交互式模式
(parted) mklabel gpt # 将MBR磁盘格式化为GPT
(parted) print #打印当前分区
(parted) mkpart primary 0 4.5TB # 分一个4.5T的主分区
(parted) mkpart primary 4.5TB 12TB # 分一个7.5T的主分区
(parted) print #打印当前分区
(parted) quit #退出
Information: Don’t forget to update /etc/fstab, if necessary.
mkfs
mount
RAID级别 | 最少磁盘数量 | 优点 | 缺点 | 应用场景 |
---|---|---|---|---|
RAID 0 | 1 | 读写熟读快 | 没有任何冗余 | mysql slave,集群的节点RS |
RAID 1 | 2 | 100%冗余 | 读写性能一般,成本高 | 数据重要,且不能宕机的业务, 监控、系统盘 |
RAID 5 | 3 | 具备一定性能和冗余,可以坏一块 | 读性能不错 写入性能不高 | 一般的业务都可以用 |
RAID 10 | 4 | 读写速度快,100%冗余 | 成本高 | 性能和冗余要求都很好的业务。数据库主库和存储的主节点 |
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
/proc/filesystems
/lib/modules/3.10.0-957.el7.x86_64/kernel/fs/
Linux正统的文件系统(如ext2、ext3)一个文件由目录项(文件名)、inode(元数据) 和 数据组成
创建文件系统,磁盘被分成块组( 块组0 块组1 … 块组n )
记录本块组从何处开始
使用位示图记录哪些块已用 ,哪些块未用
记录inode的使用情况
各inode组成的区域,每个inode都有一个唯一编号
各block组成的区域,用于存放文件数据
xfs支持16TB以上的文件系统
xfs提供了xfsdump备份, xfsrestore恢复
xfs默认inode大小为512B
交换分区文件系统,当内存使用
dd if=/dev/zero of=/tmp/swap bs=1M count=128
mkswap /tmp/swap
swapon /tmp/swap
swapon -a
swapoff /tmp/swap
swapoff -a
swapon -s
cat /proc/sys/vm/swappiness
30
临时文件系统,是一种基于内存的文件系统
制作tmpfs文件系统
mount -t tmpfs -o size=100m tmpfs /mnt/tmpfs
添加导/etc/fstab
tmpfs /mnt/tmpfs tmpfs size=100m 0 0
用于复制文件并对原文件的内容进行转换和格式化处理
dd if=/dev/zero of=/tmp/swap bs=1M count=128
dd if=/dev/sda of=mbr.bin bs=512 count=1