当前位置: 首页 > news >正文

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 提供在线帮助 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 进程,继续监视终端,为下一次登录做准备。

在这里插入图片描述

  • 就这样不断循环进行。

相关文章:

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 初始化容器&#xff08…...

电商与客服系统完美对接指南源码-无缝对接唯一客服系统-提升电商客户体验...

提升电商客户体验,无缝对接唯一客服系统,助您商城腾飞! 在如今竞争激烈的电商领域,除了优质的商品和吸引人的价格,出色的客户服务同样不可或缺。一个高效的客服系统能够为您的电商商城带来更多的机会,建立顾…...

新知识: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 运行示例&#xff1a; 代码&#xff1a;App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据&#xff1a;{{ content }}</h4>…...

Mybatis查询

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

如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享

前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级&#xff0c;写入压力和业务成本压力大&#xff0c;为了提升ES的写入性能&#xff0c;我们让ES支持ZSTD压缩算法&#xff0c;本篇文章详细展开滴滴…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...