精选文章

Android下使用TCPDUMP抓包Wireshark分析数据 如果想分析Android下某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump生成Wireshark识别的pcap文件,然后将pcap文件下载到电脑上,用电脑上的Wireshark加载pcap文件,通过Wireshark分析tcpdump抓取的数据。...

继续阅读

Mac下部署Android开发环境附加NDK 作为开发者,我们深有体会,不管是进行什么开发,为了部署开发环境,我们往往需要折腾很长时间、查阅很多资料才能完成,而且这次折腾完了,下次到了另一台新电脑上又得重新来过,整个部署过程记得还好,要是不记得又得重新开始,而且遇到Android这种GFW阻隔了开发资源下载链接的环境部署,又尤其浪费时间。所以这也是我写下这篇教程的初衷跟动力源泉,希望大家参考了这篇教程以后可以轻轻松松在Mac系统下将Android环境部署好。...

继续阅读

稍顯嚴肅的台中 坦白說,留在腦海中的台中影像並不多,來台灣之前在Booking上只訂到了台中的一家青旅,第一次住青旅有些不習慣,幹什麼都放不開。 同屋的一個男生是台灣人,不過一年中四分之三的時間在上海跟北京,這麼說來跟我還是比較有共同話題的。得之我準備花15天的時間環島,覺得太倉促了,他們大學時期花一個半月的時間也不見得能將台灣島給逛完。我只能無奈地表示,兩岸允許的簽證時間有限,自己的空閒時間更有限,只能用打卡式的旅行了,我深知正真地旅行應該慢下來,融入當地的環境,感受他們的風土人情,但第一次只能這樣作罷,以後換成民進黨上台,形勢會變成怎樣還不得而知,能否再過來還是個未知數。而我一向信奉的人生格言是秉燭夜遊,活在當下,所以,理解自己吧。...

继续阅读

為之留戀的新竹 來新竹之前本沒有對她有過高的期待,慢慢對她加分要從桃園火車站出發前往新竹開始。 在桃園火車站的候車月台上,有醒目的旅遊資料發放處,這上面的擺放的全是新竹的旅遊宣傳資料,關鍵的是資料做得非常簡潔易懂,而接下來一天的新竹之行就全部是依據這份寶典的指引來完成的。...

继续阅读

從桃園開始台灣之行 初到台灣恰逢華夏銀行系統升級,特意準備的華夏銀聯卡在桃園機場沒能派上用場,只好用建行在機場5000塊,算下來是很不划算的,但是沒辦法,誰叫我出機場就得花錢呢。 從機場打車到桃園的酒店,花了將近六百塊新台幣,到酒店時五點多,天已經漸亮了,洗漱完等到七點吃過早餐就開始補覺囉,一覺醒來已是中午,帶著換下來的衣服外出找自助洗衣店,順便覓食。...

继续阅读

  • Prev
  • Next

Linux下的Shell终端

文章分类 : Linux, Ubuntu, Windows, 应用与编程, 教程

Shell 是 Linux 系统为了处理来自用户的交互信息而提供给用户的一个命令行界面,它是用户与内核进行交互的接口,接受用户输入的命令,解析之后转交给内核去执行。Linux 系统下的 Shell 类似于 Windows 系统下的命令提示符(cmd.exe),执行基于字符的命令或功能。

一、何谓 Shell    

Shell 作为英文单词的中文意思是“壳、外壳”,Linux 系统下的 Shell 即可以理解为操作系统的外壳。广义上讲,所有用户可以接触到的界面 UI 或者命令终端都可以称之为 Shell;而我们这里主要介绍的是狭义层面上的 Shell,当用户登陆 Linux 系统之后,系统初始化程序 init 将为每个用户运行一个称之为 Shell 的程序(例如:Ubuntu 下默认的 Shell 程序为 /bin/bash ),它是一个命令行解释器,为用户提供了一个向 Linux 内核发送请求,以便内核帮助用户运行指定程序的界面系统程序。用户可以使用 Shell 来启动、挂起、停止以及编写、编译程序等。

