对于终端命令,只需要记住常用的,不常用的要多少有点印象,这样不会的时候就可以去查,用的多了自然就记住了
ls显示目录文件信息
语法格式 ls -al
选项 作用
-a 可以看到全部文件包括隐藏文件
-l 可以查看文件的属性,大小等详细信息
-d 查看目录属性
另外也可以用ll命令查看,ll其实就是ls -l
cd切换当前工作目录
语法格式 cd 要切换的目标目录
cd ~ 表示切换到自己的家目录
cd ../ 表示跳转到当前目录的上一层
who命令
用于查看当前登陆主机的用户终端信息,如果有远程用户还会显示来访用户的ip地址。
last命令
调取主机的被访记录
uname命令
查看系统内核版本与系统架构等信息
选项 作用
-a 完整的查看当前系统的内核名称,主机名,内核发行版本,节点名,压制时间,硬件名称,硬件平台,处理器类型及操作系统名称等信息
ifconfig命令
用于查看当前网卡配置与网络状态信息
ping命令
ping命令用于检测主机,执行ping后会发出要求回应的信息,若远端主机网络功能没有问题,就会回应该信息,因而得知该主机运行正常。
语法格式 ping 选项 参数 主机IP地址
常用选项 作用
-c 完成次数,设置完成要求回应的次数
-f 极限检测
-i 间隔秒数,指定收发信息的间隔时间
-l 网络页面 使用指定的网络接口送出数据包
-n 只输出数值
-q 不显示指令的执行过程,开头和结尾的相关信息除外。
-s 设置数据包的大小
-v 显示命令的执行过程
-w 在derdline秒后退出
-W 在等待timeout秒后开始执行
关机与重启
一般在远程服务器环境中是不推荐使用关机命令的建议使用重启
shutdown命令
选项与参数
-k 向登陆用户发出警告信息,而非真正关机
-h 关闭系统
-r 重启系统
-c 取消正在运行中的shutdown命令
time参数 +m的方式表示m分钟后关机
now 表示立刻关机
reboot 也可以达到重启计算机目的
poweroff 也可以做到关闭计算机系统
pwd命令
查看当前所处的工作目录
touch创建文件
touch 文件名 #创建一个文件
touch 文件 文件 文件 #表示创建多个文件
mkdir创建目录
mkdir 目录名称
mkdir -p #允许创建目录与子目录
mkdir -m #创建指定权限的目录
mkdir 目录名 目录名 目录名 #同时创建多个目录
mkdir递归创建文件夹目录
例题:创建一个文件夹为test然后在test里面创建b, c,d三个文件夹在b文件夹里面创建1文件夹,在1文件夹里面创建2和3文件夹,在c文件夹下创建4和5文件夹。
mkdir -p test/{b/1/{2,3},c/{4,5},d}
/表示下级
,表示同级
{}表示分隔
文件操作相关命令
cp复制
cp命令复制方法
选项与参数
cp -i 如果目标文件存在时会询问是否覆盖
cp -p 连同文件的(属性,权限,用户和时间)一起复制过去
cp -r 递归复制目录
mv移动,重命名
选项与参数
mv -f 目标文件存在不询问强制覆盖
mv -i 目标文件存在会询问是否覆盖
mv -v 显示文件的移动过程
mv 文件或目录 新文件名或目录名 会实现重命名文件或目录
查看文件内容
cat 显示文件全部内容
-n选项可以打印显示行号
more 翻页百分比查看文件内容
less 一页一页的翻动查看文件内容
rm删除文件或目录
选项与参数
rm -r 递归删除
rm -f 不提示警告信息
rm -i 删除时会提示是否操作删除
rm -v 删除文件前输出文件名
数据截取
head -n 文件名 可以指定查看某个文件的前几行
-n 选项后面可以跟数字,比如1就是查看第一行
tali -n 与head相反,可以查看文件的后几行内容
-n选项使用方法一样,-n 1 表示查看文件后一行
-n 1 和-1一样的
两个命令如果不加-n选项默认显示分别是文件的前十行和后十行
cut 命令截取剪切片段
选项与参数
-b 以字节为方式进行分割
-c 以字符为单位进行分割
-d 自定义分隔符,默认为制表符
-f 与-d一起使用,指定显示哪个区域
grep命令
grep分析一行信息,若里面有我们要的信息则将该行拿出来
语法格式 grep 查找字符 一行信息
选项 作用
-a 将为二进制文件以文本文件查找数据
-c 计算找到`查询字符`的次数
-i 忽略大小写的不同,所以大小写视为相同
-n 顺便输出行号
-v 反向选择,即显示出没有查找字符内容的那一行
wc统计文件
选项与参数
-a 显示文件字节数
-l 显示文件行数
-L 显示文件最长行的行数
-w 显示文件单词数
paste文件合并
选项与参数
-d 默认的分隔符是空格或tab键
-s 将每个文件粘贴成一行
文件查找命令
find
语法格式 find 查找目录 参数
选项 作用
-name 匹配名称
-perm 匹配权限
-user 匹配所有者
-group 匹配所属组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者文件
-nogroup 匹配无所属组的文件
-newer f1 !f2 匹配比f1文件新比f2旧的文件
-size 匹配文件的大小
-prune 忽略某个目录
tree命令
用于以树状图的形式列出目录文件及结构
需要先执行 yum install tree 才能使用
语法格式 tree 目标目录
dd命令
dd命令是用于按照指定大小和个数的数据块来复制文件或转换文件。
语法格式 dd if=参数值 of=参数值 count=参数值 bs=参数值
dd命令的参数与作用
参数 作用
if : 输入的文件名称
of : 输出的文件名称
bs : 设置每个“块”的大小
count : 设置要复制“块”的个数
文件的打包压缩解压
tar 选项 文件名称
tar -cvf 文件
是单纯的打包文件
tar的参数和作用
选项 | 作用
-c : 创建压缩文件
-x : 解开压缩文件
-t : 查看压缩包内有哪些文件
-z : 用gzip压缩或解压
-j : 用bzip2压缩或解压
-v : 显示压缩或解压的过程
-f : 目标文件名
-p : 保留原始的权限与属性
-P : 使用绝对路径来压缩
-C : 解压到指定目录
用户与文件权限
基本配置文件
1./etc/passwd
2./etc/shadow
3./etc/group
4./home/username
5./var/spool/mail/usernam
用户相关
管理员的UID为0
系统用户UID为1~999
普通用户UID为从1000开始往后
UID不能冲突,管理员创建的普通用户默认是从1000开始的
id命令
用于查看用户的UID,GID和附加组信息
语法格式 : id 用户名
useradd命令
useradd创建新的用户
选项 作用
-d 指定用户的家目录
-e 账户的到期时间,格式为 2022年-04-06
-u 指定用户的默认UID
-g 指定一个初始的用户组(必须已经存在)
-G 指定一个或者是多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定用户的默认shell解释器
usermod命令
用于修改用户的属性
语法格式 usermod 选项 用户名
选项 作用
-c 填写用户账户的备注信息
-d -m 这两个选项连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 设置账户的到期时间
-g 变更用户的属组
-G 变更扩展用户组
-L 锁定用户禁止登陆系统
-U 解锁用户
-s 变更默认的shell终端
-u 修改用户的uid
passwd命令
passwd用于修改用户的密码,过期时间等信息
语法格式 passwd 选项 用户名
选项 作用
-l 锁定用户禁止其登陆
-u 解除锁定允许用户登陆
--stdin 通过标准输入修改用户密码,如 echo “NewPassWd”|passwd --stdin 用户名
-d 使该用户用空密码登陆系统
-e 强制用户在下次登陆时修改密码
-S 显示用户的密码是否被锁定
gpasswd用于将一个用户添加到组或者从组中删除
语法格式:gpasswd 选项 组名
选项 作用
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
例如现在有一个a的用户和一个test的组,a用户本身没有在test的组中,需要把a加入test这个组中,我们知道
usermod -G test a
usemod -G 改写用户的组之后,用户的组信息是覆盖,也就是说usermod使用户只能存在于一个组那么如何使用户同时属于多个组呢?我们可以用到gpasswd命令-a选项
gpasswd -a a test
添加用户a到test组,这个时候我想删除test组中的a用户可以用
gpasswd -d a test
userdel命令
userdel删除已有的用户账户
语法格式 userdel 选项 用户名
选项 作用
-f 强制删除用户
-r 同时删除用户及用户家目录
用户组
groupadd命令
新增一个组
语法格式 groupadd 选项 用户组名
选项 作用
-g 后面可以接某个特定的GID,用来直接设置某个GID
-r 建立系统用户组
groupmod
修改组相关的参数
语法格式 groupadd 选项 用户组名
选项 作用
-g 修改既有的GID数字
-n 修改既有的用户组名称
groupdel命令
删除用户组
语法格式 groupdel 组名称
groupmems
选项 作用
-a 把用户添加到组中
-d 从组中移除用户
-g 目标用户组
-l 显示组成员
-p 删除组中的所有用户
groupmems命令的基本用法:
groupmems -l -g 用户组
查看用户组里面有哪些用户
groupmems -a yyt -g root
向root组中添加用户yyt
groupmems -d yyt -g root
把yyt用户从root组中移除
文件权限
第一个列就代表文件的类型
- d:代表是目录
- -:代表的是普通文件
- l:代表的是链接文件
- b:代表的是存储型接口设备文件
- c:串行接口文件
第二列代表文件的权限
这里rwxrwxrwx可以分为三组
第一组rwx代表的是属主权限
第二组rwx代表属组权限
第三组rwx代表其它用户权限
第三列代表的是文件的相关链接
第四列代表的是文件的属主
第五列代表的文件的属组
第六列代表文件的大小
第七列代表文件最后的修改时间
第八列代表文件的名字
修改文件权限
可以用到chmod命令
数字类型修改
语法格式:chmod 数字 文件名
rwx各代表的数字:
r | w | x | |
---|---|---|---|
4 | 2 | 1 |
符号格式修改
语法格式:chmod {augo}{+-=}{rwx} 文件名称
a | u | g | o | |
---|---|---|---|---|
所有 | 属主 | 属组 | 其他 |
例如:
chmod u=rwx,g=rx,o=r test
文件所有者与属组
chown
修改文件或目录的属主
语法格式1:chown 用户名 文件或目录
选项 作用
-R 可以递归修改目录及其子目录,所有文件的所有者
语法格式2:chown 用户名:属组 文件或目录
选项 作用
-R 可以同时递归修改目录或文件的所有者和属组
chgrp
修改文件或目录的属组
语法格式:chgrp 用户名 文件或目录
选项 作用
-R 递归修改
通配符与特殊符号
常用通配符
通配符 | 作用 | |
---|---|---|
? | 匹配一个任意字符 | |
* | 匹配0个或者多个任意字符,或匹配任何内容 | |
[] | 匹配括号中的任意一个字符 | |
[-] | 匹配括号中的任意一个字符,-代表一个范围 例如[a-z]表示匹配每一个小写字符 | |
[^] | 逻辑非,表示匹配一个不是括号内的字符,^后面跟0-9表示匹配不是数字的字符 |
命令执行判断依据
; && ||
命令执行情况 说明
;命令分隔符,可分隔执行多个命令
&& 表示前一个命令执行完毕且正确执行,则开始执行后面的命令
|| 若前一个命令执行错误,后面的命令开始执行
若前一个命令正确执行,则不执行后面的命令
其他特殊符号
Bash | 特殊符号 | |
---|---|---|
'' | 在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义 | |
“” | 双引号。在双引号中特殊符号都没有含义,但是“$”、"`"和“\”是例外。可以调用变量的值,引用命令和转义符的特殊含义。 | |
`` | 反引号,反引号包括起来的是系统命令,在bash中会先执行它,和$()的作用一样。不过推荐使用$()反引号容易看错 | |
$() | 和反引号一样,用来引用系统命令 | |
# | 表示注释 | |
\ | 转义符,在\后面的特殊符号将失去特殊含义,变为普通字符。如将$输出“$”符号而不是当做变量使用 |
磁盘与目录容量
磁盘与目录容量查询
df,选项 | 作用 | |
---|---|---|
-a | 列出所有的文件系统 | |
-k | 以kb的容量显示文件系统 | |
-m | 以mb的容量显示文件系统 | |
-h | 以人类比较易读的格式自行显示 | |
-H | 以M=1000k替换M=1024k的进位方式 | |
-T | 连同硬盘分区的文件系统名称(例如xfs)也列出 | |
-i | 不同磁盘容量,而已inode的数量来显示 |
在Linux下面如果df没有加任何选项,那么默认会讲系统内所有的(不含特殊的内存内的文件系统与swap)
都以1KBytes的容量来列出来,至于/dev/shm是与内存有关的挂载,先不要理他
du,选项 | 作用 | |
---|---|---|
-a | 列出所有的文件与目录容量,默认只统计目录下面的文件量 | |
-h | 以人类比较易读的方式显示 | |
-s | 仅列出容量不列出每个各别的目录占用容量 | |
-S | 不包括子目录下面的总计,与-s有点差别 | |
-k | 以kb列出容量显示 | |
-m | 以mb列出容量显示 |
硬链接与符号链接
ln,选项 | 作用 | |
---|---|---|
-s | 如果不存在任何参数就是硬链接,-s表示符号链接 | |
-f | 如果目标文件存在时,就主动的将目标文件直接删除后在建立 |
磁盘相关操作
磁盘的分区,格式化,检验与挂载
观察磁盘分区状态
lsblk列出所有的存储设备
选项与参数
-d: 仅列出磁盘本身不会列出该磁盘的分区数据
-f:同时列出该磁盘内的文件系统名称
-m: 同时输出该设备在/dev下面的权限信息
-p:列出该设备的完整文件名
-t:列出该磁盘的详细数据,包括磁盘阵列机制,预读写的数据量大小等
bikid查看uuid
bikid和lsblk -f 一样可以查看文件系统与uuid
parted列出磁盘分区表类型与分区信息
语法格式 parted /dev/sda print
查看分区表的格式
磁盘分区
磁盘分区分为两种:
这个不要搞错,否则会造成分区失败。
在操作分区完成后注意,有可能会出现Linux此时还在使用这块磁盘,因为担心系统出问题,所以分区表没有更新,这个时候可以重启计算机或者是通过partprobe命令来处理
partprobe
partprobe 更新Linux分区表信息
partprobe 选项 作用
-s 让屏幕出现信息,显示结果更加清晰
执行完成后用
lsblk 磁盘 查看实际的磁盘分区状态
磁盘格式化
常用的两个文件系统xfs 和ext4
xfs文件系统
格式化方法 mkfs.xfs 设备名称
ext4文件系统
格式化方法 mkfs.ext4 设备名称
逻辑卷管理
1.优势,扩展或缩减磁盘空间
2.支持磁盘快照
LVM
LVM的做法是将几个物理的分区或者是磁盘通过软件组合为一块看起来是独立的大磁盘(VG),然后在将这块大磁盘划分为可使用的分区(LV),最终就能挂载使用了但是为什么这样的系统可以进行文件系统的扩充或缩小呢?其实跟一个称为PE的东西有关。
物理卷(PV)
我们实际的分区或磁盘需要调整系统标识符(system ID)成为8e(LVM的标识符),然后在经过pvcreate的命令将它转换为LVM最底层的逻辑卷(PV),之后才能将这些PV加以利用
卷组(VG)
所谓的LVM就是许多个PV组成的VG ,所以VG就是LVM组合起来的大磁盘。那么这个大磁盘最大可以到多少容量呢?这与下面要说明的PE以及LVM的格式版本有关。在默认的情况下使用32位的Linux系统时基本上LV最大仅能支持到65534个PE,若使用默认的PE为4mb的情况下,最大容量仅能达到256GB而已,不过在64位的Linux这个问题几乎就不存在了,LV几乎没有什么容量限制了。
物理扩展块(PE)
LVM默认使用的4mb的PE数据块,这个PE是整个LVM最小的数据存储单位,也就是说我们的文件系统都是借由写入PE来完成的
,这个PE就有点像文件系统里的block大小。所以调整PE会影响到LVM的最大容量。不过在centos 6.x 以后直接使用lvm2的各项格式功能,以及系统转为64位,因此这个限制已经不存在了。
PV阶段
要建立pvpvcreate命令即可。
- pvcreate:将物理分区建立成PV
- pvscan:查找系统中目前任何具有PV的磁盘
- pvdisplay:显示出目前系统上面的PV状态
- pvremove: 将pv属性删除,让该分区不具有pv属性
VG阶段
vgcreate:主要建立VG的命令
-s:后面接PE的大小(size),单位是m,g,t(大小写均可)
- vgscan:查找系统上是否有VG的存在
- vgdisplay:显示目前系统上面VG的状态
- vgextend:在VG内增加额外的PV
- vgreduce:在VG内删除PV
- vgchange:设置VG是否启动
- vgremove:删除一个VG
LV阶段
创建出vg这个大磁盘后,在来就是要建立分区,这个分区就是LV
lvcreate:建立LV
-L:后面接容量,容量单位可以是M、G、T等,要注意的是,最小单位为PE,因此这个容量必须是PE的倍数,若不相符,系统会自动计算相近容量
- lvscan:查询系统上面的lv
- lvdisplay:显示系统上面的lv状态
- lvextend:在lv里面增加容量
- lvreduce:在lv里面减少容量
- lvremove:删除一个lv
- lvresize:对lv容量大小的调整