Linux系统篇(一)指令篇·一:初识Linux及其基本指令

◆博主名称:少司府

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆

数据结构系列 个人专栏:初阶数据结构 高阶数据结构

C++基础 个人专栏:C++初阶 C++进阶

Linux 个人专栏:Linux系统编程

⭐琢玉成器终有时,笔底生花夺锦归


目录

[1. Linux背景](#1. Linux背景)

[1.1 计算机历史](#1.1 计算机历史)

[1.2 Unix背景](#1.2 Unix背景)

[1.3 Linux的产生](#1.3 Linux的产生)

[2. Linux操作系统](#2. Linux操作系统)

[2.1 开源](#2.1 开源)

[2.2 认识Linux的不同版本和内核](#2.2 认识Linux的不同版本和内核)

[2.3 Linux应用](#2.3 Linux应用)

[3. 环境配置](#3. 环境配置)

[3.1 云服务器](#3.1 云服务器)

[3.2 Xhell](#3.2 Xhell)

[3.3 Linux常见命令](#3.3 Linux常见命令)

[4. Linux基本命令](#4. Linux基本命令)

[4.1 前置知识点](#4.1 前置知识点)

[4.1.1 文件](#4.1.1 文件)

[4.1.2 Linux目录的树状结构](#4.1.2 Linux目录的树状结构)

[4.2 ls基本指令](#4.2 ls基本指令)

[4.3 pwd命令和cd命令](#4.3 pwd命令和cd命令)

[4.4 touch命令、mkdir命令和tree命令](#4.4 touch命令、mkdir命令和tree命令)

[4.5 nano、cat和alias](#4.5 nano、cat和alias)

[4.6 rmdir和rm](#4.6 rmdir和rm)

[4.7 man和cp](#4.7 man和cp)


Linux 是现代计算机领域中非常重要的操作系统之一,广泛应用于服务器、云计算、嵌入式设备、超级计算机以及软件开发环境中。很多程序员、运维工程师和计算机专业学生都会从 Linux 开始学习计算机底层知识。

学习 Linux 不能只停留在记忆命令,更重要的是理解 Linux 的发展历史、操作系统思想、系统结构以及命令背后的工作原理。本文结合学习笔记,从 Linux 的诞生开始,逐渐介绍 Linux 操作系统、发行版本、文件系统结构以及常见 Linux 命令。

1. Linux背景

1.1 计算机历史

1)、1945年2月14日,埃尼阿克在美国发明了世界上第一台计算机。

2)、戈登·摩尔于1965年提出摩尔定律,其核心内容是:在成本大致不变的情况下,集成电路(IC)上可容纳的晶体管数量约每18至24个月增加一倍,性能也随之提升,而单位晶体管的制造成本下降一半,放在计算机上就是让计算机不断小型化、高性能化

3)、之后,出现了计算机私人公司,他们主要负责两种:

面向企业的计算机:IBM

面向个人的计算机:苹果、微软、英特尔、联想(国内)

1.2 Unix背景

1)、1969-1970年,贝尔实验室研究人员Ken Tompson和Dennis Ritchie, 在采用很多Multics(一种特殊的操作系统)特点的基础上开发了UINX系统。

2)、它运行在小型机上,满足了系统对科研环境的要求。从 产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。

1.3 Linux的产生

1991年赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet 新闻组(comp.os.minix) 中宣布他编制出了一种类似UNIX的小操作系统,叫Linux 。

2. Linux操作系统

2.1 开源

Linux是部分汇编加上C语言编写的操作系统,是开源的操作系统。开源指的是源代码公开。

开源之后,会有很多工程师,黑客愿意参加这个项目,他们一方面是愿景驱动,另一方面是反对苹果、微软的闭源行为。

我们如何理解开源和闭源呢?

开源的操作系统有很多人使用,容易发现bug,发现bug和解决bug的人之间没有利益冲突,因此解决bug会非常即时。

因此,开源相较于闭源有更好的性能、更高的稳定性和安全性,也因此Linux是企业后端选择操作系统的首选。


2.2 认识Linux的不同版本和内核

在技术方面,我们称Linux的版本为内核版本。例如:3.10.0-957.21.3.el7.x86_64

3:主版本号,10:次版本号(奇数代表测试版本,偶数代表稳定版本),0:修订次数

957.21.3:特定版本的补丁编号,el7:centos 7,x86_64:体系结构(能在英特尔x86的64位电脑下跑)

在商业角度,Linux有多种版本:Ubuntu(有优秀的图形界面,学校教学爱用),kail,centos(企业开发用),红旗(国内生产的)

我后续使用的就是Ubuntu 22.04版本。

2.3 Linux应用

Linux广泛应用在服务器领域、桌面领域、嵌入式领域以及云计算/大数据领域。


3. 环境配置

3.1 云服务器

我们想在windows电脑上使用Linux,可以装一个Linux系统、可以安装虚拟机、可以购买云服务器,三种方法相较而言云服务器更为方便与安全。

我们自己在网上购买云服务器,这里以阿里云举例:

IP地址那里有云服务器的公网IP,我们记住这个地址。并且,点击重置密码来生成自己的密码

3.2 Xhell

Xhell是一个有图形化界面的终端软件,可以连接到我们的云服务器上。

密码这里填写在阿里云上重置生成的新的密码。

3.3 Linux常见命令

1)、whoami

html 复制代码
whoami 回车
root //用户名

显示当前用户的用户名,root代表超级用户,权限最高。

2)、pwd

html 复制代码
pwd
/root //目录

pwd显示当前目录。

3)、exit

退出Linux系统的连接。

4)、

html 复制代码
adduser user1 //添加用户1
passwd user1 //给用户1设置密码
......
userdel -r user1 //删除用户1
clear //清屏

4. Linux基本命令

4.1 前置知识点

4.1.1 文件

1)、在Linux系统中,文件大体分为普通文件和目录,目录也就是所谓的文件夹。

2)、文件=内容+属性。内容指的是文件本身里面的内容,属性是文件的文件名之类的。属性也要占空间,因此空文件也占据磁盘内容。

3)、在Linux系统中,以 . 开头的文件是隐藏文件,. 代表当前文件,.. 代表上一级目录文件。

4)、命令的本质就是可执行程序/文件

5)、在Linux系统下,一切皆文件。(重要)

4.1.2 Linux目录的树状结构

Linux整体的文件结构是以 根目录 / 开始的多叉树,叶子节点位普通文件,非叶子节点为非空目录。

绝对路径:从根目录开始推到当前位置,例如:/home/cxr/test.c,绝对路径在配置文件的时候使用。

相对路径:以非 / 为参照点,定位一个文件的路径,在日常操作中使用。

4.2 ls基本指令

1)、显示当前目录下的文件:ls,默认只显示文件名属性

2)、ls -l,显示文件名+其他属性,其他属性以d开头,说明改文件为目录,-开头,说明为普通文件。

3)、ls -l -a,-a代表显示隐藏文件/目录。-a的位置很随意,可以是 ls -al

在Linux系统中,即使是空目录,也会默认自带 . 和 .. 目录文件。

4.3 pwd命令和cd命令

pwd上面举过例子了,这里放一张图片:

1)、家目录:任何一个Linux用户,用特定的用户名登录时,默认的路径。

超级用户root:/root

普通用户:/home/用户名

2)、cd的用法

3)、cd ~

进入家目录

4)、cd -

进入最近访问的目录

4.4 touch命令、mkdir命令和tree命令

1)、touch命令

