Linux——终端

一、终端

1、终端是什么

终端最初是指终端设备(Terminal),它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中,终端通常是一台带有键盘和显示器的电脑,用户通过它输入命令,计算机在执行命令后将结果显示在终端的屏幕上。随着技术发展,"终端"的概念也经历了一定的演变。

现代操作系统中的"终端"一词通常指的是终端仿真器(Terminal Emulator),它是一种软件,模拟了传统硬件终端的功能,允许用户通过图形界面与系统的命令行接口进行交互。用户可以在终端仿真器中输入命令,由操作系统执行,并在同一界面中显示输出结果。

Linux终端是Linux操作系统中的一个终端仿真器。Linux终端提供了一个文本界面,用户可以通过它访问Linux的shell。Shell是一个命令行界面,用于与操作系统内核进行通信,执行用户的命令。Linux终端允许用户执行各种操作,包括文件管理、软件安装和运行、系统配置和管理等。

2、shell是什么

1)shell是什么

Shell确实是一种命令行解释器。它为用户提供了一个界面,用于向操作系统输入命令。操作系统接收这些命令后,Shell会解释并执行它们,然后将结果返回给用户。Shell既是命令语言的解释器,也是一个提供用户与操作系统交互能力的程序。

在不同的操作系统中,Shell可能指代不同的东西,但在Unix和类Unix系统(如Linux)中,它特指那些提供用户命令行接口的程序。这些程序允许用户通过键入命令来管理文件系统、运行程序、以及访问操作系统的核心功能。

2)shell工作原理

简单地来说,在我们输入某个指令并回车后,shell就会解析这个指令,然后寻找与这个命令同名的可执行文件,运行它,然后就会打印返回结果。

3)Linux有哪些shell

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

/bin/tcsh

/bin/csh

Ksh (Korn Shell):是Bourne Shell的扩展,提供了许多高级特性和脚本编程功能。

Zsh (Z Shell):基于ksh发展出来的,提供了许多用户友好的特性,如主题和插件支持,因此在开发者中非常受欢迎。

这里详细介绍一下 Bash :

"Bash" 的名称其实是 "Bourne Again SHell" 的缩写。一种俏皮的命名方式,意味着这是对原始 Bourne shell (sh) 的一个增强版。或者说是一种双关( Bourne again / born again )。 Bash 是一个为 GNU 项目编写的免费软件替代品,Bash是基于先前的Bourne Shell(sh)设计的,但加入了许多新特性和改进,使其更加强大和易用。Bash 随着 GNU 项目的推广而广泛流行,成为了许多Linux发行版以及macOS的默认命令行接口。

4)查看当前操作系统中的shell有哪些

当前操作系统有的 shell 一般列在 /etc/shells 文件中,可以用 cat 指令查看:

5)查看当前使用的shell

使用 echo $SHELL 指令返回当前使用的 shell :

二、命令

1、使用 tab 键对命令进行补全

比如要使用 echo 命令,我们可以输入 ech ,这时只有 echo 这一个指令是以 ech 开头的,然后按 tab 键,就可以补全指令:

如果只输入 ec ,然后按 tab 键,就不会补全,因为以 ec 开头的指令有多个,这时再按一次 tab 键就会列出所有以 ec 开头的指令,以供你选择:

相关推荐
日取其半万世不竭4 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
2023自学中4 小时前
Linux 图形系统
linux
kirs_ur5 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
mounter6257 小时前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
动恰客流统计7 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
名字还没想好☜7 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
ziguo112210 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤10 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆11 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
砍材农夫11 小时前
运维|devops|jenkins构建应用发布
运维·jenkins·devops