这是一篇适合于没有任何基础的初学者学习CentOS常用命令的博客,努力看看能不能写成一个系列博客。有时,我们需要的只是一道小小的缝隙,让我们有个支点去打开一扇厚重的门。

一、横看成岭,侧成峰

Cent OS的界面可以像Window一样漂亮,也可以是一片黑暗的文本界面。初学者爱漂亮界面,高手爱文本界面,其实两者之间本质是一样的。

在系统默认使用GNOME 桌面的情况下,可以在系统的图形界面通过空白地方点击鼠标右键,选择在终端中打开,打开GNOME 桌面的终端模拟器(在当前用户能进去的GNOME 桌面的任意文本夹中,这个操作都有效)。但是,这并不算真正意义上的切换不同终端。

Cent OS提供了一组快捷键Ctrl+Alt+F1~ Ctrl+Alt+F6,用于真正意义上的终端切换,可在不同终端使用不同账号登陆。

其中:Ctrl+Alt+F1对应GNOME图形终端,Ctrl+Alt+F2~Ctrl+Alt+F6对应用文本终端(即命令行界面)。

二、先来个第一印象

Cent OS是个Linux系统,文件系统与Linux基本一样。

Linux的文件系统的目录结构就是一颗倒着的,最顶部是根(或者理解成主树干也可以),根下包含文件夹与文件,文件夹可理解成主树干上的分支(树支),文件可理解成树叶。

Linux文件系统的根用“/”表示,在根下主要有以下一些文件夹(树干):

1/bin 存放常用的命令

2/boot 存放内核与内核加载时需要用到的文件

3/dev Linux下外设以文件形式存在,这个文件夹存放着所有Linux系统中使用的外部设备(不是驱动程序,是访问外部设备的端口)。

4/etc 存放系统的启动文件与配置文件

5/home 通常Linux创建一个普通账号都会在这里创建一个账号的文件夹,这个文件夹称为用户的主目录

6/lib 存放C的部分编译器与C编译器的库文件

7/lost+found 当系统非法关机时,再次启动时,会有部分修复文件产生在这个文件夹

8/media 通常用于挂载分区

9/misc 存放杂项文件或文件夹,不明确的文件或文件夹可以存放在这个文件夹中

10/mnt 存储介质临时挂载点,与/media作用差不多

11/net 存放网络适配器(网卡)信息

12/opt 存放第三方软件和自己编写的软件包

13/proc 存放所有正在运行的进程的映像与当前内存中的kernel文件等

14/root 超级用户的主目录

15/sbin 存放引导、修复或恢复系统的常用命令

16/selinux  存放Linux 内核中提供的强制访问控制系统的相关文件

17/srv 存放Linux系统的一些服务程序启动后需要访问的文件和文件夹

18/sys 存放内核的一些信息映射供其它应用程序使用

19/tmp 临时文件夹

21/usr 通常安装的程序都在这个文件夹

22/var 通常存放系统运行时要改变的数据,如日志文件等。

对于初学者来说这些文件夹并不需要强记,知道它们的大概作用就可以了,随着学习的深入就会对这些文件夹慢慢的熟悉、体会更加深刻。

三、从学会进出文件夹(目录)并查看文件夹(目录)开始

在学习Linux命令时,让人不禁的回想起大学里开始接触计算机时学习的DOS,当时没有文件夹的概念,只有目录的概念,后面Windows出现才在各种教科书上看到文件夹的概念。现在,教科书上在讲授Linux时有些会用目录,有些会用文件夹,其实想描述的是一样的,初学者也别钻牛角尖,别太纠结于此。

学习通过命令来操作Linux对于从没有接触过命令且习惯了Windows操作的人来说确实是一件头痛的事情,也许普通大众都被微软给惯坏了。从易用性上讲,Windows操作确实是比较人性化,Linux则有点点反人类了:) ,开个玩笑别当真,其实GNOME 桌面也很好用的。

但是,想学好Linux,学会命令操作是必须会的,其实命令的学习也没有想像中的难。

相信大多数在选择安装Cent OS时选择的都是默认使用GNOME桌面,这里可以采用开头介绍的方法按Ctrl+Alt+F2快捷键打开一个文本终端,或使用GNOME 桌面的终端模拟器开始命令的学习。如果是打开一个终端,还需要输入一个账号和密码;如果是使用终端模拟器,则是直接使用当前账号打开的。对于初学者就先用GNOME 桌面的终端模拟器进行练习就可以了。

1)先理解下提示符

[Bob@firstlinux 桌面]$

Bob表示当前账号,firstlinux表示主机名,中间用@连接

桌面是在当前位置打开终端模拟器时的文件夹名称,如果在某个文件夹用右键打开终端模拟器,则桌面会被替换成这个文件夹的名称。

[]后跟着的$,是提示符。$表示的是当前用户为普通用户,如果是#表示的是当前用户为超级用户。

2)看看当前的目录位于什么位置

当前目录(文件夹)在什么位置指的就是当前目录(文件夹)的绝对路径是什么?绝对路径指从根开始,一直到当前目录(文件夹)。

