Linxu入门(一)
- Linux 基本命令
- 通配符的使用
- 基本软件安装
- 查看帮助文档
桌面环境
2.1 Linux 桌面环境介绍
相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件,类似 Windows95 之前的 Windows 的图形界面实则也只是运行在 DOS 环境的一套软件。而 Linux 上的这套软件以前是 XFree86,现在则是 xorg(X.Org),而这套软件又是通过 X 窗口系统(X Window System,也常被称为 X11 或 X)实现的,X 本身只是工具包及架构协议,而 xorg 便是 X 架构规范的一个实现体,也就是说它是实现了 X 协议规范的一个提供图形界面服务的服务器,就像实现了 http 协议提供 web 服务的 Apache 。如果只有服务器也是不能实现一个完整的桌面环境的,当然还需要一个客户端,我们称为 X Client,像如下几个大家熟知也最流行的实现了客户端功能的桌面环境 KDE,GNOME,XFCE,LXDE 。其中就有你看到的,实验楼目前使用的 XFCE 桌面环境,部分老用户可能可以回想起,实验楼之前使用的环境是 LXDE 。这也意味着在 Linux 上你可以自己选择安装不同的桌面环境,甚至可以定制自己的专属桌面。
这里讲这么多,主要是为了帮助你更好地理解 Linux 的桌面环境是一个怎样的概念,以及它跟 Windows 操作系统桌面的差异,实际它们之间是有着本质的差别的,希望清楚这些内容之后可以让你忽略那些体验上的差异,专心把精力放到 Linux 系统本身或者你正准备学习的某一门技术之上,这门实验课后面的内容和实验楼的其它课程便是为了帮助你实现以上两个目标。
2.2 Linux 桌面环境的使用
如果你对当前实验桌面环境(xfce)的使用有任何困难,建议你先学习实验楼入门基础课程,对于其它桌面环境的使用,不在本课程的范围之内,有兴趣的用户可以在自己的计算机中安装完整的 Linux 发行版或其 Live CD 体验。
三、linux终端
3.1 终端的概念
通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面是几个比较常见的终端模拟器: gnome-terminal,kconsole,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.2 Shell
通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而是这个 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。
3.3 命令行操作体验
3.3.1 写在前面
在linux中,最最重要的就是命令,这就包含了2个过程,输入和输出
- 输入
输入当然就是打开终端,然后按键盘输入,然后按回车,输入格式一般就是这类的
#创建一个名为文件,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 会先完成该命令的重组,然后继续处理重组后的命令,直至执行该命令。
先使用 touch 命令创建 2 个文件,后缀都为 txt:
$ touch adsfasd.txt wergjlkas.txt
可以给文件随意命名,假如过了很长时间,你已经忘了这两个文件的文件名,现在你想在一大堆文件中找到这两个文件,就可以使用通配符:
$ ls *.txt
在创建文件的时候,如果需要一次性创建多个文件,比如:“love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt”。在 Linux 中十分方便:
$ touch love_{1..10}_linux.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
(回车键)向下滚动一行,或者使用j
,k
(vim 编辑器的移动键)进行向前向后滚动一行。按下h
键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less
工具的帮助),按下q
退出。
想要获得更详细的帮助,你还可以使用info
命令,不过通常使用man
就足够了。如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用--help
参数,大部分命令都会带有这个参数,如:
$ ls --help
转载于:https://www.cnblogs.com/jia1989/p/6670658.html
Linxu入门(一)相关推荐
- 《OS、Network、Kernel》PDF资源汇总
文章目录 *<深入理解linux网络技术内幕(中文版)> *<深入理解linux内核第三版(中文版)> *<Linux设备驱动程序第三版(中文版)> *<C专 ...
- Linxu内核模块开发入门(金荣的第一篇个人技术博客)
前言 第一次使用Markdown语法编辑的第一篇CSDN技术文章,内容为本人第一个内核模块的入门教程,如有不完善的地方,请大家多多批评指正,支持开放.自由.分享,谢谢大家. Linxu内核模块开发入门 ...
- 快速入门Linxu笔记
该笔记大部分搬运B站遇见狂神说的Linux,顺便把图文合并记录,便于回顾 视频地址:[狂神说Java]Linux最通俗易懂的教程阿里云真实环境学习_哔哩哔哩_bilibili记得三连 文章目录 Lin ...
- 嵌入式系统开发怎样快速度入门
http://wenda.tianya.cn/wenda/thread?tid=392a249d9d6856c5 实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生也未必有条 ...
- 分享:嵌入式Linux入门学习指导
很多嵌入式linux初学者对嵌入式linux学习十分迷茫,不知道该怎么一步步学习,嵌入式linux学习方法,学习的流程步骤以及学习过程中需要看哪些好的书籍.下面凌阳教育嵌入式培训网就为大家整理的嵌入式 ...
- 快速入门虚拟机+linux安装(附带视频)
配合视频食用更佳哦~ 01_虚拟机+Linux 快速入门 02_手把手教你安装centos7(不会你来打我) 这是bai du yun 群链接,存放UP主视频中的那个"开箱即用"虚 ...
- MySQL建表的限定于巨_Linux入门笔记(4/1/2016修改)
本文笔记源自这里--[实验楼] 欢迎大家在下面交流其中有问题的地方喜欢请点收藏,每日更新(全部已亲自实践). 一. linux终端 1. 终端(Terminal)和控制台(Console)是有区别的: ...
- 《 Linux的安装和入门 》
< Linux的安装和入门一 > 一.安装前的准备工作 如果你有WIN98系统,想装Linux,就注意了,你硬盘里的有用数据就要先备份,以防不测,令硬盘数据全部丢失了,如果熟悉了也没那么可 ...
- 50 招教你防止黑客入侵,适用于入门小白到专业人员
2019独角兽企业重金招聘Python工程师标准>>> 今天我们要讨论的是保护系统安全的50种方法,我收集了50种适合从专业系统管理员到入门小白都可以掌握的防止系统被入侵的方法: 1 ...
最新文章
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(六)
- git编辑器选哪个_对比了3款markdown编辑器,哪一款适合你呢?来看看吧
- java threadgourp_Java Thread getThreadGroup()方法
- 研发和人力资源发展模式对比研究
- console_init_r()函数分析
- APP时间界面设计模板,可临摹学习的好素材
- linux 存储映射lun 给_linux 存储多路径聚合和映射
- 石头剪刀布代码android,微信小程序源码解说:石头剪刀布(附源码下载)
- 基于Netty自己动手实现Web框架
- [附源码]java毕业设计疫情防控期间人员档案追寻系统设计与实现论文
- 自然语言处理(NLP)的八个国际顶级会议!
- Endnote 导出中英文参考文献到Word
- nginx反向代理加gitlab认证
- 用计算机自我介绍,计算机简单的自我介绍
- 手把手教你学习Solidity|Solidity开发【一】
- java中的this
- 什么是高内聚与低耦合?
- 四川2020年5G规划出炉!新建3万个5G基站,实现21市州和所有县5G覆盖
- 最优传输论文(十二):Extracting Relationships by Multi-Domain Matching论文原理
- 微信读书调整“时长兑书币”规则
热门文章
- 【PyQt5 知识点示例代码】布局、菜单、信号与槽、对话框、组件
- 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
- 小程序入门学习12--云函数与数据库01
- python中int的“四舍五入”
- 回测引擎代码分析流程图
- ubuntu中bash,sh,./,bash区别
- java死锁怎么用jvm调试_性能测试之JVM的故障排查-死锁
- 微服务 注册中心的作用_SpringCloud(二)服务注册中心与Eureka工作原理介绍
- 攻防世界 php2,CTF-攻防世界-PHP2
- B - Frogger(最短路之多条最短路径中最大权值的最小值)