【无标题】

1.ls

作用:用来查看目录中的文件信息

常用选项:

  • -l:以长格式显示信息

  • -a:查看全部文件,包括隐藏的

  • -d:查看某个具体文件的信息(需要指定参数)

  • -h:以常规单位显示文件大小(如:K、M 等)

  • -i:显示 inode 号

# 查看某个文件的具体信息
[root@localhost ~]# ls -lhd install.log
-rw-r--r--. 1 root root 28K 11月  2 00:18 install.log
​
# 查看当前目录中的所有文件(包括隐藏文件)
[root@localhost ~]# ls -la
总用量 88
dr-xr-x---.  2 root root  4096 11月  3 23:51 .
dr-xr-xr-x. 25 root root  4096 11月  3 21:41 ..
-rw-------.  1 root root  1289 11月  2 00:18 anaconda-ks.cfg
-rw-------.  1 root root    96 11月  2 01:35 .bash_history
-rw-r--r--.  1 root root    18 5月  20 2009 .bash_logout
...

2.cd

作用:切换目录

# 切换到指定目录
[root@localhost /]# cd /usr/local/games/
​
# 切换到上一级目录
[root@localhost games]# cd ..
​
# 切换到家目录(也可以写 cd ~)
[root@localhost games]# cd

3.mkdir

作用:创建空目录

选项:

  • -p:用于递归创建目录(嵌套的目录)

# 在当前目录中创建 test 目录
[root@localhost ~]# mkdir test
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  test
​
# 默认情况下不允许直接创建嵌套的目录
[root@localhost ~]# mkdir a/b/c
mkdir: 无法创建目录"a/b/c": 没有那个文件或目录
​
# 需要使用 -p 选项,创建嵌套的目录
[root@localhost ~]# mkdir -p a/b/c
​

4.touch

作用:用于创建新文件,或者用于更新已存在文件的时间

# 创建新文件 aaa
[root@localhost ~]# touch aaa
[root@localhost ~]# ls
aaa  anaconda-ks.cfg  install.log  install.log.syslog  test
​
​
# 查看文件的信息(用 stat 命令)
[root@localhost ~]# stat install.log
....
Access: 2022-11-03 22:22:35.615054248 +0800
Modify: 2022-11-02 00:18:15.583998801 +0800
Change: 2022-11-02 00:18:24.863998790 +0800
# 更新文件的时间
[root@localhost ~]# touch install.log
[root@localhost ~]# stat install.log
...
Access: 2022-11-04 01:17:32.267051889 +0800
Modify: 2022-11-04 01:17:32.267051889 +0800
Change: 2022-11-04 01:17:32.267051889 +0800

5.stat

作用:用来查看文件的信息

[root@localhost ~]# stat install.log										
  File: "install.log"														
  Size: 28425     	Blocks: 64         IO Block: 4096   普通文件			
Device: 805h/2053d	Inode: 131075      Links: 1								
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)		
Access: 2022-11-04 01:17:32.267051889 +0800								
Modify: 2022-11-04 01:17:32.267051889 +0800								
Change: 2022-11-04 01:17:32.267051889 +0800									

6.cat 等

作用:用来查看文件内容

  • cat:直接显示文件的所有内容

  • more:用来分屏显示文件内容(按回车逐行查询、按空格逐屏查询、按b回到上一屏、按q退出)

  • less:用来逐行显示文件内容

  • head:用来显示文件的前若干行(默认显示10行,可以用 -n 指定显示的行数)

  • tail:用来显示文件的后若干行(默认显示10行,可以用 -n 指定显示的行数)

其他:

可以用 "tail -f 文件名" 来监听文件内容,如果文件内容修改了,则立刻会被监听到

如图:左侧在监听文件,右侧在利用echo命令追加文件内容

7.ln

作用:用于创建链接

选项:

  • -s:软连接

  • -f:强制创建(如果链接文件已存在,则会覆盖)

注意:

# 创建软链接的时候,需要源文件用绝对路径来引用,否则报错,如:                        
# 会报错
[root@localhost ~]# ln -s test /tmp/aaa
# 创建成功
[root@localhost ~]# ln -s /root/test /tmp/aaa

