1.1 实验内容

  1. 实验楼环境介绍
  2. 常用 Shell 命令及快捷键
  3. Linux 使用小技巧

1.2 实验知识点

  • Linux 基本命令
  • 通配符的使用
  • 查看帮助文档

终端的概念

通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。 下面是几个比较常见的终端模拟器: gnome-terminal,Konsole,xterm,rxvt,kvt,nxterm 和 eterm 。目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal 。不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的。

终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登录就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录。在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,不过在我们的在线实验环境中可能无法切换,因为特殊功能按键会被你的主机系统劫持。当你切换到其中一个终端后想要切换回图形界面,你可以按下[Ctrl]+[Alt]+[F7]来完成。

 

3.1Shell

通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而是这个 Shell(壳)。有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。

UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。当然这一点也有别于 Windows 下的命令行,虽然该命令行也提供了很简单的控制语句。在 Windows 操作系统下,有些用户从来都不会直接使用 Shell,然而在 UNIX 系列操作系统下,Shell 仍然是控制系统启动、X11 启动和很多其它实用工具的脚本解释程序。

在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但我们的环境中使用的分别是 zsh 和 xfce。

命令行操作初体验:

--help

man **

模糊匹配一个或者多个:*

模糊匹配一个:?

ls

ctrl+c 撤销

写在前面

在 linux 中,最最重要的就是命令,这就包含了 2 个过程,输入和输出

  • 输入:输入当然就是打开终端,然后按键盘输入,然后按回车,输入格式一般就是这类的
#创建一个名为 file 的文件,touch是一个命令
touch file #进入一个目录,cd是一个命令
cd /etc/ #查看当前所在目录
pwd
  • 输出:输出会返回你想要的结果,比如你要看什么文件,就会返回文件的内容。如果只是执行,执行失败会告诉你哪里错了,如果执行成功那么会没有输出,因为 linux 的哲学就是:没有结果就是最好的结果

开始

如图,双击桌面上的 Xfce 终端 图标打开终端后系统会自动运行 Shell 程序,然后我们就可以输入命令让系统来执行了:

1) 重要快捷键

真正学习命令行之前,你先要掌握几个十分有用、必需掌握的小技巧:

[Tab]

使用Tab键来进行命令补全,Tab键一般是在字母Q旁边,这个技巧给你带来的最大的好处就是当你忘记某个命令的全称时可以只输入它的开头的一部分,然后按下Tab键就可以得到提示或者帮助完成:

当然不止补全命令,补全目录、补全命令参数都是没问题的:

[Ctrl+c]

想想你有没有遇到过这种情况,当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误地使用了一个命令,导致在终端里出现了你无法预料的情况,比如,屏幕上只有光标在闪烁却无法继续输入命令,或者不停地输出一大堆你不想要的结果。你想要立即停止并恢复到你可控的状态,那该怎么办呢?这时候你就可以使用Ctrl+c键来强行终止当前程序(你可以放心它并不会使终端退出)。

尝试输入以下命令:

tail

然后你会发现你接下来的输入都没有任何反应了,只是将你输入的东西显示出来,现在你可以使用Ctrl+c,来中断这个你目前可能还不知道是什么的程序(在后续课程中我们会具体解释这个tail命令是什么)。

又或者输入:

find /

显然这不是你想的结果,可以使用Ctrl+c结束。

虽然这个按着很方便,但不要随便按,因为有时候,当你看到终端没有任何反应或提示,也不能接受你的输入时,可能只是运行的程序需要你耐心等一下,就不要急着按Ctrl+c了。

其他一些常用快捷键
按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home
Ctrl+e 将光标移至输入行末,相当于End
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动

2) 学会利用历史输入命令

很简单,你可以使用键盘上的方向上键,恢复你之前输入过的命令,你一试便知。

3) 学会使用通配符

通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符。

终端里面输入的通配符是由 Shell 处理的,不是由所涉及的命令语句处理的,它只会出现在命令的“参数值”里(它不能出现在命令名称里, 命令不记得,那就用Tab补全)。当 Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或文件名在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符实际上就是一种 Shell 实现的路径扩展功能。在通配符被处理后, Shell 会先完成该命令的重组,然后继续处理重组后的命令,直至执行该命令。

首先回到用户家目录:

cd /home/shiyanlou

然后使用 touch 命令创建 2 个文件,后缀都为 txt:

touch asd.txt fgh.txt

可以给文件随意命名,假如过了很长时间,你已经忘了这两个文件的文件名,现在你想在一大堆文件中找到这两个文件,就可以使用通配符:

ls *.txt

在创建文件的时候,如果需要一次性创建多个文件,比如:“love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt”。在 Linux 中十分方便:

touch love_{1..10}_shiyanlou.txt

Shell 常用通配符:

字符 含义
* 匹配 0 或多个字符
? 匹配任意一个字符
[list] 匹配 list 中的任意单一字符
[^list] 匹配 除 list 中的任意单一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2} 匹配 c1-c2 中全部字符 如{1..10}

4) 学会在命令行中获取帮助

在 Linux 环境中,如果你遇到困难,可以使用man命令,它是Manual pages的缩写。

Manual pages 是 UNIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式, 内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令调用手册页。

你可以使用如下方式来获得某个命令的说明和使用方式的详细介绍:

man <command_name>

比如你想查看 man 命令本身的使用方式,你可以输入:

man man

通常情况下,man 手册里面的内容都是英文的,这就要求你有一定的英文基础。man 手册的内容很多,涉及了 Linux 使用过程中的方方面面。为了便于查找,man 手册被进行了分册(分区段)处理,在 Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为 8 个区段,安排如下:

