Shell
1. 使用shell
shell是最基本的命令行工具,它提供了许多命令,如ls、cd、pwd、mkdir、rm、cp、mv、cat、echo、grep、find、sort、wc、head、tail、less、more、man、history、clear、exit等。它是一种文字接口。
2. 课后练习
原链接:https://missing-semester-cn.github.io/2020/course-shell/
本次练习使用WSL终端完成。
使用 echo $SHELL 命令可以查看您的 shell 是否满足要求
在 /tmp 下新建一个名为 missing 的文件夹。
- 不太优雅的做法
# 由于我知道tmp文件夹是在根目录下一级,直接cd进入
cd /tmp
mkdir missing
- 优雅一点的做法
# find查询
find / -type d -name "tmp" 2>/dev/null
用 man 查看程序 touch 的使用手册。
man touch
用 touch 在 missing 文件夹中新建一个叫 semester 的文件。
touch /tmp/missing/semester
使用 chmod 命令改变权限,使 ./semester 能够成功执行,不要使用 sh semester 来执行该程序。
sudo chmod 777 /tmp/missing/semester
您的 shell 是如何知晓这个文件需要使用 sh 来解析呢?这涉及到 shell 的解析器。 在semester文件中有#!/bin/sh开头这一行,也就是说文件中存在Shebang(#!),它指示了shell如何解析这个文件。程序加载器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数。
#!/bin/sh—使用sh,即Bourne shell或其它兼容shell执行脚本。/bin/sh软链接或硬链接到Bash。
使用 | 和 > ,将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中
chengzhu@DESKTOP-TPDC2FU:~$ cd /tmp/missing
chengzhu@DESKTOP-TPDC2FU:/tmp/missing$ stat -c %y semester | tee ~/last-modified.txt
2024-08-16 18:51:41.028832115 +0800
chengzhu@DESKTOP-TPDC2FU:/tmp/missing$ cd
chengzhu@DESKTOP-TPDC2FU:~$ vim last-modified.txt
写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度。
cat /sys/class/power_supply/BAT1/capacity
Overview
使用命令行管理 Linux 系统是最基本和最重要的方式。
使用命令行有两种方式,一种是在桌面环境中使用仿真终端,另一种是进入文本模式后登录到控制台
使用仿真终端: Ubuntu 图形界面中使用终端窗口来执行命令行操作。该终端是一个终端仿真应用程序,提供命令行工作模式,可以使用如下几种方法打开终端:
- 方法1:鼠标右键一打开终端
- 方法2:使用组合键
<Ctr|>+<Alt>+<T>
可以找到终端 - 方法3:在 Dash 中浏览到“终端”程序,或者搜索“gnome-terminal”或“终端”端应用程序
Terminal
仿真终端窗口界面中将显示一串提示符,由4部分组成,格式如下:
当前用户名@主机名:当前目录 命令提示符
- 当前用户名,表示当前登录的用户名称1.
- 主机名,表示计算机名称
- 当前目录,表示终端当前所在目录,“~”表示家目录,其绝对路径为:/home/用户名
- 命令提示符,”$”表示普通用户,”#”表示超级管理员 root 用户在命令提示符之后输入命令即可执行相应的操作,执行的结果也显示在该窗口中
Terminal 一个图形界面的仿真终端工具,用户可以通过相应的菜单修改终端的设置,如字符编码、字体颜色、背景颜色等
可根据需要打开多个终端窗口,可以使用图形操作按钮关闭终端窗口,也可在终端命令行中执行命令 exit 关闭该终端窗口
没有安装桌面环境的 Linux系统只能进入文本模式,Ubuntu桌面版启动之后直接进入图形界面,可以根据需 要切换到文本模式,此时需要登录到 Linux 系统中的设备和文件层次结构。文件夹中存储系统信息,用户需要的信息也从中调用
直接在Linux计算机上的登录称为从控制台登录,使用telnet、ssH等工具通过网络登录到 Linux 主机称为远程登录。Visual
Linux 是多用户操作系统,可以同时接受多个用户登录而且允许一个用户进行多次登录。
使用普通用户登录时,账号密码不变;使用root用户登陆时,第一次登录需要设置root 账户密码,在仿真终端中输入:
sudo passwd root
在文本模式下从控制台登录的界面又称 TTY。
Linux 系统允许用户同时打开 6个控制台(tty1~tty6)进行操作,每个控制台可以让不同用户身份登录,运行不同的应用程序。
在 Ubuntu 图形界面中可按组合键<Ctrl>+<Alt>+F(n)
(其中F(n)为F1-F6,分别代表 1~6号控制台)切换到文本控制台界面,在文本控制台界面中按组合键<Ctrl>+<Alt>+<F1>
返回到图形界面
shell
Linux中,Shell是用户和系统交互的接口,是一个命令解释器。
用户在命令提示符下输入的命令都由 shell 先接收并进行分析,然后传给 Linux 内核执行,结果返回给 shell,由它显示在屏幕上
不管命令执行结果成功与否,Shell总是再次给出命令提示符,等待用户输入下 一个命令
Shell 同时又是一种程序设计语言,允许用户编写由Shell命令组成的程序,这种程序称为 Shell 脚本(Shell script)或命令文件。
Shell 有多种不同版本,可分为两大类型:
-
一类是由贝尔实验室开发的,以 Bourne shell(sh)为代表,与之兼容的有 Bourne-Agian Shell (bash)、Korn Shell(ksh)、Z Shell(zsh)
-
另一类是由加州大学伯克莱分校开发的,以Cshell(csh)为代表,与之兼容的有TENEXCShell(tcsh)
-
用户进入 Linux 命令行(切换到文本界面,或者在图形界面中打开终端)时,系统自动运行一个默认的 shel程序。用户可看到 shell 的提示符(管理员为#,普通用户为$),用户在提示符后输入指令,shell 对这个指令进行解释。命令语法格式为:命令[选项】[参数(对象)]
- 选项:选项是包括一个或多个字母的代码,前面有一个”。”连字符,主要用于改变命令执行动作的类型
- 参数(对象):命令的操作对象
- 几中的内容表示是可使用的选项,可选一个或多个或不选
Ubuntu 默认使用的 Shell 是 bash
命令
ls 命令是 linux 下最常用的命令,ls 命令是 list 的缩写
ls 用来打印出当前目录的清单。如果ls 指定其他目录,会显示指定目录里的文件及文件夹清单
通过 Is 命令可以查看 linux 文件夹包含的文件,目录和文件的权限等信息
命令格式:
ls[选项][文件 或 目录]
备注:[]中的内容表示是可选选项参数,可选一个或多个或不选中的内容表示只可选其中一个选项参数
颜色说明:
- 白色:表示普通文件;
- 蓝色:表示目录;
- 绿色:表示可执行文件;
- 红色:表示压缩文件
- 浅蓝色:链接文件,主要是使用ln命令建立的文件;
- 红色闪烁:表示链接的文件有问题;
- 黄色:表示设备文件;
- 灰色:表示其他文件
例一: 列出/home/文件夹下的所有文件和目录的详细资料,可以使用如下命令
ls -a -l /home
ls -al /home
# 效果一样,多个参数可以合并使用