8.rm

作用:用于删除文件或目录

选项:

  • -r:递归删除

  • -f:强制删除(否则会提示是否删除)

  • -rf:直接删除

# 一次删除若干个文件或目录   										
[root@localhost ~]# rm -rf aaa abb acc bbb my.sh

# 删除以 aa 开头的所有文件和目录
[root@localhost ~]# rm -rf aa*

9.cp

作用:用于拷贝(复制)文件

选项:

  • -r:递归复制,对于文件夹的拷贝是必须加的

  • -p:原样拷贝,新文件的时间等值都会与原文件一致

  • -a:  保留完整文件内容

    # 复制目录的时候报错									
    [root@localhost ~]# cp test /tmp/
    cp: 略过目录"test"
    
    # 使用 -r 选项递归复制目录,成功
    [root@localhost ~]# cp -r test /tmp/

    10.mv

    作用:移动文件

    选项:

  • -f:强制覆盖目标文件

    # 利用 mv 命令,给文件重命名					
    [root@localhost test]# mv aaa bbb

    11.whereis / which

    作用:用来

    查找命令的所在位置,如 mkdir 所在位置为 /bin/ 目录中

    [root@localhost ~]# whereis mkdir 										
    mkdir: /bin/mkdir /usr/share/man/man2/mkdir.2.gz /usr/share/man/man1/mkdir.1.gz /usr/share/man/man1p/mkdir.1p.gz /usr/share/man/man3p/mkdir.3p.gz 			
    
    [root@localhost ~]# which mkdir											
    /bin/mkdir

    12.locate

    作用:用来查找文件的位置

    系统会在 /var/lib/mlocate/mlocate.db 中记录各种文件所在位置,locate就是从这里面进行查找的。

    # 新创建的文件,没有被数据库记录,所以查找不到									
    [root@localhost ~]# touch aaabbbccc
    [root@localhost ~]# ls
    aaabbbccc  anaconda-ks.cfg  install.log  install.log.syslog
    [root@localhost ~]# locate aaabbbccc
    
    # 使用 updatedb 来更新数据库,就可以查找到
    [root@localhost ~]# updatedb
    [root@localhost ~]# locate aaabbbccc
    /root/aaabbbccc

    13.find

    作用:根据名字、日期、大小等来查找文件

    语法: find 查找位置 选项 参数

    13.1 根据名字查找

    用法:

  • -name :根据名字查找

  • -iname:忽略大小写根据名字查找

    # 在 /etc 中查找文件名为 yum 的文件										
    [root@localhost ~]# find /etc/ -name "yum"
    /etc/yum
    /etc/logrotate.d/yum
    
    # 在 /etc 中查找文件名包含 yum 的文件
    [root@localhost ~]# find /etc/ -name "*yum*"
    /etc/yum
    /etc/yum.conf
    /etc/logrotate.d/yum
    /etc/bash_completion.d/yum.bash
    /etc/bash_completion.d/yum-utils.bash
    /etc/yum.repos.d

    13.2 根据大小查找

    用法:

  • -size:根据指定的文件大小查找,配置+号查找大于的范围,用-号查找小于的范围

  • 注意:表示文件大小的单位常用的有: k、M、G

    # 在当前目录中查找大小超过10k的文件											
    [root@localhost ~]# find . -size +10k						
    ./install.log

    13.3 根据时间查找

    用法:

  • -atime:访问时间

  • -mtime:文件内容的修改时间

  • -ctime:文件状态的修改时间(如重命名、拷贝等)

    # 查找访问时间在6天及以前的文件
    [root@localhost ~]# find -atime +5
    
    # 查找访问时间在3天以为的文件
    [root@localhost ~]# find . -atime -3

    13.4 根据权限查找

  • -perm:根据数字权限查找

    [root@localhost test]# ll
    总用量 4
    -rw-------. 1 root root 6 11月 10 22:54 aaa
    -rw-r--r--. 1 root root 0 11月 10 23:26 bbb
    
    # 查找权限为 644 的文件
    [root@localhost test]# find . -perm 644
    ./bbb
    
    # 所有者、所属组、其他人中任意一个有包含 4 权限的即可
    [root@localhost test]# find . -perm +444
    .
    ./bbb
    ./aaa
    
    # 所有者、所属组、其他人中都有 4 权限的
    [root@localhost test]# find . -perm -444
    .
    ./bbb

     13.5 按照所属查找

    用法:

  • -user:按照所有者查找

  • -group:按照所属组查找

  • -nouser:查找没有所有者文件(外来文件)

    # 查找所有者是 tom 的文件
    [root@localhost ~]# find / -user tom

    13.6 按照类型查找

    用法:

  • -type:f(文件)、d(目录)、l(连接)

    # 从当前目录中查找所有目录
    [root@localhost ~]# find . -type d
    
    # 从当前目录中查找所有文件
    [root@localhost ~]# find . -type f

    13.7 逻辑运算

    用法:

  • -a:and,并列条件

  • -o:or,或者条件

  • -not:取反

    # 查找文件大小在 8~20k 之间的文件
    [root@localhost ~]# find . -size +8k -a -size -20k

    13.8 查找的后续操作

  • -exec:查找到文件后,执行后续命令

  • -ok:同上,会有询问的提示

    # 在当前目录中查找8~30k的文件,并且拷贝到 test 目录中
    [root@localhost ~]# find . -size +8k -a -size -30k -a -type f -exec cp  {} test \;
    
    # 在 /root/test 中查找所有者是 tom 的文件,并删除
    [root@localhost test]# find /root/test -user tom -exec rm -rf {} \;

    13.9 通配符

    作用:在linux中,有些命令,如find命令是支持通配符的,通配符如下:

  • *:代表任意多个字符(也可以是0个)

  • ?:代表任意一个字符

  • [...]:代表某个范围内的任意一个字符,如:[a-z]、[0-9]、[abc]

  • [^...]:代表不包含范围内的任意一个字符,与上一个表示相反

    [root@localhost ~]# ls
    abc  abc1  abc2  abcd  abcde  
    
    # 各种测试:
    # 以 abc 开头的
    [root@localhost ~]# find . -name "abc*"
    ./abc
    ./abc1
    ./abcd
    ./abc2
    ./abcde
    
    # 以abc开头的,第4位是字母的 
    [root@localhost ~]# find . -name "abc[a-z]"
    ./abcd
    
    # 以abc开头的,第4位是任意字符的
    [root@localhost ~]# find . -name "abc?"
    ./abc1
    ./abcd
    ./abc2
    
    # 以abc开头的,第4位是数字的
    [root@localhost ~]# find . -name "abc[0-9]"
    ./abc1
    ./abc2
    
    # 以 abc开头,第四位不是数字的
    [root@localhost ~]# find . -name "abc[^0-9]"
    ./abcd
    

    14.grep

    14.1 grep用法

    作用:用来从文件或给定的数据中筛选匹配的行信息

    常用选项:

  • -v:反选(筛选出不符合的行)

  • -n:显示行号

  • --color=auto:关键字变色

  • -i:忽略大小写筛选

    # 查找带有 yum 的行
    [root@localhost ~]# grep --color=auto -n "yum" install.log
    419:安装 yum-metadata-parser-1.1.2-16.el6.x86_64
    437:安装 yum-plugin-fastestmirror-1.1.30-41.el6.noarch
    438:安装 yum-3.2.29-81.el6.centos.noarch
    618:安装 yum-plugin-security-1.1.30-41.el6.noarch
    619:安装 yum-utils-1.1.30-41.el6.noarch
    [root@localhost ~]#

    14.2 正则表达式

    匹配字符等:

  • [...]:代表某个范围内的任意一个字符,如:[a-z]、[0-9]、[abc]

  • [^...]:代表不包含范围内的任意一个字符,与上一个表示相反

  • *:匹配次数,代表它前面的字符匹配0次或任意多次

  • ?:匹配次数,代表它前面的字符匹配0次或1多次

  • {n}:匹配n次(使用 egrep或 grep -E)

  • {n,}:匹配大于等于n次(使用 egrep或 grep -E)

  • {m,n}:匹配m到n次(使用 egrep或 grep -E)

    • ^:代表开头匹配

    • $:代表结尾匹配

      [root@localhost ~]# cat aaa
      1111111111
      22222222
      helloworld
      abcabcabc
      test
      dajiahao123
      
      # 从文件中个筛选带有字母a的行
      [root@localhost ~]# grep --color=auto "a" aaa
      abcabcabc
      dajiahao123
      
      # 从文件中查找以a开头的行
      [root@localhost ~]# grep --color=auto "^a" aaa
      abcabcabc
      
      # 从文件中查找以数字结尾的行
      [root@localhost ~]# grep --color=auto "[0-9]$" aaa
      1111111111
      22222222
      dajiahao123
      
      # 以数字开头的行
      [root@localhost ~]# grep --color=auto "^[0-9]" aaa
      1111111111
      22222222
      
      # 不以数字开头的行
      [root@localhost ~]# grep --color=auto "^[^0-9]" aaa
      helloworld
      abcabcabc
      test
      dajiahao123
      

      15.unzip / tar

      15.1 zip 格式

      解压命令: unzip 即可

      15.2 tar.gz / tar.bz2 格式

      解压命令:tar

      选项:

    • -x:解压

    • -f:指定要解压的文件名(写在最后)

    • -z:对于 tar.gz 格式的要用-z,对于 tar.bz2格式要用 -j

    • -v:显示解压的过程

      # 最简单的解压方式,使用 -xf 即可
      [root@localhost lamp]# tar -xf mysql-5.5.48.tar.gz

      16. shutdown / reboot

      shutdown -r now:重启系统

      shutdown -h now:关闭系统

      reboot:重启系统

      17.netstat

      作用:查询网络状态

      常用参数:netstat -antp(查看tcp协议的服务)

      18.who / w

      who:查询当前在线的用户(登录了服务器的用户)

      w:查询cpu的负载情况、开机时间、以及在线用户等信息

      19.last / lastlog / lastb

      last:查看当前登录的用户,以及登录的历史记录

      lastlog:查询每个用户最后一次的登录时间(包含伪用户)

      lastb:查看登录失败的信息(如密码错误)

      20.mount / umount

      mount:用于挂载存储设备,如光盘、优盘、硬盘

      umount:用于卸载

      语法:

      mount -o 挂载选项 -t 文件系统类型 设备文件名 挂载点

      umount 设备文件名或挂载点

      测试挂载光盘:

      # 挂载第一个光驱中的光盘,挂载到了 /mnt 目录
      [root@localhost ~]# mount /dev/sr0 /mnt/
      mount: block device /dev/sr0 is write-protected, mounting read-only
      
      # 挂载过后,可以到挂载点中,查看光盘中的内容
      [root@localhost ~]# cd /mnt/
      [root@localhost mnt]# ls
      CentOS_BuildTag  GPL       Packages                  RPM-GPG-KEY-CentOS-6           RPM-GPG-KEY-CentOS-Testing-6
      EFI              images    RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Debug-6     TRANS.TBL
      EULA             isolinux  repodata                  RPM-GPG-KEY-CentOS-Security-6
      
      # 卸载光驱(也可以用 umount /dev/sr0)
      [root@localhost ~]# umount /mnt/

      测试挂载U盘:

      # 挂载的时候指定:字符集
      [root@localhost ~]# mount -t vfat -o iocharset=utf8 /dev/sdb1 /media/
      
      # 查看已挂载的信息
      [root@localhost ~]# mount
      ...
      /dev/sdb1 on /media type vfat (rw,iocharset=utf8)
      
      # 查看U盘的内容
      [root@localhost ~]# cd /media/
      [root@localhost media]# ls
      20210620S3试卷.rar  demo.rar        KGC互联网架构师  RECYCLER  System Volume Information  生物工程学院
      BCSP_S3             element-ui.rar  lib              shop      vue参考.rar                项目需求答辩
      BCSP试卷S3.rar      exam            linux            software  工具类等.rar
      
      # 卸载U盘
      [root@localhost ~]# umount /media/

      二.vim的使用

      1.常规操作

      使用vim打开文件后,按 i 等快捷键进入插入模式,在此模式下进行编辑

      编辑完毕后,按 ESC ,退出插入模式

      按冒号(:),进入命令模式,按 wq 即可保存并退出

      2.进入插入模式

    • i:在光标所在位置的前面进行编辑

    • o:在光标所在行的下一行创建新行,进行编辑

    • a:在光标所在位置的后面进行编辑

    替换文本:

  • 先按冒号,输入替换的语句,如:%s/老文字/新文字/g (全文替换)

  • 也可以指定行范围进行替换,如:1,10s/老文字/新文字/g (把1~10行的替换)

  • 查找文本:

  • 先按 / ,再输入要查找的关键字,再按回车

  • 按 n 在查找结果中依次向后高亮显示(变黄色),按 N 是向前显示

  • 按冒号,再输入 noh,可以取消查找结果的高亮显示

  • 内容操作等:

  • yy:复制光标所在的行

  • 数字 + yy:复制光标所在行之后的若干行

  • p:向光标所在行的下一行粘贴已经复制过的内容

  • P:与小写p的粘贴类似,向上粘贴

  • dd:剪切光标所在的行(看起来像删除)

  • 数字 + dd:剪切若干行

  • x:删除光标所在的那个字符

  • u:撤销操作(相当于是后退操作)

  • ctrl + r:反撤销(相当于前进操作)

  • r:先按 r,然后再按其他字符,可以替换光标处的那个字符

  • gg:跳转到第一行

  • G:跳转到最后一行

  • 先按冒号,再加行号:可以指定跳转到第几行

  • home键 或 ^:跳转到行首(光标所在行的开头)

  • end键 或 $:跳转到行尾

  • 先按冒号,输入 set nu,可以显示行号

  • 4.常用操作

    移动光标等:

    3.退出和保存等

    先按冒号,然后使用以下命令:

  • w:保存,不会退出vim

  • q:退出

  • wq:保存并退出vim

  • q!:强制退出(如果文件已经修改过,则不会保存)

  • wq!:强制保存并退出