查看目录的绝对路径,使用命令:pwdpwd是英文presentwork directory每个单词第一字母)

例如:

[Bob@firstlinux 桌面]$ pwd

/home/Bob/桌面

“pwd”是输入命令,“/home/Bob/桌面是返回结果,用绝对路径表示,其中:/表示根,home表示根下有一个名为home的文件夹,Bob表示home文件夹下还有一个Bob名的文件夹,桌面表示在Bob文件夹下还有一个名为桌面的文件夹。如此,一级一级的从根开始描述当前文件夹的所属关系称为绝对路径。

3)回到当前文件夹的上一级文件夹

Linux命令中使用..(英文的两点)来表示上一级目录,使用cdchange directory的缩写)来表示改变目录。

例如:

[Bob@firstlinux 桌面]$ cd ..

[Bob@firstlinux~]$

要注意的是命令cd ..中的cd..有一个空格。

上面的cd ..会使当前目录从桌面回到桌面的上一级目录“Bob”。可为什么firstlinux后面不显示Bob呢,不是说这个位置要显示的是当前文件夹的名称吗?

Linux~代表的是当前用户的默认工作目录,如果当前的账号是Bob,则默认工作目录就是位于根/下的目录home的下面的一个名为Bob的目录,用绝对路径表示就是/home/Bob

所以这边的~就是代表Bob目录。不信?在运行这条命令后再输入cd ..看看其上一级目录是否是/home,如:

[Bob@firstlinux~]$ cd ..

[Bob@firstlinux home]$

这边当前文件夹名就home了。

再上面的基础上再次输入cd ..则退回根/

[Bob@firstlinux home]$ cd ..

[Bob@firstlinux /]$

4)进入想进的目录

怎么从根/再回到桌面目录呢?可以使用命令:

[Bob@firstlinux/]$ cd /home/Bob/桌面

[Bob@firstlinux 桌面]$

记住:cd后面还是要有一个空格,BobB是大写的(Liunx文件夹名称是分大小写的,bobBob是代表两个不同的文件夹)。

一句话,要进入哪个目录,只要在cd后面加上空格再加上这个目录的绝对路径就可以进入。当然,你要有权限了,什么意思?比如:

[Bob@firstlinux 桌面]$ cd /root

bash: cd: /root:权限不够

当前用户要进入/root目录就进不去,因为/root属于超级用户的主目录,而当前用户只是普通账号,要用超级用户的权限才能进入。所以,CD也不是想进哪就能进哪的。

文件与文件夹的权限是Linux区别于其它操作系统的一个特点,也是其安全性很重要的一个体现。

试一试,在当前文件夹为任意一个文件夹下,输入:

cd /

cd ~

这两条命令看看。

cd / 直接回到根,cd ~直接回到当前用户的默认工作目录。可以用pwd验证下。

4)灵活的相对路径

如果要从根进入到当前账号为Bob的桌面,要使用命令:cd/home/Bob/桌面。但是,如果当前目录是homeBob,这样写就有点繁琐!这时,可以使用相对路径。

绝对路径相当于告诉系统从根开始到要到达的目标文件夹怎么走。相对路径则是告诉系统:当前文件夹是什么,从当前文件夹出发到目标文件夹怎么走呢?这种方法就是相对路径。

如果当前用户是Bob,当前文件夹是home,要进入当前用户的桌面文件夹,使用相对路径可以这样写:cd Bob/桌面,与“cd /home/Bob/桌面(绝对路径)相比,少了“/home/”

如果当前用户是Bob,当前文件夹是Bob(默认工作目录),则可以写成:cd 桌面。

这种相对路径的写法,比绝对路径简单多了、灵活多了。

5)打开文件夹的

知道了怎么进出文件夹这道门,下来就要懂得怎么打开文件夹的了,也就是怎么知道文件夹里面有什么东西。

打开文件夹这个的开关命令是lslist的简写)。

例如:要查看根下面有什么内容

[Bob@firstlinux 桌面]$ cd /

[Bob@firstlinux/]$ ls

bin   dev home  lib64       media mnt  opt   root selinux  sys  usr

boot  etc lib   lost+found  misc  net  proc  sbin srv      tmp  var

第一条命令cd /是进入根,想查看哪个文件夹内容的一种方法就是进入这个文件夹,使用ls命令。

另一种方法是:

[Bob@firstlinux 桌面]$ ls /

bin   dev home  lib64       media mnt  opt   root selinux  sys  usr

boot  etc lib   lost+found  misc  net  proc  sbin srv      tmp  var

ls后面加空格再跟上要查看的文件夹的路径(可以是绝对路径也可以是相对路径)。

两种方法没有好坏之分,看怎么灵活运用的。第一种方法,没有跟上路径,默认查看当前文件夹;第二种方法,跟上路径就可以在当前文件夹查看任意有权查看的文件夹。

再比如:当前文件夹是桌面,要查看/bin下有哪些内容,可以使用ls/bin

6)想打开什么样的

一间房间可能安装有多种类型的灯,如普通大灯、射灯等,不同灯打开后看到房间的效果是不同的。ls命令这个开灯查看文件夹内容的命令,其实也可以指定要开什么,看什么样效果的内容。想看不同效果的文件夹内容,要使用参数。