touch主要有两个作用:修改文件时间和创建普通文件。

2)、mkdir命令

mkdir用于创建目录

html 复制代码
mkdir -p a/b/c/d // -p用于创建一连串目录

3)、tree命令

tree命令用于显示当前目录下文件分布的结构(树状结构)

cpp 复制代码
apt install -y tree 

Linux默认没有下载tree命令,用apt来下载Ubuntu版本下的tree命令。

html 复制代码
tree . // 显示当前目录下的文件分布结构

4.5 nano、cat和alias

1)、nano 文件名

html 复制代码
nano test.c // 进入test.c文件,以记事本的形式

如果命令行中出现了异常,尝试Ctrl C 来终止异常。

2)、cat 文件名

html 复制代码
cat test.c // 展示test.c文件里面的内容
html 复制代码
# 命令⾏构建多⾏⽂本 
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 20 ]; do echo "hello bite"; 
let cnt++; done > temp.txt
# 测试cat基本命令 
[whb@bite-alicloud test]$ cat temp.txt 
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
# cat 输出携带⾏号 
[whb@bite-alicloud test]$ cat -b temp.txt 
 1 hello bite
 2 hello bite
 3 hello bite
 4 hello bite
 5 hello bite
 6 hello bite
 7 hello bite
 ...
# 修改temp.txt,使其携带多⾏空⾏ 
[whb@bite-alicloud test]$ vim temp.txt
# 测试 -b 对⾮空输出⾏编号 
[whb@bite-alicloud test]$ cat -b temp.txt 
 1 hello bite
 2 hello bite
 3 hello bite
