前言

自学Linux的时候,我们用的显示器+键盘 是物理终端。Linux开机后,会在物理终端(显示器)之上,以软件的方式虚拟出多个终端,CentOS是6个。Ctrl+Alt+F1~6切换

默认情况下,linux启动后都是从虚拟终端1登陆,而不会使用物理终端,即便在物理终端上。物理终端只在刚开机那一会儿,Linux还没有运行起来的时候有用。一旦程序启动完成便由虚拟终端1接管了。

为啥是6个终端?

以SysV采用的init为例,在/etc/inittab文件中会定义虚拟终端的个数

[root@www ~]# vim /etc/inittab
id::initdefault: <==默认的 runlevel 配置, 此 runlevel 为 si::sysinit:/etc/rc.d/rc.sysinit <==准备系统软件运行的环境的脚本运行档 # 个不同 run level 的,需要启动的服务的 scripts 放置路径:
l0::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc0.d/
l1::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc1.d/
l2::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc2.d/
l3::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc3.d/
l4::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc4.d/
l5::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc5.d/
l6::wait:/etc/rc.d/rc <==runlevel 在 /etc/rc.d/rc6.d/ # 是否允许按下 [ctrl]+[alt]+[del] 就重新启动的配置项目:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now # 底下两个配置则是关於不断电系统的 (UPS),一个是没电力时的关机,一个是复电的处理
pf::powerfail:/sbin/shutdown -f -h + "Power Failure; System Shutting Down"
pr::powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" ::respawn:/sbin/mingetty tty1 <==其实 tty1~tty6 是由底下这六行决定的。
::respawn:/sbin/mingetty tty2
::respawn:/sbin/mingetty tty3
::respawn:/sbin/mingetty tty4
::respawn:/sbin/mingetty tty5
::respawn:/sbin/mingetty tty6 x::respawn:/etc/X11/prefdm -nodaemon <==X window 则是这行决定的!

更多信息参考:Linux启动流程 不过这篇文章的技术比较久,CentOS 7.X以后全部采用Systemd,老旧的init不再使用,了解即可。

物理终端

直接接入本机的显示器和键盘设备

虚拟终端

附加在物理终端之上的以软件方式虚拟实现的终端,CentOS默认启动6个虚拟终端。Ctrl+Alt+F1~6切换

设备文件路径:/dev/tty#

Linux是类UNIX系统,都是多用户多进程操作系统。(注意深刻理解多用户的概念)传统UNIX工作方式如下图

    

图形终端

附加在物理终端之上的以软件方式虚拟实现的终端,但会额外提供桌面环境,这里边的终端称为模拟终端

模拟终端

使用ssh通过网络连接到Linux

设备文件路径

/dev

查看当前终端命令

tty

GUI和CLI

GUI

GNOME:C开发

KDE:      C++开发

xface:    轻量级图形界面

CLI

shell程序。

/bin/sh (已经被 /bin/bash 所取代)

/bin/bash (就是 Linux 默认的 shell)

/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)

/bin/tcsh (整合 C Shell ,提供更多的功能)

/bin/csh (已经被 /bin/tcsh 所取代)

/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)

查看我当前用户的是什么shell?

看$SHELL环境变量

查看当前linux支持的shell类型?

看/etc/shells中定义

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen

每个用户允许使用那些shell在那里定义?

/etc/passwd

特殊的shell——/sbin/nologin

