UNIX 入门

  • [与 UNIX 建立连接](#与 UNIX 建立连接)
  • [简单的 UNIX 命令](#简单的 UNIX 命令)
    • 命令格式
    • [ls 命令](#ls 命令)
    • [who 命令](#who 命令)
      • [虚拟终端 tty](#虚拟终端 tty)
      • [伪终端 pty](#伪终端 pty)
      • [who am i 命令](#who am i 命令)
    • [cal 命令](#cal 命令)
    • [help 命令](#help 命令)
    • [man 命令](#man 命令)
  • [shell 概述](#shell 概述)
    • [shell 命令](#shell 命令)
    • [更换 shell](#更换 shell)
      • [临时更改 shell](#临时更改 shell)
      • [永久更改 shell](#永久更改 shell)
  • 登录过程

与 UNIX 建立连接

启动会话

要启动会话和系统建立连接,

  • 既可以打开本地计算机的电源,通过命令行或者图形界面窗口(GUI)和本地计算机建立连接;
  • 也可以使用 Putty、SSH 远程登陆软件和远程计算机建立远程连接启动会话。

会话(session)指一个终端用户与系统进行通讯的全过程,用户 从输入账号密码进入操作系统退出操作系统 就是一个 会话过程

登录

UNIX 是一个多用户操作系统,用户在使用 UNIX 系统前必须进行登录,只有登录验明身份才能分配资源。

无论是命令行还是 GUI ,登录时需要使用 登录名口令

  • 登录名,又称为用户名,唯一系统用它对用户进行身份确认
  • 口令,即密码,是一个 由字母和数字组成的序列

命令提示符

最简单的命令提示符只有一个字符,用户可以设置提示符。

  • 管理员 ,即 root(根用户),其命令提示符是 #
  • 普通用户 的命令提示符是 $
  • 可以根据提示符,来判断自己的身份。

修改口令

passwd 命令用来 修改或创建口令

  • 修改自己的口令:$ passwd
  • 修改别人的口令(只有 root 可以):$ passwd username,应用场景:root 创建普通用户后为其分配初始口令;某用户忘记密码,让管理员给重置密码。

退出系统

用户完成工作后离开系统的过程称为退出。

退出系统的 3 种方法:

  • $ exit
  • $ logout
  • [Ctrl-d]

退出意味着和系统断开连接,结束会话。

简单的 UNIX 命令

UNIX 系统有几百条命令/系统工具,绝大多数命令格式相同,大部分 UNIX 提供在线帮助 helpman

  • 通过输入命令,告诉系统要做什么事,命令行中回车键 Enter 表示命令行的结束符。

如,date 命令在屏幕上显示当前的日期和时间。

命令格式

  • 每个命令行分为 3 个字段:命令名选项参数

如,狠狠地打他 中, 就是命令名,狠狠地 就是选项, 就是参数。

  • 命令行格式:$ 命令 [-选项] [参数] ,其中,选项和参数用中括号括起来,表示 可选,可有可无。
  • UNIX 区分大小写,只接受小写的命令名
  • 其中,参数通常为 文件名/路径名,用来 指定操作对象

ls 命令

  • $ ls 命令本身,显示当前目录中的文件名
  • $ ls -lls 命令加上选项 -l,表示以长格式列表显示文件详细信息
  • $ ls -als 命令加上选项 -a显示目录中的隐藏文件
  • 组合使用多个选项实现复杂需求- 开头的不同选项间需要有分隔符;也可以只写一个 - ,后面叠加选项字母。
  • $ ls -l -a 或者 $ ls -la把隐含文件以长格式形式显示出来
  • $ ls /boot ,参数 /boot 指出 要显示哪个目录中的文件
  • $ ls -a /boot ,要 显示 /boot 目录下的隐藏文件

以上带连接符 - 的是 System V 流派的命令风格,

BSD 流派的风格不带连接符 - ,如 $ ls l

GNU 流派的连接符是 -- ,如 $ ls --color

who 命令

用户信息:who 命令。

如第一行,表示用户 tuxdesktop-n2ali3f.lan 这台主机登录的。

ttypts/0pts/1:0 又是什么含义呢?

很久很久以前,计算机是很昂贵的,不能让每个人独占一台计算机;

解决方法是每人一套物理终端,连接到计算机上,共享这台计算机的资源;

后来又出现了虚拟终端的方法。

  • 物理终端:直接连接在主机上的显示器、键盘鼠标的统称。
  • 虚拟终端(tty):附加在物理终端之上,用软件方式实现。类 UNIX 系统默认为用户创建几个虚拟终端,实现多用户的同时登录或单用户的多终端登录。

虚拟终端 tty

  • UNIX 中 每个终端都是文件 ,虚拟终端对应的文件是 /dev/tty#1≤#≤6
  • CentOS 默认启用 6 个虚拟终端,tty1 是图形终端,tty2-tty6 是字符终端。
  • 虚拟终端可以相互切换,可以通过 $ Ctrl-Alt-F[1-6],也可以通过 $ chvt n(1≤n≤6)
  • 可以通过 tty 命令来 查看当前的虚拟终端号

伪终端 pty

  • 伪终端是由 远程登录软件终端模拟软件 模拟出的终端。
  • 两种应用场景:图形界面下进行命令操作,远程登录。
  • pts(pseudo-terminal slave)是 pty 的实现方法,伪终端以 pts/n 的形式命名,n 表示该终端是系统中的第几个伪终端。
  • 0:表示是图形用户界面终端。

who am i 命令

who am Iwho am i 显示 终端上登录用户的信息

cal 命令

  • cal 命令 显示指定年份的日历表,默认参数为当前月。
  • 参数中指定年和月,显示指定年月的日历表。如 $ cal 5 2019,显示 2019 年 5 月份的日历表。

help 命令

help 命令提供 内部命令 帮助信息(只有内部命令,无外部命令)。

命令分类:

  • 内部命令:shell 代码的一部分,shell 启动后驻留内存,执行速度快。
  • 外部命令:又称系统工具程序,保存在文件系统中,被调用时才载入内存执行。
  • 查看全部内部命令列表:$ help
  • 查看某一内部命令:$ help command-name,如 $ help alias 查看 alias 命令如何使用。

man 命令

man 联机帮助手册(分章编写),查看所有命令(内外部)的完整说明,说明内容包括:命令语法、各选项的意义、相关命令等。

man 命令用法:$ man command-name,如 $ man ls 查看 ls 命令的相关信息。

man 命令中翻页移行:

  • 翻页:后翻一页 Space;前翻一页 b
  • 移行:后移一行 Enter ;前移一行 k
  • 退出:q

在命令行中输入命令时,删除一行命令[Ctrl-u]中断程序运行[Ctrl-c]

shell 概述

shell 负责用户和 UNIX 系统之间的交互,每次输入一个命令,以 Enter 结束。

shell 命令

  • 一些 UNIX 命令 是 shell 程序的一部分 ,称为 内部命令shell 命令
  • 大多数 UNIX 命令程序 存储在硬盘上由 shell 查找、加载并执行 ,称为 外部命令系统工具程序

可以通过 $ ls /bin/*sh 查看 /bin 目录中的 shell。

在 shell 中,用不同颜色表示不同类型的文件。

其中,绿色表示可执行程序,蓝色表示目录,白色表示文本文件,蓝绿色表示链接文件(相当于 windows 下的快捷方式)。

更换 shell

可以随时更换正在使用的 shell,一种方法是 临时使用 ,另一种是 永久改变

临时更改 shell

  • 方法:当前 shell 中键入新 shell 名
  • 本质:创建当前 shell 子进程,在子进程中运行新 shell

永久更改 shell

可以通过以下两种方式实现:

  • 修改账户配置文件
  • 使用 chsh 命令

登录过程

UNIX 登录过程如下:

  • UNIX 启动时内核被载入内存,其余部分在磁盘上,用户请求时再载入内存;
  • 用户登录时,shell 程序也被载入内存
  • UNIX 完成启动后,init 程序为每一个终端激活一个 getty 程序getty 程序显示 "login: " 让用户登录;

init 进程是 UNIX 系统所有进程的 祖先进程 ,会启动所有系统服务和后台服务。系统启动后,inti 创建虚拟终端为用户登录做准备。

  • 用户输入 username 后,getty 程序 读取这个输入,并启动 login 程序

  • getty 程序把用户输入的字符串(用户标识/登录名)传给 login 程序;

  • login 程序显示 "password: "login 程序 验证用户名和口令,并检查下一步要执行的程序名,如 shell。
  • 然后用户就可以在命令提示符下进行各种操作;
  • 当用户使用完后,使用 $ exit 退出系统;
  • init 进程发现某个终端上的 shell 退出后,就为该终端创建 getty 进程,继续监视终端,为下一次登录做准备。
  • 就这样不断循环进行。
相关推荐
IChen.1 小时前
解决centos 删除文件后但空间没有释放
linux·运维·centos
何陈陈2 小时前
【Linux】线程池
linux·服务器·开发语言·c++
S hh2 小时前
【Linux 】文件描述符fd、重定向、缓冲区(超详解)
linux·运维·服务器
DuoRuaiMiFa2 小时前
Linux系统性能调优实战指南
linux
憧憬一下2 小时前
线程池的实现和讲解:解决多线程并发服务器创建销毁线程消耗过大的问题
linux·线程池·c/c++·嵌入式linux
朝九晚五ฺ3 小时前
【Linux探索学习】第三弹——Linux的基础指令(下)——开启新篇章的大门
linux·运维·学习
肥or胖3 小时前
【MySQL】索引
linux·数据库·mysql
卓琢4 小时前
(九)Shell 脚本(四):正则表达式、sed 和 awk 详解
linux·mysql·正则表达式
一切皆是定数5 小时前
Linux驱动开发——LED驱动开发
linux·驱动开发·b树