4 hello bite
 5 hello bite
 6 hello bite
 7 hello bite
 ...
# 测试-n 对输出的所有⾏编号 
[whb@bite-alicloud test]$ cat -n temp.txt 
 1 hello bite
 2 hello bite
 3 hello bite
 4 
 5 
 6 
 7 hello bite
 8 hello bite
 9 
 10 hello bite
 11 hello bite
 ...
# 测试 -s 不输出多⾏空⾏,多⾏空⾏压缩成为⼀⾏ 
[whb@bite-alicloud test]$ cat -s temp.txt 
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
...

3)、alias 别名=命令,给命令起别名(临时)

html 复制代码
alias zhangsan=pwd
alias lisi='ls -al'

4.6 rmdir和rm

1)、rmdir 空目录,只能删除空目录。

2)、rm 普通文件,默认只能删除普通文件。

rm -f 普通文件,不提示直接删除普通文件。

rm -r 目录,递归删除目录。

rm -rf 目录,不提示直接删除目录。

rm -f *,删除目录下所有内容。

4.7 man和cp

1)、man 命令,查找该命令的手册,默认先查1号手册。

html 复制代码
mam 2 pwd // 查找pwd的2号手册

2)、cp 文件,拷贝普通文件。

cp 文件名,拷贝文件到当前目录下。

cp 文件名1 文件名2,拷贝文件1更名为文件2到当前目录下。

cp 文件名 ../ ,拷贝到上级目录。

本期的分享就到这里,如果觉得博主的文章比较对胃口的话,可以点一个小小的关注~

您的三连是我持续更新的动力~

相关推荐
天远API1 小时前
零信任架构实战:基于天远企业四要素验证构建自动化供应商准入网关
运维·人工智能·架构·自动化
Zixhy3 小时前
手撕Reactor模型实现同步高并发服务器及Muduo网络库深入解析
linux·服务器·网络·数据库·c++
晴天163 小时前
前端 postMessage 使用场景
前端·javascript·网络
迷途之人不知返3 小时前
【进程】-4-进程状态(2):Linux中的进程状态
linux
IMPYLH4 小时前
HTML 的 <samp> 元素
前端·网络·html
tedcloud1239 小时前
Wand-Enhancer 怎么搭建?开源 Wand 客户端增强与远程控制工具介绍
大数据·服务器·人工智能·开源·音视频
Databuff10 小时前
AI SSH工具,集齐SSH、SFTP、知识库RAG、AI助手
网络·人工智能·ssh
Jeremy_WW10 小时前
QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:13 Page 9Fh
网络·网络协议·信息与通信·光模块·cmis
Emily1568535987011 小时前
ABB CI867K01 3BSE043660R1
服务器·plc·dcs·abb·ci867k01·3bse043660r1·工控模块