三.基本权限

1.rwx 的含义

  • 基本说明:

    • 每3位代表某个权限:前3位代表所有者权限、中间3位代表所属组权限、最后3位代表其他人权限

    • 所有者:文件的所属用户,一般是创建这个文件的用户,如:root

    • 所属组:文件的所属用户组,一般与所有者同名,因为linux中创建的新用户会同时创建同名的用户组

  • rwx的对文件的含义:

    • r(read):读取权限,可以使用 cat 等命令查看该文件的内容

    • w(write):写入权限,可以使用 echo、vi 等命令向文件中写入内容

    • x(execute):执行权限,可以把文件当成脚本去执行(一般是shell文件才会赋予x权限)

  • 对于目录来说

    • r:可以在目录中执行 ls 等命令,来查看目录中的内容

    • w:可以在目录中创建、删除、重命名文件的操作

    • x:可以进入目录,比如 cd 命令

2.chmod

作用:用于对文件或目录指定权限

2.1 字母权限

如: chmod o+w aaa(给aaa这个文件的其他人赋予写权限)

其他身份用字母表示如下:

  • u:所有者

  • g:所属组

  • o:其他人

  • a:所有人(默认可省略)

符号表示如下:

  • +:赋予权限

  • -:取消权限

2.2 数字权限

