UNIX 入门
- 与 UNIX 建立连接
- 启动会话
- 登录
- 命令提示符
- 修改口令
- 退出系统
- 简单的 UNIX 命令
- 命令格式
- ls 命令
- who 命令
- 虚拟终端 tty
- 伪终端 pty
- who am i 命令
- cal 命令
- help 命令
- man 命令
- 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 提供在线帮助 help
、man
。
- 通过输入命令,告诉系统要做什么事,命令行中回车键 Enter 表示命令行的结束符。
如,date
命令在屏幕上显示当前的日期和时间。
命令格式
- 每个命令行分为 3 个字段:命令名、选项 和 参数。
如,狠狠地打他
中,打
就是命令名,狠狠地
就是选项,他
就是参数。
- 命令行格式:
$ 命令 [-选项] [参数]
,其中,选项和参数用中括号括起来,表示 可选,可有可无。 - UNIX 区分大小写,只接受小写的命令名。
- 其中,参数通常为
文件名/路径名
,用来 指定操作对象。
ls 命令
$ ls
命令本身,显示当前目录中的文件名。$ ls -l
,ls
命令加上选项-l
,表示以长格式列表显示文件详细信息。$ ls -a
,ls
命令加上选项-a
,显示目录中的隐藏文件。- 组合使用多个选项实现复杂需求,
-
开头的不同选项间需要有分隔符;也可以只写一个-
,后面叠加选项字母。 $ ls -l -a
或者$ ls -la
,把隐含文件以长格式形式显示出来。$ ls /boot
,参数/boot
指出 要显示哪个目录中的文件。$ ls -a /boot
,要 显示/boot
目录下的隐藏文件。
以上带连接符
-
的是 System V 流派的命令风格,
BSD 流派的风格不带连接符-
,如$ ls l
,
GNU 流派的连接符是--
,如$ ls --color
。
who 命令
用户信息:who
命令。
如第一行,表示用户 tux
从 desktop-n2ali3f.lan
这台主机登录的。
tty
、pts/0
、pts/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 I
或 who 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
进程,继续监视终端,为下一次登录做准备。
- 就这样不断循环进行。
相关文章:

UNIX 入门
与 UNIX 建立连接启动会话登录命令提示符修改口令退出系统 简单的 UNIX 命令命令格式ls 命令who 命令虚拟终端 tty伪终端 ptywho am i 命令 cal 命令help 命令man 命令 shell 概述shell 命令更换 shell临时更改 shell永久更改 shell 登录过程 与 UNIX 建立连接 启动会话 要启…...

Golang通过alibabaCanal订阅MySQLbinlog
最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。 Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监…...
Python flask-restful 框架讲解
1、简介 Django 和 Flask 一直都是 Python 开发 Web 的首选,而 Flask 的微内核更适用于现在的云原生微服务框架。但是 Flask 只是一个微型的 Web 引擎,所以我们需要扩展 Flask 使其发挥出更强悍的功能。 python flask框架详解:https://blog.…...

MySQL_约束、多表关系
约束 概念:就是用来作用表中字段的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确性,有效性和完整性。 约束演示 #定义一个学生表,表中要求如下: #sn 表示学生学号,要求使用 …...

在Qt中使用LoadLibrary无法加载DLL
Qt系列文章目录 文章目录 Qt系列文章目录前言一、问题分析 前言 最近因项目需要使用qt做开发,之前使用LoadLibrary加载dll成功,很庆幸,当一切都那么顺风顺水的时候,测试同事却发现,在windows平台上个别电脑上加载dll会…...

如何将区块链新闻稿发布到海外媒体?
随着区块链技术的不断发展,越来越多的区块链项目涌现出来,各大媒体也开始关注和报道区块链新闻。然而,如何将区块链新闻稿发布到海外媒体成为了许多区块链项目所面临的难题。本文将介绍一些有效的方法,帮助区块链项目将新闻稿发布…...
基于 CentOS 7 构建 LVS-DR 群集。
1.准备实验环境 本次实验我准备了4台虚拟机 DS:DIP--192.168.163.138 VIP--192.168.163.200 RIP1(web1)--192.168.163.140 RIP2(web2)--192.168.163.141 Client:user--192.168.163.142 2.配置服务器环境 1)搭建简易的web服务 RIP1 [rootlocalhost ~]# yum …...

防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办?
环境: 防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述: 防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办? 浏览器老是加载 解决方案: 1.打开设置查看双机连接的心跳接口是哪个端口 …...

【Kubernetes】Kubernetes之Pod详解
Pod 一、 Pod1. Pod 基础概念2. 在 Kubrenetes 集群中 Pod 使用方式2.1 pasue 容器2.2 kubernetes 中的 pause 容器提供的功能 3. Pod 的概念和结构组成4. Pod 的分类5. Pod 容器的分类5.1 基础容器(infrastructure container)5.2 初始化容器(…...
电商与客服系统完美对接指南源码-无缝对接唯一客服系统-提升电商客户体验...
提升电商客户体验,无缝对接唯一客服系统,助您商城腾飞! 在如今竞争激烈的电商领域,除了优质的商品和吸引人的价格,出色的客户服务同样不可或缺。一个高效的客服系统能够为您的电商商城带来更多的机会,建立顾…...

新知识:Monkey 改进版之 App Crawler
原生Monkey 大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷: 事件太过于随机,测试有效性大打折扣…...

黑马头条项目学习--Day3: 自媒体文章发布
Day3: 自媒体文章发布 Day3: 自媒体文章发布1) 素材管理-图片上传a) 前期微服务搭建b) 具体实现 2) 素材管理-图片列表a) 接口定义b) 具体实现 3) 素材管理-照片删除/收藏a) 图片删除a1) 接口定义a2) 代码实现 b) 收藏与取消b1) 接口定义b2) 代码实现 4) 文章管理-频道列表查询…...

使用frp实现内网穿透
1、介绍 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…...
安装 opendr 踩坑记
复现早期的优化算法需要用到opendr,踩坑一天记录!!! 测试是否成功安装的命令 >>> import opendr >>> opendr.demo("texture")失败案例 python 3.8.15 numpy1.23.0 mayavi4.8.1 chumpy0.70 cpython…...

各地区-各行业法人单位、区划数63个指标(2010-2022年)
一、数据介绍 数据名称:各地区-各行业法人单位、区划数63个指标 数据年份:2010-2022年(法人单位至2021年) 数据样本:404条 数据来源:自我整理 二、指标说明 行政区划代码 地区 长江经济带 经度 纬…...

W5500-EVB-PICO作为TCP Client 进行数据回环测试(五)
前言 上一章我们用W5500-EVB-PICO开发板通过DNS解析www.baidu.com(百度域名)成功得到其IP地址,那么本章我们将用我们的开发板作为客户端去连接服务器,并做数据回环测试:收到服务器发送的数据,并回传给服务器…...
web前端面试--递归(斐波那契数列)
web面试题 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 文章目录 web面试题定义源码测试示例 之前去笔试&…...

Vue3 Props组件简单应用(父组件获取子组件数据)
去官网学习→Props | Vue.js 运行示例: 代码:App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据:{{ content }}</h4>…...

Mybatis查询
返回实体类,必须指定返回类型, resultType不能省略,并且数据库字段名与实体类不一致会填充NULL,实体类我们一般都是驼峰,数据库字段一般都是下划线,所以在查询的时候可以起别名解决,属性填充本质上调用的是…...

如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享
前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级,写入压力和业务成本压力大,为了提升ES的写入性能,我们让ES支持ZSTD压缩算法,本篇文章详细展开滴滴…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...