从这节开始,楠神带领大家开始学习Linux的常用命令操作。
1)使用SecureCRT登录ubuntu服务器,输入:
pwd
出现结果:
这是我们学习的第一个命令:pwd
pwd-显示当前路径
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
所谓工作目录,就是当前操作所在的目录。和我们在Windows操作系统一样,打开了某个目录。
我们使用SecureCRT进入的目录是当前用户的主目录,当前用户是ubuntu,所以一开始的目录是/home/ubuntu。
2)切换目录命令:
cd
切换到服务器根目录下: cd /
cd-切换工作目录
用户在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。
用法:cd 目录名
目录名可以是绝对路径,也可以是相对路径。如果省略目录,则默认切换到当前用户的主目录。
还可以使用 “.”和“..”作为目录名,其中 “.”表示当前目录,“..”表示当前目录的上层目录,即父目录。
在这介绍两个知识点:
①Linux系统分区概念
Windows操作系统下,硬盘可分成:C盘、D盘、E盘
ubuntu(Linux)没有盘符这个概念,只有一个根目录/,所有文件都在它下面。
Unix/Linux也采用了树状结构的文件系统,它由目录和目录下的文件一起构成。但Unix/Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示。
②相对路径与绝对路径
绝对路径
绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录。
下级目录接在上级目录后面用“/”隔开。
例如:/home/ubuntu
注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”。
相对路径
相对路径是指目标目录相对于当前目录的位置。
如果不在当前目录下,则需要使用两个特殊目录“.”和“..”了。目录“.”指向当前目录,而目录“..”,指向当前目录的上层目录。
常用的几种使用方式:
> cd 目录名字
> cd / 系统根目录
> cd .. 或 cd ../ //上级目录切换
> cd ../.. 或 cd ../../ //切换到上两级目录
> cd . 或 cd ./ //切换到当前目录
> cd ~ 或 cd //直接切换到用户家目录
3)查看目录内容信息命令:
ls
查看根目录下所有的文件信息:ls -l
ls [OPTION]… [FILE]…
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。
常用参数[OPTION]:
① -a 列出指定目录下所有子目录与文件,包括隐藏文件,文件中以“.”开头的均为隐藏文件,如: ~/.bashrc
② -l 列出文件的详细信息
③ -R 连同子目录中的内容一起列出
使用参数前需要加上一横(-)《一横(-)和两横(--)的区别》
常用的几种使用方式:
> ls //list
> ls -l 或ll //显示文件的详细信息
> ls -al //all显示文件的详细信息(包括隐藏文件)
> ls -a //显示目录全部文件名字(包括隐藏文件)
> ls [-al] 目录 //查看指定目录的文件信息
大家看上图中,使用ls -l查看根目录下的所有文件信息,列出的一行一行的,这些信息怎么看?
第一行:
total 92
total的意思为 “所列出内容的磁盘占用空间总和值。单位为kbytes"。给大家分享一篇文章《ls -l显示的内容中total到底是什么?》,对total做了很详细的解释。
从第二行开始,每一行代表一个文件,每个文件的信息含义:
文件类型:
一切皆文件
Linux 对数据文件(.mp3、.bmp),程序文件(.c、.h、*.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。
1)- 普通文件( 数据文件 )
普通文件是用于存放数据、程序等信息的文件,一般都长期地存放在外存储器(磁盘)中。普通文件又分为文本文件和二进制文件。
2)d 目录文件
目录文件是文件系统中一个目录所包含的目录项所组成的文件。
3)b 块设备文件 c 字符设备文件
设备文件是用于为操作系统与设备提供连接的一种文件。在Linux系统中将设备作为文件来处理,操作设备就像是操作普通文件一样。每一个设备对应一个设备文件,存放在 /dev 目录中。
4)l 链接文件(软链接)
似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。
5)p 管道文件
管道文件主要用于在进程间传递数据的一种特殊文件。
6)s 套接口文件
主要用于不同计算机间网络通信的一种特殊文件。
文件存取控制(权限):
从左到右每3位为一组,依次代表文件拥有者、同组用户和其他用户的存取权限。
示例图:
通常文件共有3个权限,“r”表示只读;“w”表示可写;“x”表示可执行;“-”表示未设置。
文件的第一列如为drwxr-xr-x,可知其为一个目录文件,目录所有者的权限是rwx,可读可写可执行,目录所属组群的权限是r-x,表示可读不可写可执行,其他人的属性是r-x,表示可读不可写可执行。
只有文件的拥有者或超级用户(root)才能设置文件的属性。
在Unix/Linux下每个文件都属于特定的用户和组,文件的属主和超级用户对文件拥有最大的存取权限。
说明:我们平时使用Linux时,经常会出现一些错误,很多错误的源头主要有两个产生原因:一是大小写问题,在Linux下是严格区分大小写的,在Windows上运行正常的网站源码一上传到Linux下就会报错,可能就是没有注意到某个文件的大小写问题。二是权限问题,Apache和Nginx web服务器软件在Linux上默认用户和用户组是www-data,而网站源码文件不属于www-data用户所有,或者对www-data开放权限不够,就造成了网站运行时无法完成读写操作,从而网站程序报错。
关于文件权限在讲到用户时还会重点讲解,在此我们先做个了解认识。
附:
根目录/下有很多的目录,介绍下这些目录的具体用途:
/bin:该目录中含有常用的命令文件。
/boot:内核和启动程序,所有和启动相关的文件都保存在这里,初学者不要碰的目录。
/data:空目录,可以放自己的应用数据到这里(与系统产生的区分开),比如mysql的data目录,nginx的temp目录,网站源码目录,安装的应用日志,备份数据等
/dev:接口设备文件目录,保存外围设备代号。
该目录下的所有文件称之为设备文件
Linux下所见皆文件 --> linux 下看到的所有的东西都被虚拟成文件
cup,内存,显卡,声卡,网卡
鼠标,键盘
。。。
举例:查看鼠标设备(mice)
cd /dev/input
sudo cat mice (管理员权限查看)
鼠标移动会有命令行输出,数据会以二进制方式写入文件中,
/etc:存放各种配置文件 ,如用户账户和密码。
/home:用户的宿主目录,通常将其设置在独立的分区。
/lib:系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32
目录,几乎所有的应用程序都需要用到这些共享库。
/lost+found:存放系统错误产生的文件碎片,方便用户查找和恢复。
/media:挂载媒体设备,如光驱、U盘等。
/mnt:一般是空的,用来临时挂载别的文件系统 ,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media目录。如果新购了磁盘,可以把磁盘挂载到这个目录下。
/opt:可选的应用软件包(很少使用)。
/proc:这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
/root:超级用户主目录。
/run:存放系统运行时需要的一些文件
/sbin:sbin --> super binary超级用户需要用到的一些二进制命令存储在该目录,管理员系统程序。
/snap:空目录
/src:空目录,服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
/sys:用于存放系统信息。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下,会被自动清理的。《Linux 下 /tmp目录清理规则》
/usr:这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。不是user,是Unix System Resource,是Unix系统资源的缩写。【也可能是software resources 的缩写】
/usr 是系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。
曾经的 /usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。现代的 /usr 只专门存放各种程序和数据,用户目录已经转移。虽然 /usr 名称未改,不过其含义已经从“用户目录”变成了“unix 系统资源”目录。值得注意的是,在一些 unix 系统上,仍然把 /usr/someone 当做用户家目录,如 Minix。
bin // 应用程序
sbin //管理员应用程序
game //游戏程序
include
lib //应用程序的库文件
lib64
local //存放用户后期安装的应用程序文件。
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log。该目录也可以用于部署程序项目。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。