说明:

  • 4:代表读权限,相当于 r

  • 2:代表写权限,相当于 w

  • 1:代表执行权限,相当于x

常见数字权限:

  • 644:第1位6代表所有者的权限,即为4+2,也就是具备了rw权限。第2位的4代表所属组权限,只有r 权限,第3位的4代表其他人具备r权限。

  • 755:同上,在644的基础上,每种角色都具备了执行权限,如7是 4+ 2+ 1

如:chmod 644 aaa(给aaa赋予 rw-r--r-- 权限)

3.chown

作用:修改文件的所有者

注意:普通用户不可以修改文件的所有者,即使文件是自己的。

# 修改 aaa 的所有者 为 tom
[root@localhost tmp]# chown tom aaa
[root@localhost tmp]# ll
-rw-r--r--. 1 tom  root   29 11月  8 23:11 aaa

# 修改所有者的同时修改所属组
[root@localhost tmp]# chown jack:jack aaa
[root@localhost tmp]# ll
-rw-------. 1 jack jack   29 11月  8 23:11 aaa

4.chgrp

作用:修改文件的所属组

# 修改文件的所属组
[root@localhost tmp]# chgrp tom aaa
[root@localhost tmp]# ll
-rw-------. 1 jack tom    29 11月  8 23:11 aaa

