第0次 序言

    突然想起有好多书没有看,或者看了也没留下任何记录,以后有空必须得好好整理才行,这次就从《Linux命令行和shell脚本编程大全开始》

    本文完全是闲聊,自娱自乐,我觉得做开发是一件很快乐的事情,但是工作是开发就是一个悲剧了,当初选择去当公务员也是这么一回事,我觉得工匠可以造出王冠来,但是戴王冠的又不是它自己,得不到荣耀,也得不到对得起这份辛勤的money,更重要的是欣赏王冠的是少数人,不像美丽的雕像或者画作,纯粹自娱自乐罢了,还不如直接把自己卖给国王,给国王当私人的工匠,不用担心明天接不到打铁的活计,哈哈哈。

   上面这段话是开玩笑啦,每个人都有自己的想法不是嘛,上面是我的想法。

   想起阿基米德的浮力定律,那个在黄金王冠里面掺假的笨蛋工匠,为人类贡献了一条新发现,也算是没有白活。这里我又想起进步,想要进步就必须付出代价,不论是现实还是神话,比如北欧神话奥丁想要获得智慧,他就献祭了自己的一只眼睛,想要力量,就要献祭自己去体会痛苦,把自己挂在世界树上九天九夜,人类社会也一样,每次进步都是无数人的痛苦,战乱之后的社会复习,科技进步,制度更新,献祭了不知道多少可怜的灵魂。也许这是一种规律,也许这是一种诅咒,也许两者都是。总之,这条浮力定律献祭了一个可怜的工匠,可能在某本寓言书上说:这是贪婪的代价,我们有智慧的人应该学会谦逊和满足。

   为了避免这些痛苦,我选择逃避,不想做开发了,就当是一种乐趣吧。

回归原点,我们从这本书的第三章开始,因为shell是从第三章开始的。我有个小小的建议,一本书的第一章要快速阅读,不用读的那么明白,在读完整本书之后,回到序言,第一章,细细评委,因为第一章往往太浓,一次就像看明白,就跟喝一杯蒸馏酒一样,容易喝醉。

1.bash shell

    shell的意思是外壳的意思,这里就是操作系统的外壳,之所以叫他外壳,是因为用户不会直接接触到操作系统的内核,比如我们查看目录下的文件,总不能调用内核,写个程序来输出吧,shell确实是这么做的,它是沟通内核与用户之间的外壳,因此叫做shell。

        shell分为很多类型,这里专门指的是bash shell,当然啦,你也可以切换为其他的shell命令。

启动shell,打开终端窗口就行了,上面有提示符。输入命令,执行的结果就会输出到终端。

2.文件目录

        Linux文件系统看起来是个树状图,其实这个树状图是逻辑结构,真实结构式线性的,真实结构就是物理结构,内存什么的。内存懂吧,这样的东西就是按照顺序排列,必然是线性的。树状结构容易理解,也容易操纵,比如删除,查找之类的删除,节约时间。

        文件目录都是从根目录开始,根目录的名字是"/"

        在他之下有其他的目录:

        

/ 根目录
/bin 二进制目录,存放许多用户级的GNU工具
/boot 启动目录,存放启动文件
/dev 设备目录,Linux在这里创建设备节点
/home 主目录,Linux在这里创建用户目录,就跟windows的User目录一样
/lib 库文件目录,存放系统和应用程序的库文件
/media 媒体目录,可移动媒体设备的常用挂载点
/mnt 挂载目录,另一个可移动媒体设备的常用挂载点
/opt 可选目录,存放第三方软件包和数据文件
/proc 进程目录,存放现有硬件以及当前进程的相关信息
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理级工具
/run 运行目录,存放系统运行时的运行目录
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,存放系统硬件相关的文件
/tmp 临时目录,可以在该目录下创建和删除临时文件
/usr 用户二进制目录
/var 可变目录,存放经常变化的文件,比如日志文件
/etc 系统配置文件

       在/etc/passwd文件中,记录了系统用户账户列表以及每个用户的基本配置信息,用冒号分割,一共七个字段,记录用户名,被加密的密码,使用的shell版本等等信息。

如果不懂某个命令,可以使用man 命令。

首先,我们应该知道什么叫路径,这个可能时一切的起点,就跟我们用windows系统一样,把文件放在不同的目录,命令也是基于路径,这叫脚踏实地。

路径分为两种,一种是绝对路径,一种是相对路径,绝对路径是指从根目录开始,一直到你所在的位置,另一种是从你当前所在的位置开始算,一般用"./"表示,上一级目录也叫父目录,我猜现在应该叫父母目录了,用"../"表示。

3.常用命令

(1).cd  切换文件目录,比如切换到ect目录:cd /etc,相对目录切换需要查看路径。

(2).ls 列出文件,后面可以加各种选项,可以使用man ls查看有哪些选项。

比如ls -a,列出全部文件

(3).touch 创建文件 比如:touch read.txt 创建一个read.txt的文件

(4).cp source destiantion 复制source到destination 比如 cp a ../  把a复制到上一级目录里面

还可以用通配符。

(5)mv  它可以对文件重命名,也可以把文件移动到其他地方

(6)rm 删除文件,删除文件要注意文件夹和文件的区别,删除文件夹要加-r

不管是删除还是移动,最好加上-i,因为删除或者移动,就找不回来了,-i会提示你是否真的删除和覆盖。

(7).mkdir 创建文件目录,如果想要同时在文件夹下面创建其他文件夹,要加-p

(8).rmdir 删除空目录

(9).file 查看文件类型

(10).cat 查看整个文件,搭配-n可以显示行号。-b显示有字符的行号

(11).more分页查看文件,支持翻页,退出按q,这是对cat的改善,

(12).less 是more的升级版,可以在其中查找字符,上下翻动

(13).tail 查看文件的最后几行,可以搭配-n,表示查看最后哪些行,比如tail -n 3 查看最后三行,还可以用-f

(14).head查看开头几行

(15).in 链接文件,这个有点麻烦,但是如果用windows图标来类比,就简单了。

链接分为两种,符号链接和硬链接,符号链接就是图标一样的链接了

符号链接

in -s a b

b就是指向a的链接,a相当于图标,所以a的内容和b的内容不一样

硬链接

in a b

b指向a,a和b是一样的。只能对处于储存媒体的文件创建硬链接

本文都是简单介绍,不会深入研究。

你可能感兴趣的:(bash)