文档章节

Linux基础 -- 命令行入门

兴趣使然的程序员
 兴趣使然的程序员
发布于 2017/07/16 17:44
字数 2784
阅读 37
收藏 1

Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。

1、X Window与文本模式的切换

通常我们也称文本模式为终端机接口, terminal console。Linux 预设的情况下会提供六个Terminal 来让使用者登入。终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的。X Windows实质上是运行在其中一个tty上面的一个图形Shell而已,文本模式也同样

切换的方式为使用: [Ctrl] + [Alt] + [F1]~[F6]的组合按钮。

如果安装了X Window,则这六个快捷键分别对应:

  • [Ctrl] + [Alt] + [F2] ~ [F6] :文字接口登入 tty2 ~ tty6 终端机;
  • [Ctrl] + [Alt] + [F1] :图形接口桌面。

如果Linux预设使用纯文本界面,那么 tty1~tty6 就会被文字界面占用。

实际上,在 CentOS 7 环境下,当开机完成之后,默认系统只会提供给你一个 tty 而已,因此无论是文字界面还是图形界面,都是会出现在 tty1。只有要切换使,系统才会开启新的tty。

X Window在实际生产环境中使用较少,这里不再赘述。

1.1、文本模式

1.1.1、基本信息

进入文本模式并登录后,会有一行这样的提示符:

[pierre_cai@localhost~]$ _

其中:

  • @之前的是当前的用户名
  • @之后的是当前的主机名
  • ~是一个变量,代表当前用户的”家目录“。举例来说,如果使用root登录,~就代表/root,如果使用pierre_cai登录,~就代表/home/pierre_cai
  • $是提示符,提示可以在后面输入。在Linux中,默认root的提示符为#,一般用户的提示符为$

1.1.2、命令基础

Linux文本模式或者X Window里打开的console中,我们可以通过输入一些指令来进行操作。

指令的基本结构为:

[pierre_cai@localhost~]$ command [-options] parameter1 parameter2 ...
  • 一行命令中首先要输入的是指令的名称或者可执行脚本名
  • 然后是可选的选项,比如 -h/--help(一般缩略名前用-,完整名用--)
  • 多个选项可以合并写,比如-a -l和-al是一样的
  • 最后是命令执行的参数

注意:

  • 一般来说按下[enter]命令就会执行,如果想要换行,可以在行末加上反斜杠"\"然今后换行。
  • Linux命令区分大小写,比如cd和CD是不同的
  • 不同项之间的空格个数并没有影响(如果是赋值语句,会有影响)

1.1.3、语系引起的乱码

在使用terminal的时候,有时候会发现出现乱码。这是因为terminal默认是不支持中文的。这时就需要修改支持语系为英文。

注意更改了字符集为中文后,可能在terminal下还是无法正常显示中文。这是因为terminal并不支持中文。但是如果我们是用远程shell软件(XShell、Putty等)远程登录,或者使用X Window的话,一般来说就可以正常显示中文

如果不使用shell的话,建议还是将所有的系统文件设置为英文。更改字符集(非永久,每次注销以后都要重新修改)的命令(注意命令的大小写)有:

  • locale:查看所有的语言设置
  • LANG="en_US.utf8"
  • export LC_ALL=en_US.utf8

注意如果安装的时候是按中文安装的,这时系统生成的文件名是中文的,还要同步更新文件名才能正常查看,使用的命令有:

  • xdg-user-dirs-gtk-update

1.1.4、常用快捷键和操作符

1.1.4.1、more和less

在输入命令的时候,经常会出现一页无法全部显示的情况,而在Linux的terminal中又无法翻页。这时我们就需要在命令的结尾加上 |more 或者 |less。例如:

[pierre_cai@localhost ~]$ ifconfig | more

这样按就会先显示出一屏幕,然后按回车就可以接着查看下面的内容。

less和more类似,但是可以使用上下箭头任意移动。

当然,实际上不需要more和Less,直接使用shift+上箭头/下箭头也可以上下移动。

1.1.4、常用快捷键

其他一些常用快捷键

按键 作用
两次TAB 命令/选项/文件目录提示
Ctrl+c 强行终止当前程序
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序以后到后台,并且暂停,恢复到前台为命令fg 进程号,进程号可以通过jobs查看
Ctrl+a 将光标移至输入行头,相当于Home
Ctrl+e 将光标移至输入行末,相当于End
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动

1.1.5、常用通配符

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

Linux中的通配符和正则表达式有一些共通之处,常用通配符有:

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

1.1.6、man page和info page

man时manuel的缩写,通过:

man 指令名

可以快速查看指令的说明。比如输入man date后:

如果当前的语言设置为中文的话,帮助文档就会是中文的,可以通过上面介绍的LANG=语言编码,进行切换中英文。当然并不是所有的命令都会有中文文档,建议还是看英文文档。

输出的这个界面我们一般成为”man page",首先注意到DATE(1)中的1,其代表命令所属的区段,具体的区段代码有:

区段 说明
1 一般命令
2 系统内核可调用的函数和工具等
3 库函数,涵盖了C标准函数库
4 特殊文件(通常是/dev中的设备)和驱动程序
5 配置文件或者文件格式和约定
6 游戏和屏保
7 惯例和协议等等
8 系统管理命令和守护进程
9 跟kernel有关的文件

需要特别记住1、5、8。

通常查看man page的步骤如下:

  • 先查看NAME项目,一般是简短的命令、数据名称说明
  • 再查看SYNOPSIS,一般是简短的命令执行语法简介
  • 再看一下OPTIONS,一般是SYNOPSIS中命令选项的详细说明
  • 再看一下EXAMPLE,一般是提供的一些示例
  • 最后有必要的话,查看一下DESCRIPTION,一般是命令的详细说明。