四.RPM 软件包

说明:对于CentOS系统,其二进制包基本都是RPM后缀的安装包,可以通过命令进行安装,

包括 RPM 命令 和YUM 命令,其中RPM 是手动安装的,需要解决个中依赖,比较繁琐,

YUM 命令需要提前配置 YUM 源,会自动解决依赖,安装比较简单。

1.rpm命令

先挂载光驱,再使用rpm命令手动安装安装光盘中的rpm包

安装命令: rpm -ivh 软件包全名

卸载命令:rpm -e 包名(不用包全名)

查询软件包安装的位置:rpm -ql 包名(不用包全名)

查询已安装过的包:rpm -qa

2.yum命令

2.1配置yum源

可以配置网络源,在国内需要配置阿里云的网络源地址,修改 /etc/yum.repos.d/CentOS-Base.repo 即可

还可以配置光盘源,步骤如下:

# 切换目录
[root@localhost ~]# cd /etc/yum.repos.d/

# 把 CentOS-Base.repo 重命名,让其不要生效
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo_bak

修改 CentOS-Medai.repo:(查找光盘中软件包的挂载点的位置、让其生效) 最后,挂载光盘,就可以使用 yum 命令进行安装软件了,会自动从光盘中查找软件包,并处理依赖问题。

# 挂载光盘
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

