Linux零基础:常见命令
- 为什么要学习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 -a
和ls --all
,a
单个字符使用一个-
,一个单词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
相关文章