Linux终端

Linux终端

介绍Linux终端、命令行以及执行系统命令。对于新手,需要熟悉Linux终端,因为终端是与Linux系统交互的标准方式。一旦你掌握了这些命令基础,通过命令去与系统交互将会变得非常简单。

开始之前需要准备一台Linux服务器,课程使用的Windows10自带WSL下的Ubuntu 20.4。你也可以自行采购运营商的服务器,如果你是学生,可以以学生优惠价申请腾讯云、华为云和阿里云的基础配置服务器,非?;憧梢宰孕星巴私狻?/p>

终端仿真器

终端仿真器是系统应用程序,可以让你在可视化图形界面环境中使用。大多数都是基于终端仿真器开始学习Linux的,对于大多数Linux系统工作者而言,终端工具也是必须掌握的交互工具。

推荐几款终端工具:

Mac: iTerms2
Win: PuTTY、Windows Power Shell(win10自带终端工具)
Linux: Terminal、KDE Konsole、XTerm

初学者可以根据自己的学习环境选择,这些终端工具都有自己的功能特色,需要自行培养使用习惯。

Shell(脚本语言)

在Linux中,Shell是解释用户命令和脚本文件的命令行接口规范,告诉操作系统用户的真实行为,操作系统具体需要完成的任务。目前B ShellC Shell都有着广泛应用,关于解释命令的方式,每种Sehll都有自己的功能集合和复杂性,但是都具有输入输出重定向、变量以及条件测试等功能。

大多数Linux系统默认采用的Bourne-Again shell,通常指的是bash,包括Ubuntu、CentOS、RedHat。

命令提示符

当你登录到Linux服务器,终端上将会输出一些欢迎信息,包括系统版本、当前时间日期等信息。然后就会出现一行命令行提示符,等待用户的命令的输入,此时你可以输入合法的命令给系统。

Ubuntu的命令行提示符:

lance@ubuntuserver0:~$

拆解如下:

  • lance: 当前用户
  • ubuntuserver0: 服务器主机名
  • ~: 当前目录,在bash~指定为当前用户的主目录,在此案例中即/home/lance

执行命令

在命令行提示符处通过指定可执行文件的名称发出命令,命令可以是二进制程序或者脚本。正常情况下Linux系统安装了很多的系统命令和使用的系统附带程序,比如浏览文件系统、安装软件包以及配置系统等。

正在运行的命令的实例成为进程,当你输入命令之后必须等待系统的执行返回才能再次回到命令行提示符,才可以再次向系统发起其他命令。

需要注意Linux系统是区分大小写的,包括你在命令行中输入文件或者目录名、命令、参数和选项,如果你的输入指令不能正常执行,需要注意检查输入是否有误。

执行命令不带参数和选项

执行命令,不带任何参数和选项,简单输入指令是能够有返回的。这取决于你输入的命令是否有默认行为,否则会有正确的命令使用规范提示输出。
比如你执行cd命令,会切换目录到用户主目录;ls命令则会默认打印当前所在目录的文件和子目录。输入ip命令则会输出命令使用规范说明。

执行命令指定参数

一些命令接受参数和选项,输入的参数会影响命令的行为。比如你执行cd /usr/local,系统将会切换至/usr/local目录。

cd /usr/local

执行命令指定选项

大多数命令接受选项输入,在应用程序中通常被称为标记或者切换开关,这些选项会引导命令的执行行为。通常选项需要附带在命令之后,由一些命令内置字符来指定其输入,比如使用-或者--来引导选项值的输入,然后有命令执行文件进行解析。

使用ls --help来查看ls命令选项说明:

  • -l: 指定输出更长的信息清单,包括文件或者文件夹的所属用户以及权限,文件大小和修改时间
  • -a: 打印指定目录下所有的文件和文件夹,包括系统隐藏文件和文件夹,比如以.开头的隐藏文件和文件夹

执行命令指定参数和选项

大多数情况,都是组合参与和选项来使用命令的。比如ls -la /home/lance

环境变量

环境变量是name-value形式定义的,用于改变命令和进程的执行方式。在首次登陆服务器或者启动服务器时,系统默认按照一定顺序从一些配置文件中加载一个或者多个环境变量。

我们可以通过env命令来查看系统为当前会话终端所设置的所有环境变量。

env

查看会话环境变量

可以看到终端有许多的环境变量输出:

> SHELL=/bin/bash   
> WSL_DISTRO_NAME=Ubuntu  
> WT_SESSION=9e898215-21c0-47a5-9a10-60df73299120  
> NAME=DESKTOP-JLRIVPD  
> PWD=/home/lance/lance  
> LOGNAME=lance  
> HOME=/home/lance  
> LANG=C.UTF-8 

查看指定环境变量

  1. 我们在终端查看我们想要知道的环境变量的值,可以通过执行echo ${var}的形式查看。

echo $PATH

输出:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Java/jdk-14.0.2/bin:/mnt/c/Program Files/Go/go1.15/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/Lance/AppData/Local/Microsoft/WindowsApps:/mnt/c/storage/apps/devloper/Microsoft VS Code/bin:/mnt/c/Users/Lance/go/bin:/snap/bin

  1. 也可以在命令行中使用环境变量,这样命令在执行中会自动将指定环境变量替换成具体变量值,再传输指令给系统。

cd $HOME

  • 但是需要注意,如果你在命令行或者脚本中使用一个未定义设置的环境变量,正常情况会被空字符串替代。

设置环境变量

在知道如何使用或者查看环境变量之后,需要进一步学习如何设置一个环境变量。

  1. 设置一个环境变量时,需要以环境变量的名称开头,用=将变量命令与变量值相连,传输给系统。如果变量已存在则覆盖,否则为当前会话创建一个新的环境变量。

TEST_VAR=LANCE_TEST

然后通过echo $TEST_VAR命令来获取查看设置变量的值,终端会输出LANCE_TEST。

  1. 通过export命令实现环境变量设置

bash中包含export命令,用于导出变量,以便于子进程可以继承该变量。简而言之,就是允许你使用脚本引导当前会话中导出环境变量。更多的信息可以通过一些Linux论坛或者书籍中进一步了解学习。

export命令也可以引用已存在的环境变量。例如,我们在配置JavaGo开发环境时,需要设置开发环境变量至$PATH,此时可以通过export命令来实现,将一个环境目录追加至已存在的$PATH环境变量之后。

export $PATH:/usr/local/go/bin

总结

学习完Linux终端的一些基础知识之后,需要自己尝试去掌握更多的Linux命令以及使用。

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351