# 安装 apache
[root@localhost ~]# yum -y install httpd

卸载软件: yum -y remove 包名

3.源码包

步骤:

  • 1.下载源码包

  • 2.解压源码包,进入到解压目录中

  • 3.编译准备和配置(查看系统是否符合安装要求,如是否已安装gcc这种编译工具)

  • 4.编译(make)

  • 5.安装(make install)

    五.用户和组相关的文件

    1./etc/passwd:用来存放用户信息

    2./etc/shadow:用来存放用户的密码、时间等信息

    3./etc/group:存放组信息

    4./etc/gshadow:存放组的密码相关信息

    5.家目录:如普通用户的家在 /home 目录中

    6./var/spool/mail:普通用户的邮件文件所在目录

    7./etc/skel/:普通用户的模板文件所在目录

    六.用户和组相关的命令

    1.useradd

    作用:添加用户

    常用选项

  • # 创建用户,但是此用户的shell是 /sbin/nologin ,所有无法登录
    [root@localhost ~]# useradd -s /sbin/nologin peter
    
    # 用户登录后会强制修改密码的
    [root@localhost ~]# chage -d 0 tom

2.passwd

作用:设置密码,只有root用户可以设置其他人的密码,直接运行 passwd 是修改自己的密码

# 非交互式的修改密码
[root@localhost ~]# echo "123123" | passwd --stdin peter
更改用户 peter 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

# 锁定密码(把 /etc/shadow 中该用户的密码前加了2个叹号)
[root@localhost ~]# passwd -l tom
锁定用户 tom 的密码 。
passwd: 操作成功

# 解锁密码
[root@localhost ~]# passwd -u tom
解锁用户 tom 的密码 。
passwd: 操作成功

 

3.userdel

作用:用来删除用户

选项:

  • -r:删除用户的同时删除家目录和邮件文件

4.groupadd

作用:添加组

说明:一般情况下,添加用户后,会有同名组(初始组),也可以手动添加新的组

5.groupdel

作用:删除组

6.gpasswd

作用:把用户加入到、移除出组

选项:

  • -a :向组中加入用户

  • -d:从组中删除用户

# 把用户加入到组中
[root@localhost ~]# gpasswd -a tom yunwei
正在将用户“tom”加入到“yunwei”组中

