快乐的命令行(一)

0、为什么使用命令行

大多数计算机用户习惯图形用户界面(GUI, graphical user interface),而命令行界面(CLI, command line interface)是用来和计算机进行交流沟通的非常有效的方式。GUI make easy tasks easy, while CLI make difficult tasks possible. Linux 以 Unix 家族的操作系统为模型,因此它分享了 Unix 丰富的命令行工具。

快乐的命令行(http://billie66.github.io/TLCL/book/index.html)包括四个部分:学习shell,开始探究命令行基本语言;配置文件及环境;常见任务及主要工具;编写简单的shell脚本。

学习shell

1、什么是shell

shell 是一个程序,接受键盘输入的命令,把命令传递给操作系统去执行。

使用图形用户界面时,需要一个和shell交互的程序,终端仿真器。一般被简单的成为terminal

启动终端仿真器,一般会出现一行文字,叫shell提示符,当shell准备接受输入时,它会出现。

[me@linuxbox ~] $

通常包括 用户名主机名,紧接着当前工作目录(稍后会有更多介绍)和一个美元符号 $表示管理员,表示以root用户身份登录或者终端仿真器提供超级用户权限。

上下箭头可以保存命令,默认500行。左右箭头光标跳转任意位置。

也可以在终端仿真器里使用鼠标。一种内建机制支持快速的拷贝和粘贴。按下鼠标左键,沿着文本拖动鼠标或者双击一个单纯 高亮了一些文本,该文本会被拷贝到一个缓冲区,再按下鼠标中键,这些文本就被粘贴到光标所在位置。注意:不能再终端窗口使用 Ctrl-V,Ctrl-C 进行复制粘贴。

简单学习输入命令,执行命令。

date      show current time and date

cal        displays a calendar of the current month

df          see the current amount of free space on your disk drives

free      see the  amount of free memory

exit       end a terminal

即使终端仿真器没有运行,在后台依然有几个终端会话进行着,一般称为虚拟终端或虚拟控制台。在大多数Linux版本中,可以通过按下 Ctrl-Alt-F1 到 Ctrl-Alt-F6 访问。访问时需要输入用户名和密码。要从一个虚拟控制台转换到另一个,按下 Alt 和 Fx(x from 1 to 6)。返回图形界面,按下 Alt-F7.

shell 初认识

2、在文件系统中跳转

需要学习的第一件事是如何在Linux系统中跳转。

主要介绍以下命令:

pwd    打印当前工作目录名 print name of current working directory

cd       更改目录 change directory

ls        列出目录内容 list directory contents

2.1 理解文件系统树

Linux 系统以分层目录结构来组织所有文件。因此所有文件组成了一棵树型目录,这个目录包含文件和其他的目录。文件系统中的第一目录为根目录。根目录包含文件和子目录,子目录包含更多的文件和子目录。

不同于windows,每个存储设备都有一个独自的文件系统,Linux只有一个单一的文件系统树。存储设备连接到目录树的各个节点上。

2.2  当前工作目录

在任意时刻,我们处于一个目录里面,我们能看到这个目录包含的所有文件, 以及通往上面目录(父目录)的路径,和下面的各个子目录。我们所在的目录则称为 当前工作目录。当我们首次登录系统(或者启动终端仿真器会话)后,当前工作目录是我们的家目录。 每个用户都有他自己的家目录,当用户以普通用户的身份操控系统时,家目录是唯一 允许用户写入文件的地方。

可以使用 pwd (print working directory)命令,显示当前工作目录。

ls 命令可以列出任何一个目录的内容。

cd命令可以更改路径名,路径名分为两种,一种是绝对路径,一种是相对路径。

绝对路径:开始于根目录,紧跟着目录树的一个个分支,一直到期望的目录或文件。如 /usr/bin. 为了方便显示,终端提示符自动显示工作目录名。

相对路径:开始于工作目录。为了便于表示,‘.’ 表示工作目录, ‘..’表示工作目录的父目录。在几乎所有的情况下,你可以省略”./”。它是隐含的。如果不特殊指明文件的路径,默认在当前目录下。

pwd                             /home/name

cd /usr/bin                   /usr/bin

cd ..                            /usr

cd ./bin(cd bin)           /usr/bin

cd                               /home/name 更改目录到家目录

cd -                            更改目录到先前的工作目录

cd ~user_name         更改目录到用户家目录

关于文件命名的规则

1、以 “.” 字符开头的文件名是隐藏文件。这仅表示,ls 命令不能列出它们, 用 ls -a 命令就可以了。当你创建帐号后,几个配置帐号的隐藏文件被放置在你的家目录下。另外,一些应用程序也会把它们的配置文件以隐藏文件的形式放在你的家目录下面。

2、文件名和命令名是大小写敏感的。文件名 “File1” “file1” 是指两个不同的文件名。

3、Linux 没有“文件扩展名”的概念,不像其它一些系统。可以用你喜欢的任何名字来给文件起名。文件内容或用途由其它方法来决定。虽然类 Unix 的操作系统, 不用文件扩展名来决定文件的内容或用途,但是有些应用程序会。

4、虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限使用 “.”,“-”,下划线。最重要的是,不要在文件名中使用空格。如果你想表示词与词间的空格,用下划线字符来代替。

3、操作系统探究

3.1 命令是如何工作的

命令名经常会带有一个或多个用来更正命令,选项后面会带有一个或多个参数。大多数命令如下所示:

command -options arguments

大多数命令由一个中划线加上一个字符组成,例如,“-l”,但是许多命令,包括来自于 GNU 项目的命令,也支持长选项,长选项由两个中划线加上一个字组成。当然, 许多命令也允许把多个短选项串在一起使用。

ls -lt --reverse            -lt 表示长格式输出,t 表示按文件修改的先后顺序来,长选项 --reverse 表示逆序

3.1.1 深入研究长格式输出

长格式输出包含大量有用的信息。

-rw-r--r--              1             root                  root                 35875             2019-01-04 17:50             name.xls

文件权限    硬链接数目   所有者用户名  用户组的名字      文件大小            修改时间                         文件名

接着分析文件权限包含的信息

-                                                                     rw-                                    r--                             r--

文件类型,-为普通文件,d为目录。   文件所有者的访问权限      所属组成员的访问权限  其他人的访问权限

3.1.2 ls命令

ls是使用较多的命令。ls也可以查看其它目录。ls可同时查看多个目录。

-a(--all)        列出所有文件,包括隐藏文件。

-d(--directory)    指定目录名。列出目录中的内容,非目录本身。与-l结合使用,可以看到目录的详细信息  

-F(--classify)        在每个所列名字后面加一个提示符。

-h(--human-readable)    长格式输入以人类可读方式

-l        长格式输出

-r(--reverse)        按相反顺序显示结果。

-S        按文件大小排序

-t        按修改时间排序

3.2 确定文件类型

知道文件所包含的内容是有必要的。可以使用file命令来确定文件的类型。在类 Unix 操作系统中比如说 Linux 中,并不要求文件名来反映文件的内容,有许多类型的文件,且有个普遍的观念就是“一切皆文件”。

file filename

3.3 浏览文件内容

什么是文本? 文本是简单的字符与数字之间的一对一映射。例如五十个字符的数据翻译成五十个字节的数据。文本只包含简单的字符数字映射和基本的控制符。

许多包含系统设置的文件(叫做配置文件),是以文本格式存储的,阅读它们 可以更深入的了解系统是如何工作的。另外,许多系统所用到的实际程序(叫做脚本)也是以这种格式存储的。

我们使用less浏览文件内容:

less filename

一旦 less 程序运行起来,我们就能浏览文件内容了。如果文件内容多于一页,那么我们可以上下滚动文件。按下“q”键, 退出 less 程序。

常用的less键盘命令

Page UP or b                    向上翻滚一页

Page Down or space        向下翻滚一页

UP Arrow                           向上翻滚一行

Down Arrow                       向下翻滚一页

G                                        移动到最后一行

1G or g                               移动到开头一行

/charaters                           向前查找指定的字符串

n                                        向前查找下一个出现的字符,该字符串是之前所指定查找的

h                                        显示帮助屏幕

q                                        退出less

less 属于”页面调度器”类程序,这些程序允许以逐页方式轻松浏览长文本文档。 more 程序只能向前翻页,而 less 程序允许前后翻页,此外还有很多其它的特性。

3.4 符号链接

lrwxrwxrwx     1     root     root     11     2007-08-11     07:34     libc.so.6 -> libc-2.6.so

这是一个特殊文件,叫做符号链接(也称为软链接或者 symlink )。 在大多数“类 Unix” 系统中, 有可能一个文件被多个文件名所指向。虽然这种特性的意义并不明显,但它真的很有用。

为什么需要符号链接?比方说,我们安装了文件 “foo” 的 2.6 版本,它的文件名是 “foo-2.6”,然后创建了叫做 “foo” 的符号链接,这个符号链接指向 “foo-2.6”。 这意味着,当一个程序打开文件 “foo” 时,它实际上是打开文件 “foo-2.6”。 现在,每个人都很高兴。依赖于 “foo” 文件的程序能找到这个文件,并且我们能知道安装了哪个文件版本。 当升级到 “foo-2.7” 版本的时候,仅添加这个文件到文件系统中,删除符号链接 “foo”, 创建一个指向新版本的符号链接。这不仅解决了版本升级问题,而且还允许在系统中保存两个不同的文件版本。 假想 “foo-2.7” 有个错误(该死的开发者!),那我们得回到原来的版本。 一样的操作,我们只需要删除指向新版本的符号链接,然后创建指向旧版本的符号链接就可以了。

3.5 硬链接

硬链接同样被允许文件有多个名字,但其以不同的方式创造多个文件名。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,168评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,271评论 9 467
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,383评论 0 5
  • 2017年9月21日,农历八月初二,周四,晴。 今天儿子放学,我问他今天听课怎么样,他说还行,语文还回...
    泰硕麻麻阅读 217评论 0 0