Linux中,参数是跟在命令后面的,使用空格”+“-”+“字母来表示。

前面不加参数的ls用户能够看到的只是一个个文件或文件夹的名称,其它效果都看不到。

如果给ls命令加上-l这个参数,就可以看到要查看的文件夹包含的内容更加详细的信息。

例如:查看/boot

[Bob@firstlinux/]$ ls /boot -l

总用量 23880

-rw-r--r--. 1root root   105195 11 22 2013config-2.6.32-431.el6.x86_64

drwxr-xr-x. 3root root     4096 4  15 2016 efi

drwxr-xr-x. 2root root     4096 4  15 2016 grub

-rw-------. 1root root 17491613 4  15 2016initramfs-2.6.32-431.el6.x86_64.img

-rw-r--r--. 1root root   193758 11 22 2013symvers-2.6.32-431.el6.x86_64.gz

-rw-r--r--. 1 rootroot  2518236 11 22 2013System.map-2.6.32-431.el6.x86_64

-rwxr-xr-x. 1root root  4128368 11 22 2013vmlinuz-2.6.32-431.el6.x86_64

注意:ls /boot -lls -l /boot两者是一样的,也就是参数可放在要查看文件夹的前面也可放在后面。另外,在ls命令加上-l后,Linux定义了一条更加方便的命令ll来表示(即ls -lll具有相同的功能)。比如: ls /boot -l可以写成ll /boot

每一条命令的参数通常有许多个,如果想要查看每条命令的参数(也就是详细用法),可以在命令后面加上空格再加—help

例如:[Bob@firstlinux/]$ ls –help

<此处省略系统显示内容,太多了>

对于初学者来说,不要去强记太多的参数了,不然说不定会打击自己的信心:)

ls命令还有一个常用的参数是-a-A。先看下效果:

[Bob@firstlinux/]$ ls -a /

.   .autofsck boot   dev  home lib64       media  mnt opt   root  selinux sys  usr

..  bin       .dbus  etc  lib  lost+found  misc   net proc  sbin  srv     tmp  var

[Bob@firstlinux/]$ ls -A

.autofsck  boot  dev  home  lib64      media  mnt  opt  root  selinux  sys usr

bin        .dbus etc  lib   lost+found misc   net  proc sbin  srv      tmp var

[Bob@firstlinux/]$ ls /

bin   dev home  lib64       media mnt  opt   root selinux  sys  usr

boot  etc lib   lost+found  misc  net  proc  sbin srv      tmp  var

先比较-a-A:前者比后者多了两项,分别是...

.表示当前目录,..表示上一级目录。

有加-a-A与没加的区别:对文件或文件夹来说,就是显示不显示隐藏文件或文件夹的区别,如加了-A多显示了.autofsck.dbus这两项。在Linux系统中,以.开始命令的文件或文件夹默认的属性是隐藏的。

通过-a-A这个参数可以让要显示的内容无所遁形。

能不能同时使用al两个参数呢?可以,如果要同时使用这两个参数,命令可以写成ls -a -l也可以写成ls -al,明显第二种比较简洁。

注意:ls不单能查看文件夹,还能单独查看一个文件的信息(不是打开文件,而相当于查看文件的属性)如:

[Bob@firstlinuxboot]$ ls -l config-2.6.32-431.el6.x86_64

-rw-r--r--. 1root root 105195 11 22 2013 config-2.6.32-431.el6.x86_64

8)抽丝剥茧

执行命令ls /boot -l后显示出的信息对于初学者来说可能有些杂乱。其实一个个分开就不难理解了。

首先,显示出的内容一行就是一个文件或文件夹的信息;

其次:每一行信息默认由:文件属性、文件数、拥有者、所属的group、文件大小、建档日期、文件名几个部分组成。例如拿这行

-rw-r--r--. 1 root root 105195 11月 22 2013config-2.6.32-431.el6.x86_64

作说明,如下:

-rw-r—r--      文件属性

1               文件数

root(第一个)  文件或文件夹拥有者

root(第二个)  拥有者所在组

105195         文件或文件夹大小

11月22 2013   创建日期

config-2.6.32-431.el6.x86_64  文件名

其中,文件属性是比较重要且难懂的,它由10个bit组成,分为4个子部分,表示出来就是10位:

第一部分:第1位,如果是文件用“-”表示,如果是文件夹用“d”表示,如果是连结文件用“l”表示;

第二部分:第2位至第4位,共3位,用于描述文件所有者的权限,r可读、w可写、x可执行;

第三部分:第5位至第7位,共3位,用于描述文件所有者所在组其它成员的权限,也用rwx表示;

第四部分:第8位至第10位,共3位,用于描述非同组的其它用户的权限,也用rwx表示;

例如:某个文件夹属性drwxr-xr-x

d表示文件夹   

rwx表示所有者对这个文件夹可读可写可执行

r-x表示同组成员对这个文件夹可读不可写可执行

r-x(第二个)表示不同组其它成员对这个文件夹可读不可写可执行

 

 

(第一篇完  待续...)