其余可能有帮助的项有:SEE ALSO(相关的其他说明)、EXIT STATUS(退出状态),ENVIRONMENT(环境),BUGS(程序漏洞),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(历史)和 COPYRIGHT(版权)。

通常 man 手册中的内容很多,你可能不太容易找到你想要的结果,不过幸运的是你可以在 man 中使用搜索/<你要搜索的关键字>,或者使用?<你要搜索的关键字>向上查找,查找找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。

使用Space(空格键)翻页,使用pageUp向上翻页,pageDown向下翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim 编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助),按下q退出。

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

1.1.6.1、man的其他选项

  • man -f 命令名:查看有哪些区域代码
  • man [区域代码] 命令名 : 查看指定区域代码的命令,默认输出代码最小的那个

比如:date命令存在两个不同的区域1和1p中,后面的是命令的简介

  • man -k 关键词 : 查看命令名或者简介中包含指定关键词的命令

比如:

man -k date

这个命令不止会输出date命令相关的命令,还会输出简介中有date的命令。

1.2、使用XShell登录本地VirtualBox中的Linux虚拟机

虚拟机连接网络的方式主要有两种:bridged(桥接模式)、NAT(网络地址转换模式)。

  • 桥接模式:“共享”宿主机的网卡,直接通过网卡链接网络。在这种模式下,虚拟机就像是局域网中的一台实际的主机,它可以访问网内任何一台机器。
  • NAT模式:虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。

在VirtualBox中,虚拟机默认是使用NAT模式链接网络的。使用NAT模式的情况下,宿主机是无法通过Shell访问虚拟机的

我们首先需要更改虚拟机的网络链接方式为桥接网卡:

在虚拟机中查看虚拟机被分配的IP,输入:

[pierre_cai@localhost ~]$ ifconfig

即可查看IP:

注意,有肯能会查到多个网卡,图中的三个分别是:

  • enp0s3:本地网卡
  • lo:本地回环接口,一般我们通过127.0.0.1或者localhost访问本地的资源时,就是通过这个网卡
  • virbr0:虚拟网卡

网卡名后一般会跟着flags,提示网卡的当前状态,其中有RUNNING的网卡就是当前正在链接的网卡。

打开XShell,通过上面读取到的ip构建链接:

在用户身份验证中输入用户名密码,即可链接。

 

© 著作权归作者所有

兴趣使然的程序员
粉丝 23
博文 112
码字总数 87412
作品 0
深圳
程序员
私信 提问
新人千万不要在 Windows 上使用 Ruby on Rails

标题:新人千万不要在 Windows 上使用 Ruby on Rails 副标题:鼓励新人在 Linux 和 Mac 上使用 Ruby on Rails ! 原则:要走寻常路,不要学美特斯邦伟! "在 Windows上 使用 Ruby on Rails "是...

Jason909
2018/12/14
27
0
Linux经验总结:linux的入门学习流程(菜鸟发贴,仅供参考)(更新RHCE完结)

学习linux快一个多月了,当然我是在培训机构里学习,所有进度比较快(离不开马哥的解压缩式教导。。。),博客里很多同学留言问怎么学习LINUX,所以写下这篇文章。本着尽量避免枯燥的原则来学...

长平狐
2013/06/17
279
1
一个失业三年后,又重新找回自信的小伙靠的是什么?

身高160cm,体重仅仅50kg,这样一个人,你认为能干什么工作。搬砖工,当矿工吗?,想想这样的生活,每天累死累活就干着一件事。是不是觉得很累?三年前的我就是这样的情况。 当时的我,刚从大...

linux-tao
2018/05/20
53
1
学着学着Linux系统写篇心得

本学期对于linux系统的学习,和自己买的一本《linux就该这么学》这本书,让我对linux有了一定的了解。我知道了linux只是个内核。现在的linux操作系统,都是用这么一个内核,加上其它的应用程...

linuxprobe16
2018/06/03
37
2
迁移到 Linux:网络和系统设置

这个系列我们提供了基础知识的概述,以帮助您成功地从另一个操作系统过渡到 Linux;这篇中我们涉及到 Linux 桌面系统上的一些常见设置。 在这个系列中,我们提供了基础知识的概述,以帮助您成...

作者: John Bonesio
2018/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

领域驱动中的“贫血症和失忆症” --实践领域驱动--原文

贫血症严重危害着人类健康,并且伴随有危险的副作用。当贫血领域对象被首次提出来时,它并不是一个博得赞美的词汇,它描述的是一个缺少内在行为领域对象。奇怪的是,人们对于贫血领域对象的态...

还仙
26分钟前
5
0
条码打印软件中标签预览正常打印无反应怎么解决

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。 一、预览正常情况下,打印没反应 (1)在条码...

中琅软件
36分钟前
5
0
判断字符串的时候

判断字符串的时候一定把常量房前边, //报警程度 String leve = vo.getDeviceAlertDeal().getWarnLevel(); if(("0").equals(leve)) { row.add("无报警"); }else if(("1").equals(leve)) { ro......

简小姐
37分钟前
7
0
Linux maven3.6.2 install

PS:安装 maven 之前请先安装 jdk 1.安装 wget 命令(安装过就不用了) yum -y install wget 2.寻找需要的 maven 版本 https://maven.apache.org/download.cgi 3.进入 /var/local 文件夹 cd...

东方神祇
39分钟前
5
0
Tomcat源码分析二:先看看Tomcat的整体架构

Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server、Service、Connector、Container等组件,接下...

flygrk
41分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部