设为首页 加入收藏

TOP

初识 Linux Shell(一)
2023-07-23 13:43:32 】 浏览:126
Tags:初识 Linux Shell

初识 Linux Shell

本书学习的第一步,就是要找到 Linux 终端的所在位置。目前较常见的图形化终端有 Konsole、Gnome terminal、xterm 等几种。一般安装后在各个发行版的菜单中搜索即可找到。Gnome terminal 和 Konsole 基本是当前各大流行 Linux 发行版预装最多的终端应用,功能也非常强大好用。而 xterm 是世界上第一款图形化终端软件,xterm 软件包在 X Window 出现之前就有了。其对于老式哑终端的模仿非常到位,可以仿真各类老式哑终端的色彩等行为。所谓的哑终端就是传统的利用通信电缆(一般是一条多线束的串行电缆)连接到 Unix 系统上的一台显示器和一个键盘。关于各个图形化终端的各类配置,同学们可以自行慢慢摸索。

除了上述的图形化终端,在 Linux 出现的早期,没有图形化界面可供操作,当时通常的方式是使用一个简单的哑终端操作 Unix 系统。当今 2021 年,这种连接方式基本早已不存在了,但是你仍然可以模拟此种连接方式。Linux 系统启动后,它会自动创建出一些虚拟控制台。虚拟控制台是运行在 Linux 系统内存中的终端会话。通过按键组合ctrl + alt + (F1~F7),可以分别切换到多个不同的虚拟控制台。这种模式称作 Linux 控制台,它仿真了早期的硬接线控制台终端,而且是一种同 Linux 系统交互的直接接口。虚拟控制台一般也被称为 tty。tty 代表电传打字机(teletypewriter)。这是一个古老的名词,指的是一台用于发送消息的机器。

在开始使用 tty 后,你可以看到首先会让你输入要登录的用户名,输入用户名回车后会提示输入密码,需要注意的是,密码的输入是不会显示在屏幕上的,盲输完回车即可完成登录,屏幕不显示密码是正常的,不要以为自己的键盘坏了。

起步

在启动图形化终端后,你首先会看到一个待输入的命令提示符,类似 windows 系统中的 cmd。一般如下所示,显示了当前用户 ID 名 testuser,系统名为 archlinux。~这个波浪线代表你正处于 testuser 这个用户的个人目录下,路径为/home/testuser$代表当前是已一个普通用户登陆,若为#则表示是以 root 帐户登陆。

testuser@archlinux:~$

你可能听说过 Linux 中有非常多的命令,都记住各个命令的用法是不现实的,所以第一步我们来学习的命令就是 man 命令:一个用来查询各个命令如何使用的命令。

在 ArchLinux 上,你首先需要安装man-db man-pages两个包,如果是第一次安装,最好执行一下如下命令,以便 man-db.service 建立-k 搜索参数需要使用的 db 索引。

$ sudo systemctl enable --now man-db #第一次执行时间会较长,可能会有几分钟 耐心等待

sudo 命令代表可以让当前用户暂时使用 root 权限执行此条命令。

比如,现在想查询 ls 命令的使用方式,那么输入执行如下命令即可

$ man ls

执行后你可以看到标题,描述,以及一大堆的信息。首先要知道,man 命令是用来速查某种命令使用方式的,不是用来各个详细阅读的(当然你有时间愿意读也没问题)。
在这个界面你可以执行一些搜索操作,方式和在 vim 中类似,比如输入/斜杠加上你想搜索的单词进行搜索,n键跳到下一个匹配的位置等等。一般常规的查询一个命令的流程就是先看一下 Description 知道这个命令是干什么的,然后输入斜杠搜索一下你想查询的参数的含义,最后看完按q键退出。

在 man 页面的左上角,可以看到LS(1)的字样。这个(1)代表的是手册类型,下面列举一下各个数字所代表的类型意义。

  • 1:可执行程序或 shell 命令
  • 2:系统调用
  • 3:库调用
  • 4:特殊文件
  • 5:文件格式与约定
  • 6:游戏
  • 7:概览、约定及杂项
  • 8:超级用户和系统管理员命令
  • 9:内核例程

上面有的部分现在看不懂也没关系,该懂的时候你自然就懂了。

一个命令偶尔会在多个内容区域都有对应的手册页。比如说,有个叫作 hostname(在 archlinux 中需要安装包inetutils) 的命令。手册页中既包括该命令的相关信息,也包括对系统主机名的概述。要想查看所需要的页面,对手册页中的第 1 部分而言,可以输入 man 1 hostname。对于手册页中的第 7 部分,就是输入 man 7 hostname。

除了 man 命令可以查询 Linux 命令的使用方式,info 命令也可以进行查询(在 archlinux 中需要安装包texinfo)。这里不再详细讲述 info 命令,因为 man 命令已经可以覆盖绝大多数内容。

另外,大多数命令都可以接受-help 或--help 选项。例如你可以输入 hostname --help 来查看帮助。

如果不记得命令名怎么办?可以使用关键字搜索手册页。语法是:man -k 关键字。例如,要查找与终端相关的命令,可以输入 man -k terminal。

除了万能的 man 命令,近几年还出现了一个非常流行的命令行帮助项目:tldr。其含义为太长不看的缩写。像它的名字一样,这个命令只输出某个命令的最简要的使用方式,对喜欢太长不看的人来说非常好用。在 archlinux 上可以直接通过 pacman -S tldr 进行安装。

$ tldr tar   #查看tar命令的简明使用方式

若你出现如下错误,说明你的网络环境下,tldr 命令查询的 github raw 网址已经被 GFW 墙掉了。请使用全局代理proxychains 前缀,或添加 https_proxy 环境变量。

Error fetching from tldr: <urlopen error [Errno 111] Connection refused>

cd 漫游文件系统

当登录系统并获得 shell 命令提示符后,你通常位于自己的主目录中。一般情况下,你首先会想去逛逛主目录之外的其他地方。本节将告诉你如何使用 shell 命令来实现这个目标。

稍微了解 Linux 文件系统的话就会知道,一般来说一个完整的 Linux 文件路径可能是这样的:

/home/testuser/Documents/test.cpp

这种完整的路径被称为绝对路径,即从根路径/到目标文件的完整路径结构,含义为 testuser 这个用户家路径下的 Documents 目录下,有一个名为 test.cpp 的文件。想查看当前所处的位置的绝对路径,可以使用命令pwd

$ pwd
/home/testuser/Documents/

与此对应的,另一个概念为相对路径。其代表当前路径为基准起点,对应的一个相对位置。比如当前你所处的路径为/home/testuser/Documents,此时想要去到 testuser 用户的桌面 /home/testuser/Desktop 路径下,用相对路径即可表示为

../Desktop

其中..为双点符,表示当前目录的父目录。另外一个常用标识符为.单点符,标识当前目录自身。

在文件系统中变更目录位置的命令为cd,可以接受绝对路径或相对路径作为参数

#绝对路径的例子
$ cd /home/testuser/Documents/  #使用绝对路径的方式切换到/home/testuser/Documents/路径下
#相对路径的例子
$ cd ../Desktop               #从/home/testuser/Doc
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux环境编程(2): 使用pipe完成.. 下一篇Nginx配置将二级域名解析到Linux..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目