区段 说明
1 一般命令
2 系统调用
3 库函数,涵盖了 C 标准函数库
4 特殊文件(通常是/dev 中的设备)和驱动程序
5 文件格式和约定
6 游戏和屏保
7 杂项
8 系统管理命令和守护进程

要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:

man 1 ls

会显示第一区段中的ls命令 man 页面。

所有的手册页遵循一个常见的布局,为了通过简单的 ASCII 文本展示而被优化,而这种情况下可能没有任何形式的高亮或字体控制。一般包括以下部分内容:

NAME(名称)

该命令或函数的名称,接着是一行简介。

SYNOPSIS(概要)

对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。

DESCRIPTION(说明)

命令或函数功能的文本描述。

EXAMPLES(示例)

常用的一些示例。

SEE ALSO(参见)

相关命令或函数的列表。

也可能存在其它部分内容,但这些部分没有得到跨手册页的标准化。常见的例子包括:OPTIONS(选项),EXIT STATUS(退出状态),ENVIRONMENT(环境),BUGS(程序漏洞),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(历史)和 COPYRIGHT(版权)。

通常 man 手册中的内容很多,你可能不太容易找到你想要的结果,不过幸运的是你可以在 man 中使用搜索/<你要搜索的关键字>,查找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用kj(vim 编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助),按下q退出。

想要获得更详细的帮助,你还可以使用info命令,不过通常使用man就足够了。如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用--help参数,大部分命令都会带有这个参数,如:

ls --help

Linux 入门教程:基础操作 01的更多相关文章

  1. linux 入门教程

    linux入门教程 搜索 Linux入门教程 前言 第一章 关于Linux的历史 第二章 图形界面还是命令窗口 第三章 Linux操作系统的安装 第四章 初步进入linux世界 第五章 Linux系统 ...

  2. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  3. Linux入门(用户操作及权限)

    Linux入门之 用户操作及权限   在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分.每个级别在公司的职责不同,权限也不同.在Linux操作系统中也一样,不同的用户身份拥有着不 ...

  4. linux入门教程(一) 关于linux的历史

    很多关于linux的书籍在前面章节中写了一大堆东西来介绍linux,可惜读者看了好久也没有正式开始进入linux的世界,这样反而导致了他们对linux失去了一些兴趣,而把厚厚的一本书丢掉. Linux ...

  5. Linux一些最基础操作

    最后更新时间: 2015-05-06 这是一篇很早之前写的,整理笔记的时候看到了,Linux 非常基础操作. bin/sbin: 一般是存放可以执行文件 绝对路径 相对路径 mkdir dir ls: ...

  6. Python语法教程-基础语法01

    目录 1. Python应用 2. 在Linux中写python 3. Python基础语法 1. 注释 2. 变量定义及类型 3. 格式化输出 4. 用户输入 5. 运算符 6.数据转换 7. 判断 ...

  7. Linux命令行基础操作

    目录 1.打开终端命令行 2.常用快捷键 2.1 tab键 2.2 Ctrl+c组合键 2.3 Ctrl+d组合键 2.4Ctrl+Shift+c组合键和Ctrl+Shift+v组合键 2.5图形界面 ...

  8. Linux 入门教程:00 Background

    Linux 为何物? 就是一个操作系统. Linux 历史: 操作系统始于二十世纪五十年代,当时的操作系统能运行批处理程序.批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个 ...

  9. linux入门教程(八) Linux磁盘管理

    [查看磁盘或者目录的容量 df 和 du] df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k –m等 -i 使用inode ...

随机推荐

  1. Luogu-P3205-HNOI2010-合唱队

    题目地址 思路 这道题其实是P3146 [USACO16OPEN]248的升级版,但是N的范围很大,为262144.原先的O(N3)的方法自然会TLE,甚至O(N2)的方法也不足以解决. 定义f[i] ...

  2. USB接口禁用小工具v1.0.1

    由论坛用户原创制作的一个USB接口工具, 可选择手动/自动启动或者禁止启动模式, 开启禁止启动模式后USB接口将关闭识别功能, 有效防止U盘设备侵入,对于机房实验室设施来说相当管用. 下载地址:htt ...

  3. Python爬虫之BeautifulSoup库

    1. BeautifulSoup 1.1 解析库 1)Python标准库 # 使用方法 BeautifulSoup(markup, "html.parser") # 优势 Pyth ...

  4. 题解 P1579 【哥德巴赫猜想(升级版)】

    蒟蒻AC代码,讲解请看题解中. 1 #include<bits/stdc++.h> 2 #include<iostream> 3 #include<cmath> / ...

  5. layui的登录页面设计

    主要的结构 先导入layui的主要的js和css等 <html> <head> <meta charset="utf-8"> <title ...

  6. Laravel笔记记录

    1.获取当前控制器和action名称 request()->route()->getAction()

  7. 【Java】Java Win10环境搭建--JDK、Eclipse

    win10安装Java JDK环境及Eclipse安装使用(Hello world) win10环境下安装Java环境,对于小白来说简直是头疼,因为Java内部环境有着JDK和JRE两块,互相牵扯着很 ...

  8. os模块和os.path模块常用方法

    今天和大家分享python内置模块中的os模块和os.path模块. 1.什么是模块呢? 在计算机开发过程中,代码越写越多,也就越来越难以维护,所以为了可维护的代码,我们会把函数进行分组,放在不同的文 ...

  9. Core3.0发布到IIS的流程

    前言 参考链接 https://www.cnblogs.com/wutongjun/p/11981798.html 在IIS上部署 .Net Core 3.0 项目的主要流程有: 安装并启用IIS 安 ...

  10. 编译nginx增加fair模块

    安装必要的软件 ubuntu里是 apt install wget gcc make zlib1g-dev libpcre3-dev 去官网下载最新稳定版的nginx源码 git clone 源码 g ...