`
liyanhui
  • 浏览: 350670 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux学习笔记6(base入门基础1)

阅读更多
什么是Shell?

shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。
shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell也能被系统中其他有效的Linux 实用程序和应用程序(utilities and application programs)所调用
shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell 程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组
shell 如何启动
shell在你成功地登录进入系统后启动,并始终作为你与系统内核的交互手段直至你退出系统。你系统上的每位用户都有一个缺省的shell。每个用户的缺省shell在系统里的passwd文件里被指定,该文件的路径是/etc/passwd
通配符
另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:

*   匹配任何字符和任何数目的字符

?   匹配任何单字符

[...] 匹配任何包含在括号里的单字符
如果你需要打印所有扩展名是 .doc 的文件,你能使用象这样简化的命令:

lpr *.doc
命令历史记录
用 bash 的内部命令 history 和 fc(fix 命令)命令来显示和编辑历史命令。history 命令能以两种不同的方法来调用。第一种是:

history [n]
history 命令没有参数时,整个历史命令列表的内容将被显示出来
使用 n 参数的作用是仅有最后 n 个历史命令会被列出
history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下:

history [-r|w|a|n] [filename]

这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。
fc 命令能用两种方法来编辑历史命令。第一种使用下列语法:

fc [-e editor_name] [-n] [-l] [-r] [first] [last]

这里所有参数都是可选的。-e editor_name 选项用来指定用于编辑命令的文本编辑器。 first 和 last 选项用于选择列出历史命令的范围,既可以是数字也可以是字符串。-n 选项禁止列出命令的编号。-r 选项反向列出匹配的命令。-l 选项把匹配的命令行列在屏幕上(而不是在编辑器中)。如果-e editor_name参数没有被指定,则以变量FCEDIT的值来代替,如果该变量不存在的话,则用变量EDITOR的值来代替,都不存在的话将使用vi编辑器。

别名
假如为这个长命令建立一个名为goconfig的别名,在bash提示符下键入如下命令:

alias goconfig='cd /usr/X11/lib/X11/fvwm/sample-configs'

现在,除非你退出bash,键入goconfig将和原来的长命令有同样的作用。如果想取消别名,可以使用下面的命令:

unalias goconfig
注意: 在定义别名时,等号的两头不能有空格,否则 shell 不能决定你需要做      什么。仅在你的命令中包含有空格或特殊字符时才需要引号。

输入重定向

输入重定向用于改变一个命令的输入源。一些命令需要在命令行里输入足够的信息才能工作。比如 rm,你必须在命令行里告诉 rm 它你要删除的文件。另一些命令则需要更详细的输入,这些命令的输入可能是一个文件。比如命令 wc 统计输入给它的文件里的文件里的字符数,单词数和行数。如果你仅在命令行上键入 wc ,wc 将等待你告诉它要统计什么,这时 bash 就好象死了一样,你键入的每样东西都出现在屏幕上,但什么事也不会发生。这是因为 wc 命令正在为自己收集输入。如果你按下Ctrl-D,wc 命令的结果将被写在屏幕上。如果你输入一个文件名做参数,象下面的例子一样,wc 将返回文件所包含的字符数,单词数,和行数:
wc test

另一种把test文件内容传给 wc 命令的方法是重定向 wc 的输入。< 符号在bash里用于把当前命令的输入重定向为指定的文件。所以可以用下面的命令来把 wc 命令的输入重定向为 test 文件:

wc < test

11 2 1

输入重定向并不经常使用因为大多数命令都以参数的形式在命令行上指定输入文件的文件名。尽管如此,当你使用一个不接受文件名为输入参数的命令,而需要的输入又是在一个已存在的文件里时,你就能用输入重定向解决问题。

输出重定向
输出重定向比输入重定向更常用。输出重定向使你能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。

很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,你能把它重定向到一个文件中,稍后再用文本编辑器来打开这个文件;当你想保存一个命令的输出时也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入时。(还有一种更简单的方法可以把一个命令的输出当作另一个命令的输入,就是使用管道,管道的使用将在本文的“管道”一节介绍)
输出重定向的使用与输入重定向很相似,但是输出重定向的符号是 > 。
--------------------------------------------------------------------------------

注意:记忆输入/输出重定向符号的最好方法是把<看作是一个漏斗,漏斗的小口      指向需要输入的命令(因为需要接受输入的命令会在 <的左手边),而把>      当作一个大口指向有输出的命令的漏斗。

--------------------------------------------------------------------------------
重定向举例,当你要把 ls 命令的输出保存为一个名为 directory.out 的文件时,你可以使用下面的命令:

ls > directory.out

管道
管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。
你能通过使用管道符 | 来建立一个管道行,下面的示例就是一个管道行:

cat sample.text | grep "High" | wc -l

这个管道将把 cat 命令(列出一个文件的内容)的输出送给grep命令。grep 命令在输入里查找单词 High,grep命令的输出则是所有包含单词 High的行,这个输出又被送给 wc命令。带 -l选项的 wc命令将统计输入里的行数。假设 sample.txt的内容如下:

Things to do today:

Low: Go grocery shopping

High: Return movie

High: Clear level 3 in Alien vs. Predator

Medium: Pick up clothes from dry cleaner


管道行将返回结果 2,指出你今天有两件很重要的事要做:

cat sample.text | grep "High" | wc -l
分享到:
评论

相关推荐

    Linux基础学习笔记-入门版

    Linux入门版本笔记, 相当详细, 可以当作man手册来用, 头几行是个小彩蛋, 谢谢!

    Linux学习笔记——入门资料

    这份“Linux学习笔记”旨在帮助初学者快速掌握Linux的基础知识和操作技能,从而轻松入门。 一、Linux简介 Linux并非单一的操作系统,而是基于Linux内核的一系列发行版的统称,如Ubuntu、CentOS、Fedora等。它倡导...

    Linux学习笔记(强悍总结值得一看)_linux_linux学习笔记_

    这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...

    Linux学习笔记 (华为工程师总结) 完整版PDF

    《Linux学习笔记》这份资料非常全面且详细,从 Linux 常用命令到 Linux 常用操作,再到网络管理、性能优化,几乎覆盖了 Linux 基础学习的方方面面,非常适合初学者入门!这里只是对于常用命令进行了整理,希望可以...

    Linux学习笔记Linux学习资料Linux教程

    【linux学习笔记--17】POSIX IPC——消息队列.doc 【linux学习笔记--18】POSIX IPC——信号量.doc 【linux学习笔记--19】POSIX IPC——共享内存.doc ...【linux学习笔记-6】文件IO操作--读写、重定向等.

    linux学习笔记分享 (Linux入门绝佳)

    Linux 学习笔记分享 (Linux 入门绝佳) Linux 是一个开源的操作系统,它的目录架构是非常重要的概念。在 Linux 中,目录架构是按照 FHS(Filesystem Hierarchy Standard)标准来组织的。下面是 Linux 中一些重要的...

    Linux学习笔记-很不错适合linux入门者

    总的来说,这份“Linux学习笔记-很不错适合linux入门者”涵盖了Linux基础的方方面面,无论是对操作系统有兴趣的个人,还是准备从事系统管理员、运维工程师、开发人员等职业的学习者,都能从中受益匪浅。通过系统学习...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    linux 学习笔记

    linux 学习笔记linux 学习笔记linux 学习笔记linux 学习笔记linux 学习笔记linux 学习笔记

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 博文来自http://blog.csdn.net/wklken,共12篇,类似手册,可快速练习和查阅,容易上手 文档列表: Linux笔记——vim常用操作及扩展补充...

    非常宝贵的LINUX学习笔记

    【linux学习笔记-1】使用GDB调试简单的用户程序 【linux学习笔记-2】父子进程共享文件描述符 【linux学习笔记-3】文件操作(stat,chmod,umask) 【linux学习笔记-4】进程扇和进程链 【linux学习笔记-5】编写自己的ls...

    Linux学习笔记-基础篇

    这是我在学习Linux是整理的Linux基础的笔记,能很好地从Windows过渡到Linux这个操作系统上,这是只是Linux应用的基础,对于Linux假设服务器方面的学习资料今后可能还会整理上传,敬请期待吧。

    Linux学习笔记.pdf.zip

    Linux学习笔记

    linux学习基础笔记

    Linux学习基础笔记主要涵盖Linux操作系统的基本概念、安装与配置、常用命令、文件系统管理、用户权限与用户组、进程管理、网络配置以及shell脚本编程等多个方面。以下是对这些知识点的详细阐述: 1. **Linux操作...

    嵌入式LINUX入门笔记

    通过《嵌入式Linux入门笔记》PDF文档,你将逐步掌握这些知识,为在嵌入式世界中构建自己的项目打下坚实的基础。记得理论与实践相结合,动手操作是巩固学习的最佳方式。祝你在嵌入式Linux的学习旅程中取得成功!

    Linux学习笔记.pdf

    根据提供的信息,《Linux学习笔记.pdf》是一份关于Linux操作系统的基础学习材料,主要涵盖了Linux的基本概念、文件系统特性、权限管理以及一些常用命令的使用方法。接下来,我们将详细解析这份文档中提到的重要知识...

    兄弟连linux教程1-16章学习笔记(全)

    《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...

    linux学习笔记,linux学习笔记

    linux学习笔记,linux学习笔记

Global site tag (gtag.js) - Google Analytics