# 从组中删除用户
[root@localhost ~]# gpasswd -d tom yunwei
正在将用户“tom”从“yunwei”组中删除

七.硬盘相关的命令

1.df

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5        17G  2.1G   14G  14% /
tmpfs           490M     0  490M   0% /dev/shm
/dev/sda1       190M   34M  147M  19% /boot
/dev/sda2       1.9G  3.2M  1.8G   1% /home

2.dumpe2fs

查询某个分区的文件系统情况情况,-h可以查看超级块的信息

3.fdisk

可以用来查看硬盘情况,也可以用来对硬盘分区

八.fdisk

1.添加新硬盘

查询硬盘情况

[root@localhost ~]# fdisk -l

# 显示的是第一个硬盘的情况、和分区信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00093235

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         281     2048000   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3             281         409     1024000   82  Linux swap / Solaris
Partition 3 does not end on cylinder boundary.
/dev/sda4             409        2611    17693696    5  Extended
/dev/sda5             409        2611    17692672   83  Linux


# 此处显示的是第二个硬盘
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

2.分区

使用 fdisk + 硬盘的设备文件名 进行分区

fdisk /dev/sdb

常用命令:

  • n:创建分区

  • p:查看分区表

  • d:删除分区

  • l:显示支持的分区类型

  • w:保存并退出

  • q:不保存退出

  • t:修改某个分区的分区类型

    3.格式化

    使用 mkfs 格式化主分区或逻辑分区(不能对扩展分区格式化

    # 对 /dev/sdb5 分区进行格式化
    [root@localhost ~]# mkfs -t ext4 /dev/sdb5

    4.挂载

    提前创建好挂载点,使用 mount 命令挂载即可

    # 把分区挂载到挂载点
    [root@localhost /]# mount /dev/sdb1 /disk/
    [root@localhost /]# mount /dev/sdb5 /databk/
    
    # 查看挂载情况
    [root@localhost /]# mount
    ......
    /dev/sdb1 on /disk type ext4 (rw)
    /dev/sdb5 on /databk type ext4 (rw)
    
    # 查看硬盘使用情况
    [root@localhost /]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    ......
    /dev/sdb1       4.9G   11M  4.6G   1% /disk
    /dev/sdb5       4.9G   11M  4.6G   1% /databk

    自动挂载:

    在 /etc/fstab ,配置自动挂载

    可以使用设备文件名或UUID作为设备的名字

查询UUID的方法:

  • 使用: dumpe2fs -h 分区的设备文件名

  • 查看目录:/dev/disk/by-uuid/

    5.parted   gpt分区表

    使用 parted+硬盘的设备文件名 来操作硬盘

    用 mklabel 修改分区表类型为 gpt

    6.分区

    使用 mkpart 创建分区

    7.格式化

    在parted命令中使用 mkfs 进行格式化,但只能格式化为 ext2的 文件系统

    使用 quit 退出parted

    再使用 mkfs 命令格式化为 ext4的类型

    (可以使用 fdisk -l 查看刚才的分区名)

    九.swap分区

    使用硬盘空间扩充swap的内存交换区

    1.分区

    使用 fdisk 进行分区

    并且修改分区类型id,最后按 w 保存并退出

    2.格式化

    使用 mkswap 进行格式化

    3.挂载

    挂载swap,让其生效,与之前系统的虚拟内存合并在一起

    使用命令 swapon 即可,也可以使用 swapoff 卸载。

    自动挂载,修改 /etc/fstab

  • 十.LVM

    1.相关概念

    物理卷:可一把整个硬盘或分区创建为物理卷,简称pv

    卷组:可以把若干个物理卷合并到一个卷组,相当于一个大硬盘,简称vg

    逻辑卷:可以从卷组中创建逻辑卷,并且进行格式化、挂载,也就相当于是分区,简称lv

    2.相关命令

    2.1 物理卷

  • pvcreate:用来创建物理卷,可以把整个硬盘或分区创建为物理卷,但分区的系统id必须改为8e

  • pvdisplay、pvscan:查询系统中的物理卷信息

  • pvremove:删除物理卷

 

# 把 /dev/sdb1 创建为物理卷
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

# 把 /dev/sdc 整个硬盘创建为物理卷
[root@localhost ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created


# 查看物理卷
[root@localhost ~]# pvscan
  PV /dev/sdb1                      lvm2 [5.01 GiB]
  PV /dev/sdc                       lvm2 [20.00 GiB]
  Total: 3 [35.01 GiB] / in use: 0 [0   ] / in no VG: 3 [25.01 GiB]

# 查看物理卷
[root@localhost ~]# pvdisplay

2.2 卷组

  • vgcreate:创建卷组,通过若干个物理卷创建卷组

  • vgscan、vgdisplay:查看卷组

  • vgextend:给卷组扩容,把其他物理卷再次合并到卷组中

  • vgreduce:所卷组缩容,有个 -a 选项可以把未使用的物理卷从卷组删除掉

  • vgremove:删除卷组

    # 创建卷组
    [root@localhost ~]# vgcreate myvg /dev/sdb1 /dev/sdb2 
      Volume group "myvg" successfully created
    
    # 简略查询卷组
    [root@localhost ~]# vgscan
      Reading all physical volumes.  This may take a while...
      Found volume group "myvg" using metadata type lvm2
    
    # 详细查询卷组
    [root@localhost ~]# vgdisplay 
      --- Volume group ---
      VG Name               myvg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               15.01 GiB
      PE Size               4.00 MiB
      Total PE              3842
      Alloc PE / Size       0 / 0   
      Free  PE / Size       3842 / 15.01 GiB
      VG UUID               IpSlt5-ys3y-oy6Y-AgNc-X9R9-bMe4-wfNCyo
      
    # 给卷组扩容(把sdc合并到了卷组中)
    [root@localhost ~]# vgextend myvg /dev/sdc
    Volume group "myvg" successfully extended
    [root@localhost ~]#

    2.3 逻辑卷

  • lvcreate:创建逻辑卷(-L 指定大小,-n 指定逻辑卷名称)

  • lvscan、lvdisplay:查询逻辑卷

  • lvresize:重新调整逻辑卷大小(扩容等)

  • resize2fs:调整逻辑卷的实际大小

  • lvremove:删除逻辑卷

    # 创建逻辑卷
    [root@localhost ~]# lvcreate -L 10G -n mylv myvg
      Logical volume "mylv" created.
    
    # 查看逻辑卷
    [root@localhost ~]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/myvg/mylv
      LV Name                mylv
      VG Name                myvg
      LV UUID                YvEaPQ-TrCH-zrUD-dTBU-srEG-fxbb-7IO5ep
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2022-11-29 22:50:16 +0800
      LV Status              available
      # open                 0
      LV Size                10.00 GiB
      Current LE             2560
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
       
    # 可以对逻辑卷进行格式化
    [root@localhost ~]# mkfs -t ext4 /dev/myvg/mylv 
    # 挂载(也可以设置自动挂载)
    [root@localhost /]# mkdir /mydisk
    [root@localhost /]# mount /dev/myvg/mylv /mydisk/
    
    # 挂载后,查看分区情况
    [root@localhost mydisk]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    ...
    /dev/mapper/myvg-mylv 
                          9.8G   23M  9.2G   1% /mydisk
    
    
    # 给逻辑卷调整大小
    [root@localhost myvg]# lvresize -L 20G /dev/myvg/mylv 
      Size of logical volume myvg/mylv changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
      Logical volume mylv successfully resized.
      
    # 调整逻辑卷所对应的挂载点的实际大小  
    [root@localhost myvg]# resize2fs /dev/myvg/mylv  
    

    挂载过后,对于逻辑卷的设备文件名,系统会有对应的软连接

    十一.磁盘配额

    可以限制普通用户或者用户组对某个分区的使用(容量、文件个数)

    1.前提

    安装 quota 工具、管理selinux、设置分区具备usrquota和grpquota的挂载选项

    2.生成配置文件

    使用命令 quotacheck 生成:(如果使用 -avug ,则还会生成组配额文件)

    3.设置用户配额

    4.启动配额

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值