zoukankan      html  css  js  c++  java
  • bash基础——终端

    前言

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

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

    为啥是6个终端?

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

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

  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/8678802.html
Copyright © 2011-2022 走看看