1~Ubuntu第一章

  1. Linux目录树结构

.表示当前目录

..表示上层目录

隐藏目录或者隐藏文件名以.开始

进入目录使用cd命令(cd 全称就是change directory),尾部加不加/都可以:

cd zehua(或者cd zehua/)

cd ..(或者cd ../ 作用是返回上层目录)

我们进入目录zehua之后怎么进入同级目录ZEHUA?        cd ../ZEHUA(cd ../ZEHUA/)

..可以嵌套使用,比如cd ../../就是返回上级目录的上级目录

我们cd /进入根目录后怎么再进入我们创建的zehua目录呢?

cd /

cd home

然后ls –l看到huanhua,所以我们再cd huanhua

然后再ls –l就能看到zehua目录和ZEHUA目录了

 

创建文件夹,Linux区分大小写,如下是创建了两个不同的文件夹:

mkdir zehua

mkdir ZEHUA

创建文件,也是区分大小写:

touch zehua.txt

清空终端:

clear

查看目录下的信息:

ls     只查看文件名和目录名

ls –l     查看文件和目录的具体信息

ls –a     查看全部文件和目录,包括隐藏文件和隐藏目录

ls –la     查看全部文件和目录,包括隐藏文件和隐藏目录,隐藏文件或目录的名称以.开头比如

(如上图,Linux系统蓝色字体表示文件夹,白色字体表示文件)

 

ls 目录名    显示指定目录的内容(并没有转到该目录,如下执行完还是停留在home目录)

ls –ld        显示目录本身属性(前面都是显示目录内的内容,而非该目录本身)

(如上图最后.表示当前目录)

Ls -lh

pwd         查看当前路径

 

重要目录说明:

第一列是当前目录或文件拥有的权限

第二列是当前目录或文件拥有的文件数量,如果是文件肯定是1

第三列是文件或目录的拥有者

第四列表示文件或目录所属的群组(用户和群组我们后面再讲)

第五列代表这个文件或者目录它的大小,单位是字节

第六列是创建时间或者最后修改时间

第七列就是名字

 

home目录类似windows的C盘的Users目录

bin目录下存放常用的可执行文件

/etc这个目录用来存放系统的配置文件,比如开机启动项和其他config文件,这个一般不要去更改

/tmp是一些程序临时存储数据的位置,这个一般都要定期地清理一下,(我们重要的数据不要放在这个目录),一般开机的时候这个目录下的数据需要删除。

/boot目录是系统内核和开机必要文件的目录,这个目录下关于Linux核心和内核都是以vm开头的,如下就是选中的白色部分就是内核文件

在Linux中,所有设备包括内设和一些外部设备都是以文件形式存在系统当中,/dev目录就是存放系统所有的设备文件像光驱、硬盘等等所有的硬件信息。

/usr目录,不要以为这个user的缩写,这个目录跟user没有关系,它是unix system resource,它是一些系统的核心应用,它类似于windows系统下window目录和ProgramFiles目录的结合(我们安装软件一般存放在ProgramFiles目录,跟系统有关的部分会分到window目录)。它是用来保存程序的相关文件。

/lost+found是用来存放丢失数据的,比如系统突然重启或者程序数据丢失等等。

/var目录和/srv目录:/var目录主要是程序运行中一些用户数据会保存在里面比如数据库文件等等,因为我们创建数据表,数据会越来越多,这些数据会放到/var目录。还有程序运行过程需要使用的一些数据会放在这里面。所以这两个目录一般空间要留得大一些,因为体积会逐渐变大。

/proc目录,它是虚拟的一个文件系统,它里面的数据都是在内存当中(所以不会占用任何的硬盘空间),比如一些应用程序的进程的信息,包括一些网络状态等等。

一些lib目录,我们肯定也知道是用来存放一些可复用的函数或者一些库等等,这个目录有点像window系统的system32目录(它里面就都是放一些dll库文件)

2.目录和文件的命名规则

Windows下文件夹和文件的命名要求比较严格如下图,而Linux只要不包含/即可,虽然都可以但是我们为了规范要避免一些命名方法比如+-还有.因为点就是隐藏文件,要是不小心用了点开头我们就会创建了隐藏文件而不自知,看不到创建也会提示文件已经存在。

视频中命令行前面#,而我们是$,#说明是root用户,而$说明是一般用户,但是执行命令的方式都是一样的。

我们如何获取root权限呢?如下非常简单(注意,输入密码时什么都不会显示,但是确实是输入密码了)

因为我们设置过了,所以下次想进入root模式,只要输入su命令并输入密码即可(在任何目录下都可以输入su),要退出就输入exit:

我们在创建rails的时候或者安装gem包的时候没必要进入root模式,因为这样有可能改变了系统内容。

 

rm命令用于删除文件,-i是在删除命令执行会有提示信息,-rf则是在删除时没有提示信息直接删除掉。(在Ubuntu下,默认不给提示,所以加不加rf参数没区别)

一般情况下,我们添加- i防止误删,不要轻易添加rf参数(Linux添加参数的时候会在前面添加-)

如上文件夹中内容为:

,说明我们创建的不是三个文件,而是一个文件,文件名为f1.txt,f2.txt,f3

之所以会那样,是因为Linux中命名除了/以外都合法,所以逗号点号都被认为是文件名,只有最后的.txt才被认为是文件的格式后缀

我们打开该文件随便写一些内容后再删除,发现目录下确实没有该文件了,但是我们ls命令查看还多出一个末尾带~的文件:

因为我们Linux下默认gedit编辑文本,会生成一个相同文件名+波浪号的文件,这个带波浪号的文件是就是gedit编辑器的备份文件。

