Linux命令行格式:
命令行 [选项] [参数] = 刘亦菲 结婚 女
Vimtutor编辑器可以对操作命令更加熟练
第二章Linux常用命令
1. Tab 键 : 补齐
2. 反斜杠“\” : 转义字符
3.“ Ctrl+U” : 快速清除终端输入行内的内容
4. “Ctrl+K” : 删除光标所在位置到行尾的内容
5. “Ctrl+L” : 清空屏幕
6.“ Ctrl+C” : 中断正在运行的命令
7. “?”: 匹配“一个”字符
8. “*”: 匹配“多个”字符
9. “history”:查看历史命令(左边带编号进行排序)
10. 大写“ZZ”和“:x” ,“:wq”:保存并退出文件
常用查找文件内容命令:
1.“cat”:查看内容较小的文件
2.“more”:分页显示文件内容,只能向前翻页查看
3.“less”:分页显示文件内容,可向前向后翻页查看
4.“grep”:根据指定模式(字符串)搜索文件内容
5.“head”:默认显示文件前10行内容
6.“tail”:默认显示文件后10行内容,还可以跟踪文件追加内容
7. “pwd”:查看当前目录
8. “cd”:切换目录
删除操作:
按“x”键或“delete”键:删除光标中单个字符。
按“dd”键:删除当前光标所在行,使用“#dd”的形式可以删除从光标开始的“#”行内容(其中“#”用具体数字替换)。
按“d^”键:删除当前光标之前到行首的所有字符。
按“d$”键:删除当前光标处到行尾的所有字符。
复制操作:
按“yy”键复制当前整行的内容到剪贴板,
使用“#yy”的形式可以复制从光标处开始的“#”行内容
(“#”用数字替换)。
粘贴操作:
按小“p”键:
可以将复制的内容粘贴到当前光标所在位置后,
按大“P”键:
会粘贴到当前光标所在位置之前。
第三章目录和文件管理
查找文件内容:
在命令模式按“/”键可以输入指定字符串从当前光标处往后进行查找(按“?”向前查找),
按n,N键在不同查找结果进行选择。
如“/zhang”:
按回车键后就可以查找出文件的“zhang”字符串并高亮显示,光标自动移动第一个查找处,按“n”键可以移动到下一个查找结果出。
替换文件内容:
“%”:
在整个文件内容中进行查找并替换。
“n,m”:
在指定行数范围内的文件内容中进行查找并替换。
如:“:% s /zxcvbnm/bootyui/g”
把当前文件的所有“zxcvbnm”字符串替换为“bootyui”。
如:“:5,15s /zxcqwer/QWERT”
在末行模式执行把文档5-15行中的zxcwer字符串换为QWERT。
创建新目录:“mkdir”
“mkdir -p”:可以创建多层目录
如:“mkdir -p /zhang/htm/bm”
就是在创建一个/zhang的目录,并在/zhang目录下创建子目录/htm,再在/zhang/htm目录下创建子目录/bm。
创建新文件:“touch”
如:“cd /bnm/hjk/jik”
“touch cdf.rty bnm.kiu”
就是切换/bnm/hjk/jik目录下创建两个空文件,文件名为cdf.rty和bnm.kiu。
创建链接文件:“In”
软链接:删除原始文件后,软链接失效。
(适用于文件和目录)
硬链接:删除原始文件后,仍然可用。
(只可用于文件,不能为目录创建硬链接)
复制,删除,移动目录和文件:“cp”
“cp -f ”:强制复制
“cp -i ”:提醒用户确认是否
“cp -p”:复制时保持源文件的权限,属主及时间标记等属性不变
“cp -r”:复制目录时必须使用此选项,表示复制所有文件及子目录
如:“cp /hjk/iop ./dfg”
“cp /etc/bnm /etc/bnm.bak”
就是把/hjk/iop复制到当前目录下,命名为/dfg。
就是将/etc/bnm文件复制一份作为备份,添加扩展名为.bak,仍放在/etc目录下。
如:“cp -r /boot/grub /etc/hjk.conf htm”
就是把目录/boot/grub,文件/etc/hjk.conf复制到当前目录下的htm文件夹中。
删除文件或目录:“rm”
“rm -f”:强制删除文件或目录,不提醒
“rm -i”:删除文件或目录时,提醒用户是否
“rm -r”:删除目录必须使用此选项,删除整个目录树
如:“rm -rf vbn/ced/”
“rm -i /axc/yui”
就是直接删除vbn目录中的ced目录。
就是删除前进行确认是否。
(当需要移动多个文件或目录时,目标位置必须是目录,且目录已经存在)。
移动文件或目录:“mv”
当同一个目录下移动文件或目录,相当于重命名操作:
如“mv bnm jkl”
就是把当前目录中的bnm程序文件改名为jkl。
如果只移动一个文件或目录到已经存在的文件夹中,可以只指定文件夹位置:
“mv jkl tyu”
把jkl文件移动到tyu目录(已经存在的)中。
查找文件或目录:“which”只能查找可执行文件
如:“echo $PATH”:环境变量“PACH”的值输出到终端,可以查看系统中在搜索可执行文件时会查找的目录列表。
如:“which ls ”:找到名为ls的位于哪里的命令程序文件。
查找文件或目录:“find”
“find -name”:按名称查找,允许使用“*”和“?”。
“find -size”:按文件大小查找,一般使用“+”和“-”,
设置超过或小于指定大小作为查找条件,容量单位为kB(注意k是小写),MB,GB。
“find -user”:按文件属主查找,是否属于目标用户进行查找。
“find -type”:按文件类型查找,普通文件(f),目录(d),块设备文件(b),字符设备文件(c),若使用“*”和“?”需要把文件名用双引号括起来。(双引号一定要是英文)
“-a -o”:前者表中两个条件同时满足,后者只满足其中一个条件就行
如:“find /etc -name “resol*.conf ”
就是在/etc目录下查找名称为resol开头和.conf结尾的文件。
如:“find /boot -type z”
就是在/boot目录查找类型为z的文件夹。
如:“find /boot -size +1024k -a -name “zhang*” ”
就是在/boot目录查找文件大小超过1024kB名称以zhang开头的。
如:“find /boot -size +1024k -o -name “zhang*” ”
就是在/boot目录查找文件大小超过1024kB或者是名称以zhang开头的。
显示目录内容:“ls”:
“ls -l”:长格式显示文件目录的列表,包括权限,大小等详细信息。
“ls -a”:显示所有子目录和文件信息,包括名称以点号“.”开头的隐藏目录和文件。
“-d”:显示目录属性,不是显示目录中的内容。
“ls -A”:与-a相似,当有两个特殊隐藏目录不会显示,当前目录的“.”和父目录“..”。
“ls -h”:显示文件或目录的大小,默认的大小单位字节(B),使用“-h”选项后显示为KB,MB等单位,需要结合“-l”一起使用。
“-R”:以递归方式显示指定目录及子目录中的所有内容。
统计目录及文件的空间占用情况:“du”
“du -a”:统计磁盘空间占用时包括所有文件。
“du -h”:显示KB,MB等单位。
“du -s”:只统计每个参数所占用空间的总大小,不统计每个子目录,文件的大小。
如:“du -sh /var/log/”
统计/var/log目录所占用空间的大小。
“du -ah /boot/”
分别统计/boot目录中所有文件,子目录各自占用空间的大小。
统计文件内容中的单词数量:“wc”
“wc -l”:统计文件内容行数
“wc -w”:统计文件内容中的单词数(以空格或制表位作为分隔)
“wc -c”:统计文件内容的字节数
“wc -l /etc/passwd”:
统计linux操作系统中的用户账号数量
“find /etc -name “*.conf” | wc -l”:
统计/etc目录下共包含多少个扩展名为“.conf”的文件
过滤文件内容:“grep”
“grep -i”:查找内容时忽略大小写。
“grep -v”:反向查找,输出与查找条件不相符的行。
“grep -E”:可以实现一次性查找,需要和 -v一起用。
“grep “ftp” /etc/passwd”:
在账户文件/etc/passwd中查找包含“ftp”字符串的行,实际输出了名为ftp的用户账户信息。
“grep -E -v “^#|^$” /etc/yum.conf”:
显示/etc/yum.conf文件以“#”开头的行和空行以外的内容。
第四章应用程序安装及管理:
使用RPM软件包管理命令:
“Rpm -ql postfix”:
查看postfix软件包在CentOS系统中安装的目录和文件。
“man rpm”:
查看“rpm”命令详细帮助信息。
“rpm -qa”:
查看当前系统以RPM方式安装的所有软件列表。
“rpm -qi”:
查看指定软件包的名称,版本,许可协议,用途的信息
“rpm -ql”:
查看指定软件包在当前系统中安装的所有目录,文件列表。
“rpm -qf”:
查看指定文件或目录是由哪个软件包安装的。
如“rpm -q elinks lynx”:
查询是否安装elinks和lynx软件包,都是网页浏览器工具。
如“rpm -qa | grep -i samba”:
查询系统中是否安装了名称中包含“samba”的软件包,不区分大小。
查询RPM软件包文件中的信息:“-qp”
“rpm -qpi ”:
查看指定软件包的名称,版本,许可协议,用途的信息。
“rpm -qpl”:
查看该软件包在当前系统中安装的所有目录,文件列表。
安装,升级,卸载RPM软件包:
“rpm -i”:
在当前系统中安装一个新的rpm软件包。
“rpm -e”:
卸载指定名称软件包。
“rpm -U”:
检查并升级系统中某个软件包。
“rpm -F”:
检查并更新系统中某个软件包。
“rpm -h”:
在安装或升级软件包过程中,以“#”显示安装进度。
“rpm --force”:
强制安装某个软件包,需要替换已安装的软件包及文件。
“rpm --nodeps”:
安装或升级,卸载软件包时,不检查与其他软件包的依赖关系(慎用)
解包:
一般为TarBall形式,扩展名为“.tar.gz”或“.tar.gz”,使用“tar”进行解压缩。
只有“.gz”:扩展名的源代码包,表示只压缩,不使用tar归档,只需要“gzip”进行解压包。
示例:
如:“tat httpd-2.4.25.tar.gz -C /usr/src/”:
“httpd-2.4.25.tar.gz”文件解压到/usr/src目录中。
“cd /usr/src/httpd-2.4.25/”
“./configure --prefix=/usr/local/apache”
“configure ”脚本将采用默认值进行配置,可以对Apache软件的安装参数进行配置。
“make”编译
“make install”:将软件的执行程序,配置文件,帮助文件复制到Linux操作系统中。
有时为了简便中间用“&&”分隔,如“make && make install”(表示make命令执行成功后再执行make install,否则将忽略make install)
安装后使用时要先调整配置文件:
Vim /user/local/apache/conf/httpd.conf
然后修改配置文件httpd.conf的194行,将前面的“#”去掉,保存退出,最后启动Apache服务。
/user/local/apache/bin/apachectl start
安装lynx网页浏览器,并执行“lynx 127.0.0.1”查看本机
Apache服务的运行状态,若看到“It works”字样,则表名Apache服务已经工作正常。
Cd /run/media/root/CentOS\7\x86_64/Packages/
Rpm -ivh lynx-2.8.8-0.3.dev15.e17.x86_64.rpm
Lynx 127.0.0.1
第五章账号和权限管理
Linux操作系统中的用户账户,密码等信息都会保存在相应的配置文件,用户账号相关的配置文件有两个分别是:
“/etc/passwd”和“/etc/shadow”,前者用于保存用户名称,宿主,登陆Shell等基本信息,后者用于保存用户密码,账号有效期等信息,在这两个配置文件中,每一行对应一个,不同的配置项之间使用:“:”(冒号)进行分隔。
如:“head -2 /etc/passwd”
“tail -1 /etc/passwd”
分别查看/etc/passwd文件开头,末尾的几行内容。
在passwd文件开头的部分,包括超级用户root及程序用户的账户信息,系统中新增的用户账号信息将被保存到passwd文件的末尾,passwd文件的每一行内容包含7个用“:”(冒号)分隔的配置字段,从左到右个配置字段的含义如下:
第1字段:用户账号的名称,也是登录系统时使用的识别名称。
第2字段:经过加密用户密码字符串,或者密码占位符“x”。
第3字段:用户账号的UID。
第4字段:所属基本组账号的GID。
第5字段:用户全名,可填写与用户相关的说明信息。
第6字段:宿主目录,即该用户登录后所在的默认工作目录。
第7字段:登录Shell等信息,用户完成登录后使用的Shell。
Shadow文件中的配置行格式:
Shadow文件又称为“影子文件”,其中保存了各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制,默认只有root用户能够读取shadow文件内容,且不允许直接编辑文件内容。
“head -2 /etc/shadow”
“tail -1 /etc/shadow”
分别查看/etc/shadow文件开头,末尾的几行内容。
添加,修改,删除用户账号:
“useradd”----------添加用户账号
“useradd [选项] 用户名”
“useradd -u ”:指定用户的UID,要求该UID未被其他用户使用。
“useradd -d”:指定用户的宿主目录位置(与“-M”选项一起使用时,不生效)
“useradd -e”:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
“useradd -g”:
指定用户的基本组名(或使用GID)。
“useradd -G”:
指定用户的附加组名(或使用GID)。
“useradd -s”:
指定用户的登录Shell。
“passwd”------为用户账号设置密码
“passwd zhang”:为zhang账号设置登录密码,要根据提示重复输入两次。
“passwd -d”:清空指定用户密码,仅使用用户名就可登录系统。
“passwd -l”:锁定用户账号。
“passwd -S”:查看用户账号的状态(是否被锁定)。
“passwd -u”:解锁用户账号。
“usermod”-------修改用户账号属性
“usermod -u”:修改用户UID。
“usermod -d”:修改用户的宿主目录位置。
“usermod -e”:修改用户的失效时间,可使用YYYY-MM-DD的日期格式。
“usermod -g”:修改用户的基本组名(或使用GID)。
“usermod -s”:指定用户的登录Shell。
“usermod -l”:更改用户账号的登录名称。
“usermod -L”:锁定用户账号。
“usermod -U”:解锁用户账号。
查看目录和文件属性:
“ls -ld /etc/passwd”:
列出/etc目录和/etc/passwd文件的详细属性。
第3,4字段的数据分别表示该文件(或目录)的属主,属组,/etc目录和/etc/passwd文件都属于root用户,root组,第1字段的数据表示该文件(或目录)的访问权限。
如“drwxr-xr-x”和“-rw-r--r--”:权限字段由5个部分组成,各部分含义如下:
第1个字符:表示该文件类型,可以是d(目录),b(块设备文件),c(字符设备文件),“-”(普通文件),字母“l”(链接文件)等。
- 4个字符:表示该文件的属主用户对该文件的访问权限。
- 7个字符:表示该文件的属组内个成员用户对该文件的访问权限。
- 10个字符:表示其他任何用户对该文件的访问权限。
第11个字符:这里的“.”与SElinux有关,没钱不必关注。
权限“r,w,x”:
文件表示:(r)查看文件内容,(w)修改文件内容,(x)执行该文件
目录表示:(r)查看目录内容,(w)修改目录内容,(x)执行cd命令进入或退出该目录。
设置目录和文件权限:
命令格式:
“chmod [ugoa...] [+-=] [rwx]”文件或目录
“chmod nnn 文件或目录”
字符组合“[ugoa...] [+-=] [rwx]”或数字组合“nnn”的形式表示要设置的权限模式,其中“nnn”为要设置的具体权限值,如“755”,“644”等。
在“[ugoa...] [+-=] [rwx]”的形式,3个组成的含义及用法:
“ugoa”:表示该权限设置所针对的用户类别,“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u,g,o的总和)。
“+-=”:表示设置权限的操作动作,“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限。
“rwx”:是权限的字符组合,也可以拆分使用,“r”,“rx”等。
第六章磁盘和文件系统管理(一)
“fdisk -l”:
列出当前系统中所有硬盘设备及其分区信息。
“/dev/sda”:为原有的硬盘设备,“/dev/sdb”:为新增硬盘,没有包含有效的分区信息,对于已有的分区,将通过列表的方式列出信息:
“Device”:分区的设备文件名称。
“Boot”:是否是引入分区,若是引导分区,则有“*”标识。
“Start”:该分区的硬盘中的起始位置。
“End”:该分区的硬盘的结束位置。
“Blocks”:分区的大小,以块为单位,默认的块大小为1024字节。
“Id”:分区对应的系统ID,83表示Linux操作系统中的XFS分区,8e表示LVM逻辑卷。
“System”:分区类型,识别到新的硬盘设备后,就可以在该硬盘中建立新的分区。
规划硬盘中的分区
“fdisk /dev/sdb”:进入交互分区管理界面。
在“Command (m for help)”:提示符后,输入特定的分区操作指令,就可以完成各分区管理任务。
“m”:可以查看各种操作指令的帮助信息。
“p”:列出硬盘中的分区情况。
“n”:创建分区,分区包括主分区和扩展分区,输入“p”选择创建分区,输入“e”创建扩展分区,选择分区号,主分区和扩展分区的序号只能为1-4,为保证分区,
分区起始位置一般由fdisk默认识别,结束位置或分区大小可以使用“+sizeM”或“+sizeG”的形式,“+20G”表示将分区的容量设置为20GB。
创建文件系统
“mkfs”可以自动创建各种类型的文件系统。
命令行格式:
“mkfs -t 文件系统类型 分区设备”
“mkfs -t xfs /dev/sdb1 ”:
把分区/dev/sbd1格式化为XFS文件系统。
“mkswap”:在指定分区创建交换文件系统,目标分区先通过fdisk工具将ID设为82。
“fdisk -l /dev/sdb”
“mkswap /dev/sdb5”
将分区/dev/sbd5创建为交换分区。
新增加的交换分区,需要使用“swapon”启用,反之使用“swaooff”停用指定交换分区。
以下是启用,停用交换分区/dev/sdb5的过程,总交换空间的变化情况:
“cat /proc/meminfo | grep “SwapTotal””
查看总交换空间的大小
“swapon /dev/sdb5”
启用交换分区/dev/sdb5
“cat /proc/meminfo | grep “SwapTotal” ”
确认交换空间大小已增加
“swapoff /dev/sdb5”
停用交换分区/dev/sdb5
第七章磁盘和文件系统管理(二)
LVM是linux操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在磁盘和分区之上。
物理卷(PV):是LVM机制的基本存储设备,通常对应一个普通分区或整个硬盘,物理卷一般直接使用设备文件名称,如“/dev/sdb1, /dev/sdb2, /dev/sdd”。
对于转换为物理卷的普通分区,先使用fdisk工具将分区类型ID改为“8e”,若是整块硬盘,可以把所有磁盘空间划分为主分区。
卷组(VG):由一个或多各物理卷组成的一个整体,在卷组可以添加或移除物理卷,多个物理卷可以组成不同的卷组。
逻辑卷(LV):建立在卷组之上,与物理卷没有直接关系,对于逻辑卷一个卷组就是一个整体,在这个整体中“切出”一小块空间,这一小块空间被称为逻辑卷,使用mkfs工具在逻辑卷上创建文件系统,就可以挂载到linux系统目录使用。
物理卷管理:
“pvscan”:扫描系统中所有物理卷。
“pvcreate”:将分区或整个硬盘转换成物理卷。
“pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3”
把分区的/dev/sdb1 /dev/sdb2 /dev/sdb3转换成物理卷。
“pvdisplay”:查看物理卷详细信息。
“pvdisplay /dev/sdb3”
查看物理卷/dev/sdb3详细信息。
“pvremove”:将物理卷还原成普通分区或磁盘,不再用于LVM,被移除的物理卷将无法被pvscan识别。
“pvremove /dev/sdb3”
将物理卷的 /dev/sdb3从LVM中移除。
卷组管理:
“vgscan”:扫描系统已经建立的LVM卷组的信息。
“vgcreate”:将一个或多个物理卷创建为一个卷组,第一个参数用于设置新卷组的名称,后面是需要加入该卷组的物理卷。
“vgcreate zhang /dev/sdb1”
将物理卷/dev/sb1加入到名称为zhang的卷组。
“vgdiaplay”:显示系统各卷组的所有信息,也可以指定卷组名称查看。
“vgdiaplay zhang”
查看名称为zhang的卷组所有信息。
“vgremove”:删除指定卷组。
“vgremove zhang”
删除名称为zhang的卷组。
“vgextend”:扩展卷组硬盘空间,创建新的物理卷,需要添加到已有的卷组中,第一个参数为需要扩展容量的卷组名称,后面是添加到该卷组的各物理卷。
“vgcreate zhang /dev/sdb1”
“vgextend zhang /dev/sdb2”
重新创建卷组zhang,只包含物理卷/dev/sdb1,最后通过“vgextend”将物理卷/dev/sab2添加到卷组zhang中。
逻辑卷管理:
“lvscan”:扫描系统已经建立逻辑卷的信息。
“lvcreate”:从指定卷组分割空间,创建新的逻辑卷,需要将逻辑卷的大小,名称所在卷组名作为参数。
基本格式:
“lvcreate -L 容量大小 -n 逻辑卷名 卷组名”
“lvcreate -L 10G -n zzc zhang”
在卷组zhang中建立新的一个逻辑卷,容量为10GB,名称为zzc。
“ls /dev/zhang/zzc”
逻辑卷zzc的连接文件。
“ls /dev/mapper/zhang-zzc”
逻辑卷zzc的设备文件。
“lvdisplay”:查看逻辑卷所有信息,将逻辑卷设备文件作为参数,也可以将卷组名作为参数,以显示卷组所有逻辑卷的信息。
“lvdiaplay /dev/zhang/zzc”
查看zzc逻辑卷的所有信息。
“lvextend”:扩展逻辑卷的空间,当使用的逻辑卷空间不足时,可以在卷组中分割额外的空间进行扩展,前提是该卷组中还有未分配的磁盘空间,不然需要先扩展卷组容量。
基本格式:
“lvextend -L +大小 /dev/卷组名/逻辑卷名”
“lvextend -L +10G /dev/zhang/zzc”
“lvdisplay /dev/zhang/zzc”
“xfs_growfs /dev/zhang/zzc”
为zzc逻辑卷名扩展10GB大小的磁盘空间,并使用“xfs_growfs”命令重设大小。
在为逻辑卷扩展容量时,扩展的大小受限于卷组剩余空间大小,当卷组zhang的剩余空间只有8GB时,通过“lvextend”只能为zzc逻辑卷增加8GB的空间,若需要增加更多的磁盘空间,只能通过“vgrxtend”扩展卷组容量。
“lvremove”:删除指定逻辑卷,直接使用逻辑卷设备文件作为参数就行。
“lvremove /dev/zhang/zzc”
删除名为zzc的逻辑卷。
设置磁盘配额
在centOS 7中XFS文件系统通过xfs_quota工具进行管理,EXT3/4文件系统通过quota工具进行管理。
使用xfsgrogs软件包是我安装情况,列表查看xfsgrogs软件包安装xfs_quota配额管理程序。
“rpm -q xfsgrogs”
“rpm -ql xfsgrogs | grep xfs_quota”
磁盘配额的限制对象:
Xfs_quota主要针对系统中指定的用户账号,组账号进行限制,对组账号设置配额后,组内用户使用的磁盘容量,文件数量的总和不能超过限制。
磁盘配额的限制类型:
磁盘容量:限制用户能够使用的磁盘数据块大小,也就是限制磁盘空间大小,默认单位为KB。
文件数量:限制用户能够拥有的文件个数,每一个文件都有一个对应的数字标记,被称为i结点编号。这个编号在同一个文件系统是唯一的。
磁盘配额的限制方法:
软限制:指定一个软性的配额(如480MB磁盘空间,180个文件),在固定的宽限期(默认为7天)内允许暂时超过这个限制,系统会给出警告信息。
硬限制:指定一个硬性的配额数值(如500MB磁盘空间,200个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止写入数据,硬限制的配额值要大于软限制值。