Linux基本命令操作

Linux

Linux关机

服务器到迫不得已才会关机
正确的关机流程为: sync > shutdown > reboot >halt
关机指令为: shutdown ( 可以使用man shutdown 来看一下帮助文档

sync  #将数据同步到硬盘中
shutdown   #关机指令
shutdown -h 10 'This server will shutdown after 10 mins' # 计算机将在十分钟后关机,并且会显示在当前登录用户的屏幕中
shutdown -h now #立马关机
shutdown -h 20:25 #系统会在今天的20:25 关机
shutdown -h +10  #十分钟后关机
shutdown -r now # 系统立马重启
shutdown -r +10 # 系统十分钟后重启
reboot # 重启
halt  # 关闭系统,等同于shutdown -h now 和 poweroff

Linux系统目录结构

登录系统后,在当前命令窗口下输入命令:
ls /
显示根目录下/ 的 结构树
在这里插入图片描述
树形结构图 :
在这里插入图片描述
以下是对这些目录的解释 :

  • /bin:
    bin是Binaries(二进制文件)的缩写,这个目录存放着经常使用的命令。
  • /boot:
    这里存放着启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /dev:
    dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc:
    etc 是Etcetera(等等)的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
  • /home:
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的alice,bob 和 eve
  • /lib:
    lib是Library(库)的缩写这个目录存放着系统最基本的动态连接共享库,其作用类似于 windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
  • /lost+found :
    这个目录一般情况下是空的,当系统非法关机后,这里就存放着一些文件
  • /media:
    Liunx系统会自动识别一些设备,例如U盘,光驱等等,当识别后 ,Linux会把识别的设备挂载到这个目录下。
  • /opt:
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /root:
    该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /tmp:
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
  • /usr:
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
  • /var:
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

Linux文件基本属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
在Linux中我们通常使用以下两个命令来修改文件或目录的所属用户与权限

  • chown(change ownerp): 修改所属用户组
  • chmod(change mode) : 修改用户的权限
    在这里插入图片描述
    在Linux中我们可以使用ll 或者 ls -l命令来显示一个文件的属性以及文件所属的用户和组。
[root@iZ8vbcc06phmpnew8h8zvdZ /]# ls -l
total 60
-rw-r--r--   1 root root     5 Oct 13 08:24 aa.txt
lrwxrwxrwx.  1 root root     7 Apr 26 15:48 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Apr 26 16:01 boot
drwxr-xr-x  19 root root  2960 Oct 13 00:32 dev
drwxr-xr-x. 79 root root  4096 Aug  2 22:42 etc
drwxr-xr-x.  5 root root  4096 Jul 17 10:31 home
lrwxrwxrwx.  1 root root     7 Apr 26 15:48 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Apr 26 15:48 lib64 -> usr/lib64
drwx------.  2 root root 16384 Apr 26 15:48 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root  4096 Jun  4 15:28 opt
dr-xr-xr-x  91 root root     0 Oct 13 00:32 proc
dr-xr-x---.  6 root root  4096 Aug  2 20:51 root
drwxr-xr-x  26 root root   800 Oct 13 00:32 run
lrwxrwxrwx.  1 root root     8 Apr 26 15:48 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Oct 13 00:35 sys
drwxrwxrwt.  8 root root  4096 Oct 13 03:24 tmp
drwxr-xr-x. 13 root root  4096 Apr 26 15:48 usr
drwxr-xr-x. 19 root root  4096 Apr 26 07:54 var

实例中,bin文件的第一个属性用d表示。d在Linux中代表该文件是一个目录文件
在Linux中第一个字符代表这个文件是目录,文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件
  • 若是 l 则表示为链接文档(link file)
  • 若是 b 则表示为装置文件里面的可供存储的接口设备(可随机存取装置)
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘,鼠标(一次性读取装置)
    接下来的字符中,以三个为一组,切均为rwx的三个参数组合,其中r代表可读(read),w代表(write),x代表可执行(execute),要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号-而已。
    在这里插入图片描述
    每个文件的属性由左边第一部分的10个字符来确定(如下图)
    在这里插入图片描述
    从左至右用0-9这些数字来表示
    第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有文件的权限
    第4-6位确定属组(所有者的同组用户) 拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
    其中,第1,4,7位表示读权限,如果用r字符表示,则有读权限,如果用 - 字符表示,则没有读权限
    第2,5,8位表示写权限,如果用w字符表示,则有写权限,如果用-字符表示没有写权限。
    第3,6,9位表示可执行权限,如果用x字符表示,则有执行权限,如果用-字符表示 ,则没有执行权限。

更改文件属性

  1. chgrp:更改文件属组
    语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
  1. chown:更改文件属主,也可以同时更改文件属组
    语法

chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
  1. chmod: 更改文件9个属性
    Linux文件属性有两种设置方法,一种是数字,一种是符号
    rwxrwxrwx 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
  • r : 4

  • w: 2

  • x : 1
    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= — = 0+0+0 = 0

所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:

chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

Linux文件与目录管理

我们知道Linux的目录结构为树状结构,最顶级的目录为根目录/

  • 绝对路径
    路径的写法,由根目录 / 写起,例如:/user/share/doc这个目录。
  • 相对路径
    路径的写法,不是由/写起,例如由/usr/share/doc 要到/usr/share/man底下时,可以写成cd …/man 这就是相对路径的写法

处理目录的常用命令

  • ls (list files) : 列出目录及文件
  • cd (change directory) : 切换目录
  • pwd (print word directory): 显示目前的目录
  • mkdir (make directory) : 创建一个新的目录
  • rmdir (remove directory) : 创建一个新的目录
  • cp (copy file) : 复制文件或目录
  • rm (remove) : 移除文件或目录
  • mv (move file) : 移动文件与目录,或修改文件与目录名称

ls(列出目录)
在Linux系统当中,ls命令可能是最常被运行的
语法

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

选项与参数:

  • -a:全部的文件,连同隐藏文件(开头为. 的文件) 一起列出来(常用)
  • -d:仅列出目录本身,而不是列出目录内的文件数据
  • -l : 长数据串列,包含文件的属性与权限等等数据( 常用)

cd(切换目录)
cd是Change Directory的缩写,这是用来变换工作目录的命令。

#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob

#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/

#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

pwd(显示目前所在的目录)
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

[root@www ~]# pwd [-P]

选项与参数

  • -P :显示出确实的路径,而非使用连结 (link) 路径。

实例:单纯显示出目前的工作目录:

[root@www ~]# pwd
/root   <== 显示出目录啦~

实例显示出实际的工作目录,而非连结档本身的目录名而已。

[root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail   <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

mkdir(创建新目录)
如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

语法:

mkdir [-mp] 目录名称

选项与参数

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

实例:请到/tmp 底下尝试创建数个新目录看看

[root@www ~]# cd /tmp
[root@www tmp]# mkdir test    <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4

加了这个-P 的选项,可以自行帮你创建多层目录
实例:创建权限为rwx–x--x的目录

[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

上面的权限部分,如果没有加上-m 来强制配置属性,系统会使用默认属性。
如果我们使用-m,如上列我们给予-m 711来给与新的目录drwx–x--x的权限

rmdir(删除空的目录)
语法:

 rmdir [-p] 目录名称

选项与参数:

  • -p : 连同上一级 空的 目录也一起删除

删除runoob目录

[root@www tmp]# rmdir runoob/

将 mkdir 实例中创建的目录(/tmp 底下)删除掉!

[root@www tmp]# ls -l   <==看看有多少目录存在?
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test   <==可直接删除掉,没问题
[root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

利用-p 这个选项,立刻就可以将test1/test2/test3/test4 一次删除
不过要注意的是,这个mkdir仅能删除空的目录,你可以使用rm命令来删除非空目录。

cp (复制文件或目录)
cp即拷贝文件和目录
语法:

[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

选项与参数

  • -a: 相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
  • -d: 若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
  • -f: 为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • -i: 若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  • -l: 进行硬式连结(hard link)的连结档创建,而非复制文件本身;
  • -p: 连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • -r: 递归持续复制,用於目录的复制行为;(常用)
  • -s: 复制成为符号连结档 (symbolic link),亦即『捷径』文件;
  • -u: 若 destination 比 source 旧才升级 destination !

rm (移除文件或目录)
语法:

 rm [-fir] 文件或目录

选项与参数

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
    将刚刚在cp的实例中创建的bashrc删除掉
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!
mv (移动文件与目录,或修改名称)
语法 :

[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory

选项与参数

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

复制一文件,创建一目录,将文件移动到目录中

[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest

将某个文件移动到某个目录去,就是这样做!

将刚刚的目录名称更名为 mvtest2

[root@www tmp]# mv mvtest mvtest2

Linux文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
    你可以使用man【命令】来查看各个命令的使用文档,如 : man cp
    cat
    选项与参数
  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符

检看 /etc/issue 这个文件的内容:

[root@www ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m

tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

[root@www ~]# tac /etc/issue

Kernel \r on an \m
CentOS release 6.4 (Final)

nl
显示行号
语法:

nl [-bnw] 文件

选项与参数:

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。
[root@iZ8vbcc06phmpnew8h8zvdZ ~]# nl aa.txt 
     1	chenbin
     2	hello
     3	world
     4	gduf

more
一页一页翻动

[root@www ~]# more /etc/man_db.config 
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令

在more这个程序的运行过程中,你有几个按键可以按:

  • 空白 (space): 代表向下翻一页;
  • Enter: 代表向下翻 一行
  • /字串 : 代表在这个显示的内容当中,向下搜寻【字串】这个关键字
  • :f : 立刻显示出档名以及目前显示的行数
  • q: 代表立刻离开more,不再显示该文件内容
  • b 或 [ctrl] -b : 代表往回翻页,不过这动作只对文件有用,对管线无用。

less
一页一页翻动,以下实例输出/etc/man.config文件的内容:

[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
:   <== 这里可以等待你输入命令!

less运行时可以输入的命令有:

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;

head
取出文件前面几行

语法:

head [-n number] 文件 
  • -n :后面接数字,代表显示几行的意思
[root@www ~]# head /etc/man.config

默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:

[root@www ~]# head -n 20 /etc/man.config

tail
取出文件后面几行

语法:

tail [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行的意思
  • -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config

Linux 磁盘管理

Linux 磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用的三个命令为df,du和fdisk

  • df: 列出文件系统的整体磁盘使用量
  • du: 检测磁盘空间使用量
  • fdisk: 用于磁盘分区

df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] [目录或文件名]

选项与参数

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示

实例1
将系统所有的文件系统列出来!

[root@iZ8vbcc06phmpnew8h8zvdZ /]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         1929724       0   1929724   0% /dev
tmpfs            1940084       0   1940084   0% /dev/shm
tmpfs            1940084     536   1939548   1% /run
tmpfs            1940084       0   1940084   0% /sys/fs/cgroup
/dev/vda1       41152812 5910268  33338836  16% /
overlay         41152812 5910268  33338836  16% /var/lib/docker/overlay2/636f130fa37c6afeed7872f5f163dda3632e73a50dd1b0c82062e89cf1f15a91/merged
tmpfs             388020       0    388020   0% /run/user/0

在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!

实例2
将容量结果以易读的容量格式显示出来

[root@iZ8vbcc06phmpnew8h8zvdZ /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  536K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1        40G  5.7G   32G  16% /
overlay          40G  5.7G   32G  16% /var/lib/docker/overlay2/636f130fa37c6afeed7872f5f163dda3632e73a50dd1b0c82062e89cf1f15a91/merged
tmpfs           379M     0  379M   0% /run/user/0

实例3
将系统内的所有特殊文件及名称都列出来

[root@www ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

du
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:

du [-ahskm] 文件或目录名称

选项与参数

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;

实例1
只列出当前目录下所有文件夹容量(包括隐藏文件夹)

[root@www ~]# du
8       ./test4     <==每个目录都会列出来
8       ./test2
....中间省略....
12      ./.gconfd   <==包括隐藏文件的目录
220     .           <==这个目录(.)所占用的总量

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。

实例2
将文件的容量也列出来

[root@www ~]# du -a
12      ./install.log.syslog   <==有文件的列表了
8       ./.bash_logout
8       ./test4
8       ./test2
....中间省略....
12      ./.gconfd
220     .

实例3
检查根目录底下每个目录所占用的容量

[root@www ~]# du -sm /*
7       /bin
6       /boot
.....中间省略....
0       /proc
.....中间省略....
1       /tmp
3859    /usr     <==系统初期最大就是他了啦!
77      /var

通配符 * 来代表每个目录。

与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

fdisk
fdisk 是 Linux 的磁盘分区表操作工具。

语法:

fdisk [-l] 装置名称

选项与参数:

  • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

实例1
列出所有分区信息

[root@iZ8vbcc06phmpnew8h8zvdZ /]# fdisk -l

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0002b49c

  Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

实例2
找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息

[root@www ~]# df /            <==注意:重点在找出磁盘文件名而已
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2              9920624   3823168   5585388  41% /

[root@www ~]# fdisk /dev/hdc  <==仔细看,不要加上数字喔!
The number of cylinders for this disk is set to 5005.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):     <==等待你的输入!

输入 m 后,就会看到底下这些命令介绍

Command (m for help): m   <== 输入 m 后,就会看到底下这些命令介绍
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition            <==删除一个partition
   l   list known partition types
   m   print this menu
   n   add a new partition           <==新增一个partition
   o   create a new empty DOS partition table
   p   print the partition table     <==在屏幕上显示分割表
   q   quit without saving changes   <==不储存离开fdisk程序
   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)

离开 fdisk 时按下 q,那么所有的动作都不会生效!相反的, 按下w就是动作生效的意思。

Command (m for help): p  <== 这里可以输出目前磁盘的状态

Disk /dev/hdc: 41.1 GB, 41174138880 bytes        <==这个磁盘的文件名与容量
255 heads, 63 sectors/track, 5005 cylinders      <==磁头、扇区与磁柱大小
Units = cylinders of 16065 * 512 = 8225280 bytes <==每个磁柱的大小

Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# 装置文件名 启动区否 开始磁柱    结束磁柱  1K大小容量 磁盘分区槽内的系统

Command (m for help): q

想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!

使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。

Linux 的vi/vim编辑器

什么是Vim

Vim是从vi发展出来的一个文本编辑器。代码补完,编译及错误跳转等方便编程的功能特别丰富,再程序员中广泛应用。
在这里插入图片描述

vi/vim的使用

基本上 vi/vim 共分为三种模式,分别是 命令模式输入模式底线命令模式,这三种模式的作用分别是:

命令模式:
用户刚刚启动vi/vim,便进入了命令模式
此状态下敲击键盘动作会被Vim识别命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令
以下是常用的几个命令:

  • i 切换到输入模式,以输入字符
  • x 删除当前光标所在的字符
  • : 切换到底线命令模式,以在最底一行输入命令

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
命令模式只有一些最基本的命令,因此仍依靠底线命令模式输入更多命令


输入模式:
在命令模式下按下i就进入了输入模式
在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE:退格键,删除光标前一个字符
  • DEL: 删除键,删除光标后一个字符
  • 方向键: 在文本中移动光标
  • HOME/END: 移动光标到行首/行尾
  • Page Up/Page Down:上/下 翻页
  • Insert:切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC:退出输入模式,切换到命令模式

底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件

按ESC键可以随时退出底线命令模式
简单的说,我们可以将这三个模式想成底下的图标来表示:
在这里插入图片描述

Vi/Vim使用实例

使用vi/vim进入一般模式

如果你想要使用vi来建立一个名为 runnoob.txt的文件时,你可以这样做:

$ vim runoob.txt

直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
在这里插入图片描述
按下i进入输入模式(也称为编辑模式),开始编辑文字
在一般模式之中,只要按下i,o,a等字符就可以进入输入模式了!
在编辑模式中,你可以发现在左下角状态栏中会出现-INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了Esc这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
在这里插入图片描述
按下ESC按钮回到一般模式
好了,假设我已经按照上面样式给他编辑完毕了,那么要如何退出呢?是的!没错!就是给他按下Esc这个按钮即可!马上你就会发现画画左下角的-INSERT- 不见了!
在一般模式中按下:wq存储后离开vi
ok,我们要存档了,存盘并离开的指令很简单,输入:wq 即可保存离开!

在这里插入图片描述
ok!这样我们就成功创建了一个runoob.txt 的文件


vi/vim 按键说明
除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

在这里插入图片描述
在这里插入图片描述
一般模式切换到指令行模式的可用的按钮说明

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值