Linux基础命令与知识点
Linux基础知识与常见命令
作者:卖兔子的萝北
分类:学习笔记
根目录:
bin: 可执行文件
dev:硬件设备文件
etc: 系统配置文件
boot:开机启动文件
usr/bin:可执行文件
/var/log: 日志文件
/usr/share/doc: 程序文档
/usr/share/man: man手册
Linux扩展:
执行命令:Linux在执行命令时先去查询是不是别名,然后再去查看是不是内部命令,最后才去PATH路径中查询命令
在/root/.vimrc配置文件中set tabstop=4 是设置tab键为4个空格
linux内核的版本规定第二位为偶数是稳定版,奇数是测试版
运行级别:运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运行级别4:系统未使用,保留运行级别5:X11控制台,登陆后进入图形GUI模式运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
/tmp目录一般用来存储临时文件。
/etc/init.d是/etc/rc.d/init.d的一个连接文件,linux中服务的启动脚本存放在/etc/rc.d/init.d下
df –h以易读的形式显示目录的容量。
IP地址
作用:用来标识一个节点的网络地址(点分十进制)
32个二进制数A类:1-127 网+主+主+主B类:128-191 网+网+主+主C类:192-223 网+网+网+主
Linux
常见版本:Red Hat Enterprise Linux 5/6/7/8Suse Linux Enterprise 12Debian Linux 7.8Ubuntu Linux 14.10/15.04
Linux 系统命令:
uname -r :查看内核版本lscpu:查看cpu信息
examples:例子,man帮助
Linux常见命令
关机: poweroff,init 0,shutdown -h now(root使用),run level 0,halt
重启: reboot,shutdown -r now,run level 6 ,init 6bash-completion #tab键安装包
pwd:查看当前所在位置hostname:重命名 hostname 名字ifconfig:查看网卡信息head:查看文件头几行 head -ntail:查看末尾几行 tail -ngrep:grep ^ grep * grep 直接加信息 grep ^$ 过滤空行grep -v 取反 可与管道连用cat:cat -n显示行数which:查看命令相对应的程序alias:别名 alias a='ls' #单引号unalias: 取消别名 unalias amkdir:mkdir -p 递归创建目录cp:cp -r 复制目录 \cp 当次取消cp别名cp -p 复制文件时保持该文件的权限
快捷方式: lnln -s /opt/A.txt /opt/B.txt #软连接 有-sln /opt/A.txt /opt/C.txt #硬链接 没有-sls:ls -a 查看全部文件 //不怎么用ls -A 查看隐藏文件 (大写A)ls -l 长格式显示信息ls -d 查看目录信息ls -h 查看大小find: find 目录/文件 -[选项]
查找 可以是目录、文件 多个查找条件可通过管道一起使用,来达到精确查找的目的
-i:忽略大小写查询
-- 按类型查找(f,d,l) -d 查找目录 find /etc/ -type d -l 查找快捷方式 find /etc/ -type l -f 查找文件 find /etc/ -type f
--按名称查找 find /etc/passwd -name "名称注意用双引号" 例子:find /etc/passwd -name "zhangsan"
--按照大小查找find /目录 -size +(-) 1024(b/k/M/G) //大小尽量别用1,会有bug不显示例子:find /etc/ -size +10M
--按照所属用户查找
find /目录路径 -user 用户
find / -user zhangsan
--按照修改时间查找
find /目录路径 -mtime +-天数 //+表示多少天以外 -表示多少天以内
find /etc/ -mtime -10 //查找10天以内创建的所有文件--exec 查找的后面可加其他操作
find 范围 条件 -exec 附加操作命令 {} \; // {}是查找后所匹配的内容,\;是该
命令固定的结束格式
例子:find - f /var/www/html -exec cp {} /test/var \;
//把/var/www/html目录下的文件复制到/test/var 下面vim: 3种模式:命令模式,末行模式,输入模式x :删除当前光标的字符
复制:yy 或 数字+yy
粘贴:p //小写
光标跳转:gg到文件第行 G最后一行 数字+G 跳转到指定行首
删除:dd 数字+dd d^删除至行首 D删除至行尾
查找: /查找内容
撤销:u
取消撤销:Ctrl+r
整行行内替换::s/查找内容/替换内容/g
区域内替换: :% s/查找内内容/替换内容/g
指定行替换::n,m s/查找内内容/替换内容/g
显示行号:set nu
读入其他文件内容: :r /文件路径history: history -c #清空历史记录
date: 查看日期 可多个命令连用
date +%Y #查看年
date +%m #查看月 小写
date +%d #查看日 小写
date +%H #查看小时
date +%M #查看分钟
date +%S #查看秒钟
date +%F #查看年月日
date +%R #查看时分
#例子:date +%F+%R 查看年月日时分du: du -sh #查看文件大小
#例子:du -sh / 查看根目录的大小计划任务:crontab
crontab -e #进入编写周期任务模式,默认用户root
crontab -e -u 用户 :指定用户
* * * * * 执行的命令
分 时 日 月 周
例子:
*/5 * * * * /bin/echo "hi harry" >>/crontab.txt#每5分钟向根下ceontab.txt 追加一个"hi harry"
1 1 * * * /bin/echo "hi harry" >>/crontab.txt #每天1:1向根下ceontab.txt 追加一个"hi harry"passwd:修改密码
交互式修改密码 passwd birunlin1
非交互式修改密码echo '123' | passwd --stdin birunlin1 //只用root用户才可以使用非交互式修改密码
yum与rpm
yum仓库[随意]name='随意'baseurl=file:///mnt/cdrom/enabled=1 #是否启用此仓库gpgcheck=0 #0不检查红帽认证yum基本命令: yum remove httpd #卸载httpd服务yum list httpd #在yum仓库里查询这个软件(是否安装)精准查找yum search 关键词 #粗略查找yum info httpd #查看关于httpd的描述yum provides /etc/passwd #查看哪些软件可以提供passwd文件(目录/程序)rpm软件包的基本命令:rpm -e httpd #卸载软件rpm -q httpd #查询httpd(软件名)是否安装 必须是软件全名rpm -qa #当前系统中所有已安装软件包 (建议后面接less命令)rpm -qi httpd #查看软件包的详情信息rpm -ql #查看指定软件安装清单rpm -qf /usr/bin/vim # 查看是哪个包产生了vim程序 (软件删除了也可以查询)rmp -qpl /mnt/cdrom/vsftpd-3... 查询指定安装包的安装清单 (未安装的软件)rpm -qpi /mnt/cdrom/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm #查看指定软件的详情信息 rpm -i #安装软件包文件rpm -iv #安装软件包文件 显示详情信息rpm -ih #安装软件包文件 以#显示安装进度rpm -ivh --force #强制安装该软件(覆盖安装)rpm --test #测试安装软件rpm -e #卸载软件
yum与rpm相对应的命令:卸载: yum remove httpd rpm -e httpd 查询是否已安装这个软件: yum list httpd rpm -q httpd查看关于软件的描述: yum info httpd rpm -qi httpd
zip与tar (压缩 解压)
zip: #归档工具 创建压缩包#zip -r 归档文件名 被归档文件路径#例子:zip -r passwd.zip /etc/passwd
unzip:释放归档 解压缩unzip 已归档的文件包 -d 解压缩的目录#例子:unzip passwd.zip -d /etc
tar: -c(小写的c)创建压缩包 -f 指压缩包名称(放在最后) -tf 再不解压缩的情况下显示压缩包里面的压缩文件 #例: tar -tf /test/ceshi.tar.gz 压缩命令: tar -zcf 压缩包 目标文件 目标文件 -J xz 格式 例:tar -zcf /test/ceshi.tar.gz /etc/passwd /var/www/html -z gz 格式 例: tar -jcf /test/ceshi.tar.bz2 /etc/passwd /var/www/html -j bzip2 格式 例: tar -Jcf /test/ceshi.tar.xz /etc/passwd /var/www/html 解压命令:tar -xf 压缩包路径 -C(大写的C) 目录路径#例:tar -xf /test/ceshi.tar.gz -C /test2/tar -xf /test/ceshi.tar.bz2 -C /test2/tar -xf /test/ceshi.tar.xz -C /test2/
用户与用户权限常见命令(属主、属组)
用户部分常见命令:用户账户:1.登录操作系统 2.资源访问控制(不同用户,不同权限)UID:用户id GID:组id组账户分类:基本组,附加组(从属组)基本组:由系统创建,与用户同名附加组:由管理员创建,由管理员 管理 组成员id 已存在用户 //查看用户的详情信息# id birunlin1# uid=12345(birunlin1) gid=1236(xiaoming1) 组=1236(xiaoming1),1125(stugrp)useradd -选项 用户名 (useradd的选项只能在创建用户是使用)useradd zhangsan 直接添加用户useradd -u -d -G -s useradd -u 指定用户uid 用户名 #例子:useradd -u 1234(1001-60000) zhangsan useradd -d 指定用户家目录 用户名 #例子:useradd -d /var/preserve/ xiaoming2useradd -G 指定用户附加组 用户#例子:useradd -G stugrp(自定义的组) xiaoming3useradd -s 指定用户解释器 (/sbin/nologin 该解释器用户无法登陆)#例子:useradd -s /sbin/nologin xiaoming4usermod -选项 用户名 (更在已存在用户的信息)usermod -l 想要改的名 已存在用户#例子:usermod -l birunlin1 xiaoming1usermod -u 想要改的uid 已存在用户#例子:usermod -u 12345 birunlin1usermod -s 解释器 已存在用户#例子: usermod -s /sbin/nologin birunlin1 usermod -d 指定家目录 已存在用户 (不会自己主动创建家目录,需要手动创建不存在的目录)#例子: usermod -d /root birunlin1usermod -G 已存在的附加组 已存在的用户#例子:usermod -G stugrp birunlin1
userdel:删除 userdel 用户 //仅删除用户userdel -r 用户 //用户及所有用户的信息一并删除,包括家目录
/etc/passwdroot:x:0:0:root:/root:/bin/bash用户名:密码占位符:UID:基本的GID:用户描述信息:家目录:解释器 /etc/shadow,保存密码字串/有效期等信息nsd01:$6$.....Da4Vo.:18512:0:99999:7:::用户名:密码加密字符串:上一次修改密码的时间上一次修改密码的时间:从1970-1-1到达上一次修改密码时间,经历的天数字段1:用户帐号的名称字段2:加密后的密码字符串字段3:上次修改密码的时间 字段4:密码的最短有效天数,默认0字段5:密码的最长有效天数,默认99999字段6:密码过期前的警告天数,默认7字段7:密码过期后多少天禁用此用户账号字段8:帐号失效时间,默认值为空字段9:保留字段(未使用)
/etc/group,保存组帐号的基本信息 root:x:0:birunlin1用户名:密码占位符:组的id(gid):本组成员列表
/etc/gshadow 组长 组成员tarena:!:gelin01:gelin02,gelin01组名 密码占位符 组长 组成员grep tarena /etc/gshadow //查看组成员信息groupdel命令格式:groupdel 组名删除的目标组不能是用户的基本组
groupadd stugrp //添加stugqp组
groupdel stugrp //删除stugqp组gpasswd命令管理组成员 -a -d -M -A 补充:gpasswd -0 用户名 #强制用户第一次登录修改密码gpasswd [选项] 用户 组grep stugrp /etc/group //查看stugrp基本信息groupadd stugrp //创建附加组-a 添加组成员 每次只能添加一个例子:gpasswd -a natasha stugrp-d 删除组成员 每次只能删除一个例子:gpasswd -d kenji stugrp-M 定义组成员用户列表 可定义多个例子:gpasswd -M kaka,kenji stugrpgpasswd -M '' stugrp #定义组成员列表为空 类似全部删除
/etc/gshadow,保存组帐号的管理信息–每个组记录一行,以:分割为4个字段 gpasswd -A natasha stugrp #定义组管理员为natasha
groupdel stugrp //删除组 不能删除用户的基本组用户家目录的配置文件 /etc/skel/ 这个目录下面有什么创建新用户是都会直接到新用户的家目录下面.bash_profile:每次登录时执行,定义初始化变量 仅限于当前用户使用.bashrc:每次开启新的终端时执行,定义永久的别名 仅限于当前用户使用
全局配置文件 /etc/profile //定义初始变量 所有用户都生效 /etc/bashrc //自定义别名 所有用户都生效基本权限与归属读取权限 r : cat、head、tail、less、grep 查看目录内容写入权限 w :vim保存退出、>、>> 可以新建、删除、改名目录的内容,对目录本身没有修改权限执行权限 x :shell脚本,Python脚本 可以切换到该目录下(切换目录至于x权限有关)
归属关系所有者:属主 拥有此文件/目录的用户,-user用u表示所属组:属组 拥有此文件/目录的组,-group用g表示其他用户: 除属主,属组外的其他用户 -other 用o表示r4w2x1 默认目录权限755,文件644 取决于umask的设置,777减去文件里面的值为目录的默认权限,再减去一个执行的权限为文件权限(默认文件没有执行权限)
chmod 命令:修改文件目录权限chmod [ugoa] [+-][rwx] 文件(目录) chmod -R [ugoa]=[rwx] 需要递归的目录chmod u+r(w,x) /testchmod u=r(w,x) /testchmod u=rwx,g=rx,o=--- /testchmod -R 0=--- /test/ceshi/aaa/bbb 递归设置权限Linux对用户权限的判断: acl > 属主>属组>其他用户chown:修改属主属组权限chown 属主 文件(目录)chown 属主:属组 文件(目录)chown :属组 文件(目录)chown -R 属主(属组) 目录附加权限 : 粘滞建 Sticky Bit权限 t权限 (适用目录)占用其他人(other)位的x位,显示t/T,取决他人是否有x键适用目录 防止他人滥用写入权限,有写入权限时也无法删除、修改其他文件名chmod o+t /home/pubdrwxr-xr-t. 2 root root 6 9月 9 03:22 /home/pub/SGID 权限 占用属组的x位 (适用目录)显示为s/S,取决属组是否有写入权限在一个目录有SGID权限时,新建的文档会自动继承次目录属组的身份chmod g+s /home/pubdrwxr-sr-x. 2 root root 6 9月 9 03:22 /home/pub/
ACl权限能够对个别用户个别组设置独立权限setfacl [选项] u:用户名:权限 文件[选项] g:属组:权限 文件 选项: -m 添加一条ACL策略-x 清除制定的ACL策略-b 清除所有已设置的ACL策略-R 递归设置ACL策略setfacl -m u:birunlin:rwx /etc/passwdsetfacl -m g:xiaoming:rwx /getfacl /目录(文件) 查看当前目录(文件)已设置的ACL策略 将某个用户拉黑(制作黑名单)setfacl -m u:zhangsan:--- /home/pub-R 递归设置ACL策略setfacl -Rm u:zhangsan:rx /aaa/bbb只会递归已经设置好的目录,以后在创建的不会继承SUID权限:占用属主的x位,显示为s/S,取决于属主是否有x权限仅对可执行程序有意义,其他用户使用带有SUID的程序是,具有此执行的默认属主chmod u+s /usr/bin/mkdir
磁盘分区
磁盘分区-格式化磁盘-挂载点挂载 partprobe 刷新磁盘分区
磁盘分区: lsblk:查看当前系统所能识别的所有硬盘分区模式:MBR与GPT,不能出现在同一磁盘上MBR/msdos分区模式:最大容量2.2TB分区类型:主分区、拓展分区、逻辑分区最多只能有4个主分区,拓展分区至多有一个,逻辑分区不限一般情况下:3个主分区+1拓展分区+n个逻辑分区拓展分区不能存储,不能格式化fdisk 硬盘设备 m 帮助p 查看现有分区表n 新建分区d 删除分区q 放弃并推出w 保存并退出例子:lsblk fdisk /dev/sdb主 n 回车 回车 回车 +10G 主 n 回车 回车 回车 +10G 主 n 回车 回车 回车 +10G 拓展 n 回车 回车 回车 回车逻辑 n 回车 +15G n 回车 +15Gw
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 60G 0 disk ├─sdb1 8:17 0 10G 0 part ├─sdb2 8:18 0 10G 0 part ├─sdb3 8:19 0 10G 0 part ├─sdb4 8:20 0 1K 0 part ├─sdb5 8:21 0 10G 0 part └─sdb6 8:22 0 20G 0 part sdc 8:32 0 60G 0 disk sr0 11:0 1 8.8G 0 rom GPT分区模式:全局唯一表示分区表 突破固定大小64字节的分区表限制最多可支持128个主分区,最大支持18EB磁盘1EB=1024PB=1024*1024TB parted 常用GPT分区模式指令 例子:[root@localhost ~]# lsblksdc 8:32 0 60G 0 disk[root@localhost ~]# parted /dev/sdc #parted的使用方式 parted /硬盘的绝对路径(parted) mktable gpt #设置GPT分区模式(parted) p #查看硬盘信息Model: VMware, VMware Virtual S (scsi)Disk /dev/sdc: 64.4GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags: Number Start End Size File system Name 标志(parted) unit GB #设置按照GB显大小 (parted) mkpart #划分新的分区分区名称? []? hhsdc1 #分区名称随便改文件系统类型? [ext2]? #文件类型可以直接回车 后面格式化时可自行修改起始点? 0 #起始点默认为0 (可用%表示)结束点? 10G #结束点减去起始点为硬盘大小 (可用%表示)忽略/Ignore/放弃/Cancel? i #第一次设置硬盘时会弹出警告,直接按i忽略就行parted) mkpart 分区名称? []? sdc2文件系统类型[ext2]?起始点? 10G结束点? 30G(parted) p (parted) p Model: VMware, VMware Virtual S (scsi)Disk /dev/sdc: 64.4GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags: Number Start End Size File system Name 标志1 0.00GB 10.0GB 10.0GB hhsdc12 10.0GB 30.0GB 20.0GB sdc2(parted) q #退出lsblk #查看当前系统所能识别的所有硬盘sdc 8:32 0 60G 0 disk ├─sdc1 8:33 0 9.3G 0 part └─sdc2 8:34 0 18.6G 0 part
分区的格式化:
ext4(RHEL6)优势 :存放文件多,小
xfs (RHEL7)优势: 文件数量少,大
格式化:赋予空间文件系统的过程(赋予硬盘一个存放数据的规则)
文件系统:空间存放数据的规则mkfs.xfs -f /dev/sdb1 #强制格式化为.xfs
windows默认文件系统:NTFS FAT
Linux默认文件系统:ext4(RHEL6) xfs(RHEL7) FATmkfs.ext4 /dev/sdb1 #格式化为ext4格式
mkfs.xfs /dev/sdb2 #格式化为xfs格式
blkid /dev/sdb1 #查看分区文件系统类型
/dev/sdb1: UUID="92b591df-4b5f-49ae-98fb-9148eb6319bc" TYPE="ext4"
blkid /dev/sdb2 #查看分区文件系统类型
/dev/sdb2: UUID="680f2eb1-c3ce-42b0-ba00-f71208932d54" TYPE="xfs"
分区的挂载使用:
df -h 查看当前虚拟机已挂在的文件
和挂载yum一样 ,建个目录为挂载点
mount /dev/sdb1 /mysdb1
df -h 查看正在使用挂载的设备
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb2 10G 33M 10G 1% /mysdb2开机自动挂载
vim /etc/fstab
/dev/sdb1 /mypart1 ext4 defaults 0 0
/dev/sdb2 /mypart2 xfs defaults 0 0
mount -a #检测开机自动挂载是否正确
制作交换空间的第一种方式(磁盘)
利用分区制作交换空间free -m #交换空间的信息swapon #交换空间的成员信息mkswap /dev/sdc1 #格式化交换系统blkid /dev/sdc1 #查看文件系统的类型swapon /dev/sdc1 #启用交换分区swapon #交换成员的空间信息free -m #交换空间的信息 vim /etc/fstab #设置开机自动挂载/dev/sdc1 swap swap defaults 0 0swapoff /dev/sdc1 #停止使用交换空间swapon #交换空间的成员信息swapon -a #检测交换分区书写swapon
制作交换空间的第二种方式(直接使用空间)
利用文件所占用的空间,制作交换空间 dd:主要就是占用空间用的命令dd if=源设备 of=目标设备 bs=块大小 count=块数ls /dev/zero #永远都在产生数据的设备dd if=/dev/zero of=/opt/swap.txt bs=1M count=2048du -sh /opt/swap 2.0G /opt/swap.txtmkswap /opt/swap.txt #格式化交换文件系统,格式化后文件类型表位swapblkid /opt/swap.txt #查看文件系统类型/opt/swap.txt: UUID="75e8c3d7-6fd3-4640-bace-958a409ad424" TYPE="swap" swapon /opt/swap.txt #启用交换分区swapon: /opt/swap.txt:不安全的权限 0644,建议使用 0600。swapon #查看交换空间的成员信息free -m #查看交换空间信息vim /etc/fstab #设置开机自动启动交换分区/opt/swap.txt swap swap defaults 0 0swapoff /opt/swap.txt #停止使用交换空间swaponswapon -a #检测交换分区书写(交换分区专用)
逻辑卷 (虚拟磁盘技术)
物理卷(pv)-卷组(vg)-逻辑卷(lv)-逻辑卷创建挂载点(使用)
基本概念:组成成员:未挂载 未格式化的磁盘分区(磁盘)(可以是多个)作用:1.可以整合分散空间 2.支持空间在线扩大(不影响数据存储)制作过程:多个物理卷(PV)(硬盘)组成卷组(VG),再从卷组中换分出逻辑卷(LV) //准备硬盘(硬盘分区也可以)-制作卷组-制作逻辑卷pvs #显示系统所有的物理卷信息LVM:管理工具集功能 物理卷管理 卷组管理 逻辑卷管理Scan 扫描 pvscan vgscan lvscanCreate 创建 pvcreate vgcreate lvcreateDisplay 显示 pvdisplay vgdisplay lvdisplayRemove 删除 pvremove vgremove lvremoveExtend 扩展 / vgextend lvextend制作卷组: 格式: vgcreate 卷组名 设备路径# Successfully:成功lsblk /dev/sdb[1-2] (/sdb{1-2})NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsdb1 8:17 0 9.3G 0 part sdb2 8:18 0 18.6G 0 part sdb3 8:19 0 18.6G 0 part vgcreate myvg /dev/sdb1 /dev/sdb2 #把sdb1,sdb2制作成名为myvg的卷组vgs #查看卷组VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 #系统自带myvg 2 0 0 wz--n- 27.93g 27.93g #刚刚制作的卷组制作逻辑卷:格式:lvcreate -L 逻辑卷大小 -n 逻辑卷名字 基于卷组lvcreate -L 15G -n mylv myvg #制作一个15G大小,逻辑卷名字mylv,基于卷组myvglvs 查看逻辑卷信息mylv myvg -wi-a----- 15.00g
逻辑卷的使用:ls -l /dev/myvg/mylv #查看逻辑卷的信息lrwxrwxrwx. 1 root root 7 9月 12 02:52 /dev/myvg/mylv -> ../dm-2 #/dm-2是Linux系统所识别的逻辑卷名字mkfs.xfs /dev/myvg/mylv #格式化逻辑卷为xfs类型blkid /dev/myvg/mylv #查看逻辑卷类型 也可以这样blkid /dev/dm-2mkdir /mylv #创建逻辑卷的挂载点vim /etc/fstab #设置开机自动挂载/dev/myvg/mylv /mylv xfs defaults 0 0mount -a #检查自动挂载df -h #查看已挂载设备文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/myvg-mylv 15G 33M 15G 1% /mylvlsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT└─sdb2 8:18 0 18.6G 0 part └─myvg-mylv 253:2 0 15G 0 lvm /mylv
逻辑卷的扩展: 卷组有足够空间直接扩展逻辑卷大小,然后刷新一下逻辑卷1.扩展空间大小 lvextend -L 想要扩展到的大小 逻辑卷lvextend -L 27G /dev/myvg/mylvlvs mylv myvg -wi-ao---- 27.00g #显示逻辑卷以扩展df -h | tail -1文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/myvg-mylv 15G 33M 15G 1% /mylv #显示还是原来的大小,因为要刷新空间系统(赋予规则)2.扩展文件系统resize2fs:刷新ext4文件系统xfs_growfs:刷新xfs文件系统 xfs_growfs /dev/myvg/mylv #刷新逻辑卷lvs mylv myvg -wi-ao---- 27.00g df -h | tail -1文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/myvg-mylv 27G 33M 27G 1% /mylv #逻辑卷已经成功挂载并扩展为27G大小 实验完成
逻辑卷的扩展:卷组无足够空间先扩展卷组大小,在扩展逻辑卷大小,刷新逻辑卷1.扩展卷组空间vgextend 想要扩展的卷组 赋予空间的硬盘vgextend myvg /dev/sdb3 #把sdb3的空间给myvg卷组Physical volume "/dev/sdb3" successfully created.vgs VG #PV #LV #SN Attr VSize VFree myvg 3 1 0 wz--n- <46.56g <19.56g2.扩展逻辑卷空间大小lvextend -L 逻辑卷想要扩展到多大 逻辑卷路径lvextend -L 46G /dev/myvg/mylv #把mylv扩展到46G大小lvsmylv myvg -wi-ao---- 46.00g df -h | tail -1 /dev/mapper/myvg-mylv 27G 33M 27G 1% /mylv #需要扩展文件系统才能把使用空间提升至46G3.扩展文件系统 (具体解释上面有)xfs_growfs /dev/myvg/mylv文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/myvg-mylv 46G 33M 46G 1% /mylv #试验完成逻辑卷的知识点补充: 1.逻辑卷的大小也可以缩减,可能会丢失数据 没什么用2. vgdisplay myvg #查看卷组详细信息PE Size 4.00 MiB #大小只能是4的倍数 可修改(面试) (1) lvcreate -L 250M -n test myvg #创建一个250M的逻辑卷lvstest myvg -wi-a----- 252.00m #大小为252M,只能是4的倍数vgchange -s 1M myvg #修改PE的大小 lvcreate -L 250M -n test myvg #再次创建一个250M的逻辑卷lvs test2 myvg -wi-a----- 250.00m #大小为250M(2) lvcreate -l 50 -n test3 myvg # 按照个数创建一个逻辑卷(小写l表示按照PE个数创建逻辑卷)lvstest3 myvg -wi-a----- 50.00m #50个1M 所以大小为50M 3.删除逻辑卷(1)删除正在使用的逻辑卷umount /mylv/ #先取消挂载逻辑卷lvremove /dev/myvg/test3 #删除逻辑卷vim /etc/fstab #取消自动挂载lvs (2)删除卷组,基于次卷组出案件的所有逻辑卷全部删除lvremove /dev/myvg/test2 #卸载逻辑卷 lvremove /dev/myvg/testlvremove /dev/myvg/mylv vgsmyvg 3 0 0 wz--n- <46.56g <46.56gvgremove myvg # 卸载卷组vgs #自己的卷组已经没有了VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 myvg 3 0 0 wz--n- <46.56g <46.56g
进程管理
程序:静态 没有运行的代码 只占用硬盘空间进程:动态 正在运行的代码 占用CPU与内存的资源进程唯一表示:PID父进程与子进程: 树形结构 systemd是所有进程的父进程,也叫上帝进程查看进程: 最小化安装的虚拟机要先安装 yum -y install psmisc格式: pstree [选项] [PID 或用户名]-a 显示完整命令行-p 列出对应PID编号 pstree 查看正在运行的进程信息pstree birunlin 按照用户名查询进程bash───vimpstree -p birunlin #显示进程的PIDbash(6838)───vim(6874) pstree -a lisi #显示完成的命令bash└─vim a.txt ps aux 列出正在运行的进程(显示的信息非常详细)用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令ps -elf 列出正在运行的所有进程(可以显示父进程PID)
进程动态排名 top : top [-d 刷新秒数] [-U 用户名]输入top进入时 P 按照CPU进行排序M 按照内存进行排序
检索进程 pgrep [选项] 查询条件-l 输出进程名,而不仅仅是PID-U 检索制定用户的进程-X 精确匹配完整的进程名pgrep -l aaapgrep -l ccc
进程的前后台调度Ctrl+z 组合键 挂起 暂停当前的进程并转入后台jobs #查看后台进程的信息fg 将后台任务恢复到前台运行bg 激活后台被挂机的任务firefox & #进程正在运行的状态放入后台 [1]+ 已停止 firefox jobs -l #显示后台进程信息,显示PID bg 1 #将后台编号为1 的进程恢复运行 fg 1 #将后台编号为1的进程恢复到前台 •干掉进程的不同方法–Ctrl+c 组合键,中断当前命令程序-kill 进程 #直接杀死进程–kill [-9] PID... 、kill [-9] %后台任务编号–killall [-9] 进程名... #杀死所有进程–pkill [-9] 查找条件,包含就可以 -killall -9 -u birunlin #强制踢出一个用户-xkill #会出现一个鼠标,点哪个杀哪个例子:yum -y install xorg-x11-apps[root@localhost ~]# xeyes^Z #按ctrl +z 暂停放入后台[1]+ 已停止 xeyes[root@localhost ~]# jobs #查看后台进程的信息[1]+ 已停止 xeyes[root@localhost ~]# bg 1 #将后台编号为1 的进程恢复运行[1]+ xeyes &[root@localhost ~]# jobs[1]+ 运行中 xeyes &[root@localhost ~]# fg 1 #将后台编号为1的进程恢复到前台xeyes^C #按ctrl +c 结束进程
RAID 磁盘整列
•廉价冗余磁盘阵列–通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘–阵列的价值:提升I/O效率、硬件级别的数据冗余–不同RAID级别的功能、特性各不相同提高可靠性(相对来说很可靠,人品不爆炸就没问题。最稳妥的方法还是备份数据)
•RAID 0,条带模式–同一个文档分散存放在不同磁盘 –并行写入以提高效率,没有容错功能–至少需要两块磁盘
•RAID 1,镜像模式–一个文档复制成多份,分别写入不同磁盘–多份拷贝提高可靠性,效率无提升,有容错功能–至少需要两块磁盘
•RAID5,高性价比模式 (企业)–相当于RAID0和RAID1的折中方案–需要至少一块磁盘的容量来存放校验数据–至少需要三块磁盘
•RAID6,高性价比/可靠模式 (银行)–相当于扩展的RAID5阵列,提供2份独立校验方案–需要至少两块磁盘的容量来存放校验数据–至少需要四块磁盘
•RAID 0+1/RAID 1+0–整合RAID 0、RAID 1的优势–并行存取提高效率、镜像写入提高可靠性–至少需要四块磁盘 对比项 RAID 0 RAID 1 RAID 10 RAID 5 RAID 6磁盘数 ≧ 2 ≧ 2 ≧ 4 ≧ 3 ≧ 4存储利用率 100% ≦ 50% ≦ 50% n-1/n n-2/n校验盘 无 无 无 1 2容错性 无 有 有 有 有IO性能 高 低 中 较高 较高
九、VDO
yum -y install vdo kmod-kvdo #所需软件包重复数据删除–输入的数据会判断是不是冗余数据–判断为重复数据的部分不会被写入,然后对源数据进行更新,直接指向原始已经存储的数据块即可•压缩–对每个单独的数据块进行处理 vdo基本操作:参考man vdo 全文查找/example vdo create --name=VDO卷名称 --device=设备路径 -- vdoLogicalSize=逻辑大小–vdo list–vdo status -n VDO卷名称–vdo remove -n VDO卷名称 –vdostatus [--human-readable] [/dev/mapper/VDO卷名称]
•VDO卷的格式化加速(跳过去重分析):–mkfs.xfs –K /dev/mapper/VDO卷名称–mkfs.ext4 -E nodiscard /dev/mapper/VDO卷名称
前提制作VDO需要2G以上的内存
例子: vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=200Gmkfs.xfs -K /dev/mapper/vdo0 mkdir /nsd01mount /dev/mapper/vdo0 /nsd01df -hvdostats --hum /dev/mapper/vdo0 #查看vdo设备详细信息 vim /etc/fstab /dev/mapper/vdo0 /nsd01 xfs defaults,_netdev 0 0
网卡配置
逻辑:修改网卡命名规则-删除错误网卡名-添加新的网卡名-配置网卡ip地址route -n #查看路由表(查看网关信息)
修改网卡命名规则:ifconfig | head -2ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.81.12 netmask 255.255.255.0 broadcast 192.168.81.255vim /etc/default/grub #内核引导文件GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" #在后面添加 ...quiet net.ifnames=0 biosdevname=0 固定格式(企业化) 修改后不会立即生效grub2-mkconfig -o (哦) /boot/grub2/grub.cfg #该命令会使网卡命名规则立即生效,需要重启Generating grub configuration file ... #屏幕返回值 ifconfig | head -2 #重启后网卡名称变为eth0 会自动有一个ip,但是还是需要其他ip配置eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.81.128 netmask 255.255.255.0 broadcast 192.168.81.255 #此ip无效nmcli命令网卡命名,删除错误网卡名nmcli connection showNAME UUID TYPE DEVICE(设备)virbr0 878e26c0-2301-47e7-8a6d-5e68bd83b783 bridge virbr0 #绿色,已生效有线连接 1 855815b6-acd7-37d3-b6fc-0d6a5b5ac3c9 ethernet eth0 #绿色,已生效ens33 ce9e9c23-7700-4a59-94cd-e4d8e3d87e3a ethernet -- #白色,已失效nmcli connection delete ens33 #删除网卡,前面的网卡命名后该名字已失效成功删除连接 'ens33'(ce9e9c23-7700-4a59-94cd-e4d8e3d87e3a)。nmcli connection delete 有线连接\ 1 #删除原有命名,一会自行命名新的网卡名成功删除连接 '有线连接 1'(855815b6-acd7-37d3-b6fc-0d6a5b5ac3c9)。ifconfig | head -2 #删除后自动生成的ip会一并删除eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether 00:0c:29:27:52:b8 txqueuelen 1000 (Ethernet)nmcli命令网卡命名,添加网卡名nmcli connection add type ethernet ifname eth0 con-name eth0添加 类型 ifconfig显示的名字 nmcli所能识别的名字连接“eth0”(6a72a966-c469-4550-9510-9c16b64f27f7) 已成功添加。ifconfig | head -2 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #重新命名成功inet 192.168.81.128 netmask 255.255.255.0 broadcast 192.168.81.255nmcli connection show NAME UUID TYPE DEVICE eth0 6a72a966-c469-4550-9510-9c16b64f27f7 ethernet eth0 virbr0 878e26c0-2301-47e7-8a6d-5e68bd83b783 bridge virbr0 nmcli:配置ip地址 [配置文件]# vim /etc/sysconfig/network-scripts/ifcfg-eth0nmcli connection modify eth0 ipv4.method auto配置方式 dhcp自动获取 #一般不用 都是manual自行修改ipv4.addresses 192.168.4.7/24 #配置ip地址ipv4.gateway 192.168.4.254 #配置网关,本次不会生效,因为没有connection.autoconnect yes #每次开机都会生效nmcli connection up eth0 #激活网卡,立即生效例子:nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 ipv4.gateway 192.168.4.254 connection.autoconnect yesnmcli connection up eth0
源码编译安装
RPM: rpm -ivh yum install
源码包: 主要优点:1.获得软件最新版,及时修复bug 2.软件功能可以按照需求选择/定制,有更多软件可供选择3.源码包适用于各种平台
源码编译安装步骤:1.安装开发工具 gcc,make 2.解压tar包 3.运行configure脚本配置 4.make进行编译,产生可执行的程序 5.make install安装例子:安装tools.tar.gz
1.安装开发工具 yum -y install gcc make
2.解压tar包 tar -xf /root/tools.tar.gz -C /usr/local/ (这个路径比较专业) tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/
3.运行configure脚本配置(1.检查系统是否安装gcc 2.可以指定安装位置)cd /usr/local/inotify-tools-3.13/ #必须cd到配置文件程序的目录./configure --prefix=/opt/myrpm #指定安装位置
4.make进行编译,产生可以执行的程序 cd /usr/local/inotify-tools-3.13/make
步骤五:make install进行安装cd /usr/local/inotify-tools-3.13/make install[root@localhost ~]# ls /opt/myrpm/bin include lib share #成功
远程管理
(openssh包)
软件包的安装: rpm -qa | grep opensshopenssh-7.4p1-16.el7.x86_64openssh-server-7.4p1-16.el7.x86_64openssh-clients-7.4p1-16.el7.x86_64 远程登录ssh> /etc/resolv.conf #清空dnsssh root@192.168.4.207………necting (yes/no)? root@192.168.4.207's password:cat /root/.ssh/known_hosts #记录曾经远程管理的机器实现ssh远程管理无密码验证虚拟机A:1.生成公钥(锁)与私钥(钥匙)进行验证ssh-keygen #一路回车…….save the key (/root/.ssh/id_rsa): #保存位置……..assphrase): #设置密码为空…….. again: #设置密码为空ls /root/.ssh/id_rsa(私钥) id_rsa.pub(公钥) known_hosts2.把公钥(锁)传送给虚拟机Bssh-copy-id root@192.168.4.207 #传送公钥(锁)ssh root@192.168.4.207 #测试无密码虚拟机:Bls /root/.ssh/authorized_keys(别的机器传递过来的公钥) known_hosts
安全复制工具 scp=ssh+cp–scp [-r] 用户名@服务器:路径 本地路径 #有目录加r,没有不用加–scp [-r] 本地路径 用户名@服务器:路径 #有目录加r,没有不用加 虚拟机A:scp /etc/passwd root@192.168.4.207:/rootscp -r /home root@192.168.4.207:/root/scp root@192.168.4.207:/etc/passwd /mnt/虚拟机B:ls /root
网络工具
1.ip命令 ip address show #查看ip地址ip address add 192.168.8.1/24 dev eth0 #给eth0再添加一个ip地址ip address show inet 192.168.4.7/24 brd 192.168.4.255 scope global noprefixroute eth0inet 192.168.8.1/24 scope global eth0
2.ping ping -c 2 192.168.8.1 #ping 两次
自定义yum
YUM组成: 1.众多软件包 2.仓库数据文件例子:tar -xf tools.tar.gz -C / #把提前准备的tar包解压到/下ls /tools/otherboxes-1.1.1-4.el7.x86_64.rpmcmatrix-1.2a-1.i386.rpmntfs-3g-2014.2.15-6.el6.x86_64.rpmoneko-1.2-19.fc24.x86_64.rpmsl-5.02-1.el7.x86_64.rpmcreaterepo /tools/other/ #生成自定义的yum仓库vim /etc/yum.repos.d/2.repo[myrepo]name=2baseurl=file:///tools/otherenabled=1gpgcheck=0清理缓存并查看源标识 源名称 状态centos7 birunlin 9,911myrepo 2 5repolist: 9,916
日志管理
•系统和程序的"日记本"–记录系统、程序运行中发生的各种事件–通过查看日志,了解及排除故障–信息安全控制的“依据”
•由系统服务rsyslog统一记录/管理–日志消息采用文本格式–主要记录事件发生的时间、主机、进程、内容
•常见的日志文件日志文件 主要用途/var/log/messages 记录内核消息、各种服务的公共消息/var/log/dmesg 记录系统启动过程的各种消息/var/log/cron 记录与cron计划任务相关的消息/var/log/maillog 记录邮件收发相关的消息/var/log/secure 记录与访问限制相关的安全消息 •通用分析工具–tail、tailf、less、grep等文本浏览/检索命令–awk、sed等格式化过滤工具tailf:实时跟踪文件内容
防火墙策略管理
作用:隔离,严格过滤入站请求,放行出站
硬件防火墙:保护网络中的所有主机
软件防火墙:本机系统服务:firewalld管理工具:firewall-cmd、firewall-config
根据所在网络场所区分,预设保护规则集public:仅允许ssh、dhcp、ping服务trusted:允许任何访问block:阻塞任何来访请求,给客户端回应drop:丢弃任何来访请求,不给客户端回应
防火墙判定规则:1.首先防火墙查看访问请求中来源ip地址,然后查看所有区域中哪个区域该源ip地址规则,则进入该区域2.进入默认区域(默认情况下public)
修改默认区域:firewall-cmd --get-default-zone #查看默认区域public #仅允许ssh、dhcp、ping服务firewall-cmd --set-default-zone=trusted #修改默认区域为trusted,可以访问http、ftp....successfirewall-cmd --get-default-zone #再次查看默认区域trusted
在区域中添加允许协议:firewall-cmd --set-default-zone=public #再次修改默认区域successfirewall-cmd --zone=public --list-all #查看区域规则services: ssh dhcpv6-client firewall-cmd --zone=public --add-、,了service=httpsuccess #给public添加http协议firewall-cmd --zone=public --add-service=ftpsuccess #给public添加ftp协议给public添加制定的协议后其他用户可以访问
在区域中添加允许协议(永久配置)添加永久协议前先把临时协议删除(避免冲突)firewall-cmd --zone=public --remove-service=ftpsuccess #firewall-cmd --zone=public --remove-service=httpsuccessfirewall-cmd --permanent --zone=public --add-service=ftpsuccess #添加永久ftp协议firewall-cmd --permanent --zone=public --add-service=http #添加永久http协议successfirewall-cmd --zone=public --list-all #查看协议services: ssh dhcpv6-client #现在并没有显示已经添加的永久协议firewall-cmd --reload #加载防火墙永久策略successfirewall-cmd --zone=public --list-all #再次查看显示已经添加的永久协议services: ssh dhcpv6-client http ftp
单独拒绝192.168.4.207的所有访问firewall-cmd --zone=block --add-source=192.168.4.207 #阻塞任何请求,并给客户端回应successfirewall-cmd --zone=block --list-all #查看block的防火墙策略sources: 192.168.4.207 #禁止这个ip的所有请求
服务的管理
上帝进程:systemd
Linux系统和服务管理器是内核引导之后加载的第一个初始化进程(PID=1)负责掌控整个Linux的运行/服务资源组合
一个更高效的系统&服务管理器开机服务并行启动,各系统服务间的精确依赖配置目录:/etc/systemd/system/服务目录:/lib/systemd/system/主要管理工具:systemctl对服务的管理:显示Failed 失败systemctl -t service -all #列出所有的服务systemctl restart 服务名 #重起服务systemctl start 服务名 #开启服务 systemctl stop 服务名 #停止服务systemctl status 服务名 #查看服务当前的状态systemctl enable 服务名 #设置服务开机自启动systemctl disable 服务名 #设置服务禁止开机自启动systemctl is-enabled 服务名 #查看服务是否开机自启
Linux基础命令与知识点相关推荐
- 百战RHCE(第一战:Linux基础命令1)
哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...
- 查看linux文件工具,Linux基础命令-文本文件查看工具
文本文件查看工具 cat concatenate 文本文件查看工具 cat /etc/fstab cat [OPTION]... [FILE]... -n:给显示的文本行编行 -E:显示行结束符 ta ...
- linux基础命令行操作【1】
目录 1.基本命令 2.文件相关知识 3.文本相关操作 4.文件解压.压缩.打包命令 1.基本命令 Ctrl+A/t+Fn+F6:管理Linux(Fn+数字) Linux:输入密码是不显示 Alt+F ...
- 2021-10-16python笔记(Linux内核简介与Linux基础命令)
前面的博文已经教会了大家如何下载和安装Linux操作系统,并且使用Xshell软件远程连接Linux服务器,这节课我们要进入真正的Linux基础学习中. 知识点概括: 1.Linux的心脏-Linux ...
- linux怎么取消文件隐藏命令,Linux基础命令:显示隐藏的文件
Linux基础命令:显示隐藏的文件 来源:互联网 作者:佚名 时间:2013-04-10 13:32 系统中一些文件,和Windows中的系统文件一样,这些文件一般是不显示出来的,那么我们可以使用-a ...
- Linux 基础命令上
Linux 基础命令上 磁盘分区: /dev/hda5 dev 是硬件设备文件所在的目录 hd 表示IDE设备 sd 表示SCSI设备 a 硬盘的顺序号,以a.b.c...表示 5 分区的顺序号,以1 ...
- linux下kill指令默认信号,Linux基础命令之kill命令
相信大家在使用Linux的过程中都会遇到过某个程序出错导致系统锁死的情况,按照常规的思维我们会通过重启来重新启动系统.然而事实上在Linux中并不需要进行重启就能够完成出错程序的关闭操作.在Linux ...
- linux修改密码最短生存时间,Linux基础命令---修改用户密码
passwd 更改用户密码,超级用户可以修改所有用户密码,普通用户只能修改自己的密码.这个任务是通过调用LinuxPAM和LibuserAPI来完成的.本质上,它使用LinuxPAM将自己初始化为一个 ...
- Linux 基础命令讲解--加密解密
Linux 基础命令讲解--加密解密 加密文件: 1.MD5 echo -n "string" | openssl md5 #加密字符串 openssl md5 -in tes ...
最新文章
- C++_泛型编程与标准库(八)
- java url使用rest风格_Restful风格的URL请求
- 为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?
- 机房漏电产生的危害及安全隐患解决方案
- Integer.valueOf(String) 方法之惑
- 电气毕业生在国家电网都干啥工作?
- 安卓模拟器不能上网时可尝试更改成谷歌DNS
- c++语言怎么从internet上某个时间服务器获取时间信息,在VC++中实现同步Internet时间...
- unity ui框架_[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了
- 桌面壁纸的deepin或者uos水印如何去除
- 投屏软件_duet for Mac(Mac投屏软件)
- 音乐家们的开源工具箱
- 线性代数——对向量的线性组合中的“线性”的理解
- java 反射 set方法_java 反射调用set方法
- Javascript里EQ、NE、GT、LT、GE、LE含义
- 数据保护新愿景:欧盟GDPR十个误解与争议
- Mac 查找应用安装路径
- 用cmd命令行的形式清除需要管理员权限的流氓软件
- 世界读书日:带你走近Go语言编程思维
- 科赫曲线 MATLAB