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

  • 相关阅读:
    EF6.0新特性-DbCommandInterceptor实现非SQL端读写分离
    【转】VS2012 中文版转英文版 英文版转中文版 界面语言切换
    【转】Repository 返回 IQueryable?还是 IEnumerable?
    迟来的零碎笔记
    mysql 列转行,合并字段的方法
    MySQL 5.7.9版本sql_mode=only_full_group_by问题
    mysql实现full outer join
    ubuntu下如何查找某个文件的路径
    mysql之group_concat函数详解
    MySQL 表别名(Alias)
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/8678802.html
Copyright © 2011-2022 走看看