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压缩算法,本篇文章详细展开滴滴…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