Shell 本身便是一个应用程序,能够被系统中的其他应用程序所调用。它拥有自己内置的 Shell 命令集,如切换目录命令 cd 跟退出当前 Shell 命令 exit 。当然,在 Shell 运行的的大多数程序都不是它内置的,如拷贝命令 cp 和删除命令 rm,这些命令通常被放置于系统环境变量所指定的搜索路径下(如 /usr/bin )。

Shell 在执行命令之前,先检查指定命令是否为内部命令,若不是则检查其是否为一个应用程序,然后在系统环境变量所指定的搜索路径下寻找这些应用程序,如果键入的命令既不是 Shell 内部命令,又没有存在于搜索路径下,则 Shell 将提示程序未找到;如果成功找到指定程序,它将被分解为系统调用并传送给 Linux 内核。

Shell 的另一个重要特征是它自身就是一个解释型的程序设计语言,Shell 程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构等。Shell 编程语言简单易学,任何在终端命令行中能使用的命令都可以放到一个可执行的 Shell 脚本中执行。

根据用户的不同,Shell 终端的命令行提示符也不同,普通用户使用“$”作为提示符,而超级(root)用户则使用“#”作为提示符。在命令提示符后面键入命令名跟相关参数,Shell 将执行这些命令。如果命令运行了很长时间还未结束,而此时你又想结束它,则可以在键盘上按“Ctrl+c”发送中断信号来非正常地结束它。工作完成了以后,倘若想退出 Shell 终端,我们可以使用 exit 命令,也可以制造文结束符EOF(按“Ctrl+d”)来实现退出。

二、Shell 种种

Linux 下的 Shell 有好几种,目前流行的主要有 bash、ash、ksh、csh、zsh等,我们可以使用如下命令来查看本机使用的 Shell 类型:

#echo $SHELL

前面讲到了,Shell 实际上也是一个可执行程序,上条命令中,$SHELL是一个环境变量,它记录着用户所使用的 Shell 对应的可执行程序的绝对路径,例如 Ubuntu 下的执行结果为“/bin/bash”。如果系统中有多个 Shell ,在默认 Shell 的命令行中,我们可以通过输入其他 Shell 的名字来切换到其他 Shell,新切换过来的 Shell 属于原来 Shell 终端的子 Shell,使用 exit 命令可以回到原来的 Shell 终端中。

之所以有这么多 Shell 的存在是因为它们各自都有自己的特点,下面作一个简单的介绍:

1、bash

bash 是 Linux 系统默认使用的 Shell,内置 40 个命令,它能够被采纳为 Linux 系统下的默认 Shell 得益于如下特点:

(1)可以使用方向键来快速查看最近的操作记录;
(2)给出部分字符串,支持使用 Tab 键来自动查找或补全以指定字符串开头的命令;
(3)提供帮助信息,在命令行下输入 help 即可获得帮助。

2、ash

ash 是 Linux 中占用系统资源最少的一个简易版 Shell,因为只包含了 24 个内置命令,使用起来不大方便。

3、ksh

ksh 内置 42 条命令,分为免费版跟商业版,该 Shell 的最大优点就是免费版跟商业发行版几乎完全兼容,这样就可以在不花钱购买商业版的情况下体验商业版的性能了。

4、csh

csh 是 Linux 下比较大的 Shell,包含 52 个内部命令,其可执行文件的绝对路径一般为 /bin/tcsh ,所以 csh 通常又被称为 tcsh 。

5、zch

zch 是 Linux 下最大的 Shell 之一,共有84个内部命令,如果只是需要 Shell 完成一般的用途,没有必要安装这样的 Shell 。

除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。

本文地址:https://www.cpplive.com/html/1700.html

这里因为你的留言而存在!!!

You must be logged in to post a comment.