可以通过以命令删除目录下所有的这类备份文件:rm -fr *.*~  


-f 忽略不存在的文件,不给出提示

-r 目录中与子目录中所有的符合条件文件都删除

-rf 正确理解:就是添加参数r和参数f,所以写-rf或-fr都是一样的,前面说的-rf是不给提示不准确;添加f参数是不给提示,添加r参数就是会遍历到目录里面的全部内容(关于r参数后面会讲)

取消生成自动备份文件的方法:

打开gedit'编辑-首选项-编辑器-文件保存'把"在保存之前创建一个备件文件"取消

鼠标移动到标题栏,出现相关菜单:

选择首选项(Preferences)

然后Editor下面的File Saving第一个去掉勾选即可:

 

我们文件命名要避免出现特殊字符如[],下面就是一个例子,因为Linux在使用rm命令的时候使用了正则表达式, f[123]的中括号是一种正则表达式的符号,这里代表f1或者f2或者f3,只要具有这种名字的文件都会把它删除掉。所以就导致我们想要删除f[123].txt这个文件实际上却删除了f1.txt、f2.txt、f3.txt这三个文件。没有了f1.txt、f2.txt、f3.txt的干扰之后,再执行一次才能删除f[123].txt文件

还有一个命名带*的例子如下,我们想删除f*.txt实际却同时删除了f1.txt、f2.txt、f*.txt,因为rm命令是以正则表达式来执行,*代表后面可以是任意多个随意的字符:

(要注意一点,就是已经有了f1.txt、f2.txt的情况下touch f*.txt不会创建文件;而我们如果是第一个创建的f*.txt再去创建f1.txt、f2.txt就都会创建文件)

 

我们之前运行可以打开虚拟机的Linux系统,后来打开就报内存不足,那么我们就打开虚拟机的设置,修改给虚拟机分配的内存大小就行

 

有时候我们希望看到比较直观的文件大小如Kb、Mb,而不是字节,那么可以使用ls –lh如下:

(因为单位都显示为K,所以总计的单位也是K)

关于ls的命令有很多,我们可以使用ls –help来查看并使用

如上对应的中文如下:

 

cd ~表示切换到当前用户的家目录比如我们是huanhua,

~只适合家目录,比如我们进入比较深的路径可以这样直接返回家目录

cd –表示返回最近一次打开的目录,如下又回到zehua目录:

 

3.复制指令cp(全称就是copy)

cp加上参数options加上文件file,加上要复制到的地方destination

把zehua目录下的one.txt复制到ZEHUA目录下:

 

我们复制文件过去,文件的时间信息会变成当前时间,如果我们想保持原来的时间那么就先删除原来文件然后cp指令后面加一个-p参数

如下添加p参数之后,复制过去的one.txt就是21:52而非21:53了,与zehua目录下one.txt的时间保持一致了

 

如下我们在ZEHUA目录下创建名为ZEHUA的文件(Linux允许文件的命名不带后缀)

然后我们查看的时候最后的文件名就是显示ZEHUA文件(不是指ZEHUA目录)

ls –s    用于查看当前目录下占用的空间,如下一开始ZEHUA文件没有内容为0字节,我们编辑ZEHUA文件后,还有给ZEHUA文件添加.txt后缀后结果如下:

(total就是当前目录下全部内容加起来的字节数)

 

4.多文件操作

Linux多文件操作很简单,其实就是后面添加多个文件,用空格分开(不是逗号,因为逗号会被默认为文件名的一部分)

删除的多文件操作:

创建的多文件操作:

如果是复制操作呢?因为后面除了跟文件,还有跟目的路径,其实也是一样后面连续跟多个文件即可

将ZEHUA目录下的两个文件复制到zehua当前目录(最后的那个.就表示当前目录)

 

5.目录操作

如果我们想把一个目录而非文件复制过去呢?像上面那样使用命令会提示略过目录

如下,我们把zehua1目录整个复制到ZEHUA目录,就是加上r参数就行

同样要删除整个目录也要添加r参数,(因为目录里面有文件):

rm -f zehua.txt则不经过我们的确认直接删除,文件写-rf也行

但是要删除整个目录就要添加r参数了,如果不想要删除提示就再加f参数,也就是我们常见的-rf,写成-fr也行,多个参数写一起前后顺序没关系

 

还有删除了目录之后命令行还保留在被删除的当前目录,我们退回上级目录再看就发现确实是删除了

        

如上还有问题要解决,以空目录zehua2为例:

就是如果复制过去的是空目录还需要加参数吗?(要,删除操作也是一样)

还有我们zehua1目录复制过去,结果目录名变成了ZEHUA,为什么?怎么保持原名?(很简单,目的路径不要写目录名ZEHUA,写.表示当前路径即可保持原名)

 

6.对于移动和重命名文件和目录我们都是使用mv这个命令,这个命令的操作类似于cp命令

如下就是目录和文件的重命名:

 

mv命令对目录操作不需要加参数r,如下把zehua1目录(包括目录里的内容)移动到ZEHUA当前目录(.和./都表示当前目录,路径最后面的/可写可不写)

 

用于查看文件类型,如下我们重命名或者创建时没指定后缀,那么我们查看不到文件类型,用file查看类型时也是显示empty

 

查看文件会把文件内容全部列出来,添加参数b则最前面会显示行号。注意命令之间的空格不能省略,否则会提示无此命令

 

 

posted @ 2016-02-29 17:05  SixEvilDragon  阅读(196)  评论(0编辑  收藏  举报