bash基础——终端的更多相关文章

  1. cmd 与 bash 基础命令入门

    身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门       简介       CMD 基础命令          ...

  2. Linux就该这样学--之常用linux命令及bash基础

    Linux就该这样学--之常用linux命令及bash基础 Linux命令 管道 重定向 环境变量 常用命令 常用系统工作命令 系统状态检测命令 工作目录切换命令 文本文件编辑命令 文件目录管理命令 ...

  3. Bash基础——减号-

    参考:Bash基础——pipe pipe命令在 bash 的连续的处理程序中相当重要.在pipe命令当中,常常会使用到前一个命令的 stdout 作为这次的 stdin , 某些命令需要用到文件名 ( ...

  4. Linux系列(10):入门之bash基础与bash环境设置

    了解什么是shell吗? 知道如何查询当前系统支持的shell版本吗? 了解如何判断某个指令是否是bash的内置指令吗? 了解Linux的变量吗,知道如何定义与删除变量吗,知道如何赋值吗,知道如何获取 ...

  5. bash基础

    bash 是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Again SHell - 这是关于Bourne shell(sh)的一个双关语(Bourne again ...

  6. bash基础知识

    站在用户登录的角度来说,SHELL的类型:登录式shell: 正常通常某终端登录 su - USERNAME su -l USERNAME 非登录式shell: su USERNAME 图形终端下打开 ...

  7. linux文件系统及bash基础特性

    linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...

  8. Linux bash基础特性二

    shell脚本的组成部分 shebang 各种命令组合 编程变量种类 本地变量: 仅仅在当前的shell生效 环境变量: 在当前和子shell生效 局部变量: shell进程某代码片段 位置变量: $ ...

  9. bash 基础命令

    bash的基础特性(): () 命令历史 history 环境变量: HISTSIZE:命令历史记录的条数: HISTFILE:~/.bash_history: HISTFILESIZE:命令历史文件 ...

随机推荐

  1. sehll变量比较

    1.比较符号解释 $# 表示提供到shell脚本或者函数的参数总数: $1 表示第一个参数. -ne 表示 不等于 $?是shell变量,表示"最后一次执行命令"的退出状态.0为成 ...

  2. Redis学习笔记——Redis的基本操作

    之前介绍过如何在ubuntu安装Redis服务器:https://www.cnblogs.com/zifeiy/p/9062738.html 接下来,我们在Redis上进行一些基本的操作. 所县使用命 ...

  3. QuickText for Notepad++

    昨刚投入新欢Notepad++,思路如泉涌,码代码也不累了,一口气用她码了两篇文- 今再接再厉,继续.QuickText严格说来算不上什么神器级插件,也仅只是一个缩写快捷输入的插件而已.可用得好,那效 ...

  4. 【miscellaneous】视频浓缩摘要简介

    视频摘要,就是以自动或者半自动的方式,通过分析视频的结构和内容存在的时空冗余,从原始视频中提取有意义的片段,将它们以某种特点的方式重新组合成紧凑的.能够充分表现视频语义内容的浓缩视频. 一.静态视频摘 ...

  5. 在使用pandas 0.23.4对日期进行分组排序时报错

    date_df["rank_num"] = date_df.groupby("issuer_id").report_date.agg("rank&qu ...

  6. python 脚本备份mssql数据库并删除数据库

    一.实现脚本 # -*- coding=utf-8 -*- import pyodbc from datetime import datetime import pymssql import os i ...

  7. Appium+python启动虚拟机上的app

    查看appPackage和appActivity方法: 1.先在cmd命令行输入  adb logcat ActivityManager:I *:s 2.点击虚拟机启动app即可查看,/前是appPa ...

  8. python学习-16 列表list

    list 1.由[ ]括住,中括号内各元素由逗号隔开,各元素可以是数字,字符串,列表,布尔值等等. 例如: li = [521,"love",["john",& ...

  9. 把axios挂载到vue实例上面/==Axios 各种请求方式传递参数格式

    /*ajax请求*/   import axios from 'axios'   axios.defaults.baseURL = 'https://api.douban.com/v2/movie' ...

  10. (十四)Activitivi5之个人任务分配

    一.个人任务分配 1.1 方式一:直接流程图配置中写死: 1.2 方式二:使用流程变量 我们在启动流程的时候设置流程变量即可 /** * 启动流程实例 */ @Test public void sta ...