Linux零基础:常见命令

2020-07-08 00:00:00 命令 文件 目录 链接 列出
  1. 为什么要学习Linux?

课程刚开始的时候,有同学反应Linux不好用,图形化不足;需要自己输入命令,用起来比较难而且麻烦。Linux的优缺点,在前面介绍操作系统的时候其实也有涉及:作为一个拥有庞大用户群体的开源软件,Linux足够稳定、安全,而且免费。Linux和它的用户相互成就,Linux的免费使得它获得了很多程序员的支持,而程序员基于Linux开发了大量好用和重要的软件,进一步推广了Linux。

Linux有多重要呢?Android和iOS的内核都是基于Linux(unix),Linux是受欢迎的开发平台。学习Linux对之后的学习和工作至关重要。

2. 什么是shell?

我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是图形界面(GUI)的,简单直观,容易上手,对开发者和普通用户都适用;实际上,计算机的普及离不开图形界面【参考操作系统历史】。但是另一方面,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),由于安全性和复杂度等原因,用户不能直接接触内核,所以需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核,这样用户就能间接地使用操作系统内核了。图形化界面是这样的一个程序,shell也是这样的一个程序。

Shell 是一个命令行工具,本身并不是内核的一部分,它是在内核的基础上编写的一个应用程序,这样的程序连接了用户和内核。在Linux服务器或者远程登录的时候,shell的作用如下:

请注意,上课时使用的ubuntu,实际上是一个带有图形界面的Linux,不启动shell,虽然用起来有点别扭,但是也可以正常工作的。

3. shell的功能

Shell可以执行:

  • 内部命令:shell的内置命令,如cd
  • 应用程序:如/bin中的可执行程序
  • shell脚本

Shell不止一种:

当前默认使用的bash可以通过查看/etc/passwd来确认;也可以查看/bin文件夹,查看和使用其他shell。

4. Shell都有什么功能?

命令记忆与补全:

  敲一下Tab键可以补全命令或者文件目录的名称,当一个命令或文件目录的名称有一个以上时,按两下Tab键可以列出这些命令的名称和文件目录的名称。

别名设置与通配符:

  *:代表0到无穷多个任意字符。
  ?:代表一定有一个字符。
  `:反单引号,它里面的内容先执行。
  [ ]:一定有一个在括号中的字符。
  [-]:编码顺序内的所有字符。
  [^]:反向选择,非括号中的一个字符。

作业,前后台控制:

  &:将命令直接放入后台运行。
  ctrl+z:将目前的工作放入后台暂停。
  jobs:查看后台工作状况。
  fg:将后台工作拿到前台。
  bg:让后台工作运行起来。
  kill:管理后台工作。

Shell 的变量:

  Shell变量:用符号去代替一些设置或者是保留的数据。
  设置Shell变量:有自己的设置规则,其实和编写程序时设置变量的规则类似。
  重要的变量:PATH、PS1、HOME、LANG、SHELL、HISTSIZE。
  变量内容修改:删除:##,%;替换:${val/old/new}、${val//old/new}。

标准输入,输出:

  标准输入(stdin):代号“0”,使用<或者<<
  标准输出(stdout):代号“1”,使用>或者>>
  标准错误输出(stderr):代号“2”,使用>或者>>

5. shell命令基本格式

cmd [options] [arguments],options称为选项,arguments称为参数

选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开

  • Linux是区分大小写的

一般来说,后面跟的选项如果单字符选项前使用一个减号-单词选项前使用两个减号--

  • 这是一般的情况,有些命令还是不归属这种规律的(相对较少)~~~
  • 例子:ls -als --alla 单个字符使用一个-,一个单词all 使用两个--

在Linux中,可执行的文件也进行了分类:

  • 内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部
  • 外置命令:存放在/bin、/sbin目录下的命令
  • 实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序
  • 用户程序:用户程序经过编译生成可执行文件后,可作为Shell命令运行
  • Shell脚本:由Shell语言编写的批处理文件,可作为Shell命令运行

举一些例子。

譬如,先使用一个脚本,创建一些文件。

#!/bin/bash

for i in {1..10}
do
        touch "$i.txt"
done

相关文章