Linux学习系列一:Linux的简单介绍以及命令行的基本操作



这个系列的Linux教程主要参考刘遄老师的《Linux就该这么学》。用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间的差异。

目前设计的这个Linux学习系列的目录如下:(会陆续更新~)

  1. Linux 学习系列一:Linux的简单介绍以及命令行的基本操作
  2. Linux 学习系列二:Linux中的常用命令
  3. Linux 学习系列三:管道符、重定向与环境变量
  4. Linux 学习系列四:光速掌握Vim,效率提升神器
  5. Linux 学习系列五:Shell命令脚本的基本语法
  6. Linux 学习系列六:用户身份与文件权限


\quad
\quad

操作系统的发展史

Unix

  • 1965年之前,电脑只有军事或者学院的研究机构碰的起,当时大型主机至多能提供30台终端(30个键盘、显示器)的连接;
  • 1965年左后由贝尔实验室、麻省理工学院以及通用电气共同发起了Multics项目,想让大型主机支持300台终端;
  • 1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究;
  • 1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间编写出了Unix操作系统的原型;
  • 1970年,美国贝尔实验室的Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言;
  • 1972年,美国贝尔实验室的Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言;
  • 1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统。

Minix

因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(通用电气)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。

Linux

因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface),他规范了应用程序与内核的接口规范; 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。

Linux 介绍

Linux 内核版本

内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:

  • 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
  • 开发版:由于要试验各种解决方案,所以变化很快。

内核源码网址:The Linux Kernel Archives。所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linu领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。

Linux 发行版本

Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

类Unix系统目录结构

先来简单学习一下,后面再详细讲~

Unix没有盘符这个概念,只有一个根目录/,所有文件都在它下面。可以说,一切从“/”开始。

  • 根目录/:一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/开始,再进入到home目录。
  • /bin/usr/bin:可执行二进制文件的目录,如常用的命令lstarmvcat等。
  • /boot:放置Linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
  • /dev:存放Linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab/etc/fstab/etc/init.d/etc/X11/etc/sysconfig/etc/xinetd.d
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu表示用户 edu的家目录。
  • /lib/usr/lib/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
  • /opt:给主机额外安装软件所摆放的目录。
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo/proc/interrupts/proc/dma/proc/ioports/proc/net/*等。
  • /root:系统管理员root的家目录。
  • /sbin/usr/sbin/usr/local/sbin:放置系统管理员使用的可执行命令,如fdiskshutdownmount等。与 /bin 不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在/srv/www内。
  • /usr:应用程序存放目录,比如:
    • /usr/bin:存放应用程序。
    • /usr/share:存放共享数据。
    • /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
    • /usr/local:存放软件升级包。
    • /usr/share/doc:系统说明文件存放目录。
    • /usr/share/man:程序说明文件存放目录。
  • /var:放置系统执行过程中经常变化的文件,如:
    • /var/log:随时更改的日志文件。
    • /var/log/message:所有的登录文件存放目录。
    • /var/spool/mail:邮件存放的目录。
    • /var/run:程序或服务启动后,其PID存放在该目录下。

觉得上面的比较复杂的话,一些重要的命令整理在下面了。

目录名称应放置文件的内容
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home用户家目录
/media 用于挂载设备文件的目录
/root系统管理员的家目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/var 主要存放经常变化的文件,如日志
/bin存放单用户模式下还可以操作的命令
/lib开机时用到的函数库,以及/bin/sbin下面的命令要调用的函数
/boot开机所需文件—内核、开机菜单以及所需配置文件等
/lost+found当文件系统发生错误时,将一些丢失的文件片段存放在这里
/usr/sbinLinux 系统开机时不会使用到的软件/命令/脚本

相对路径与绝对路径

/目录开始描述的路径为绝对路径,如:

cd /home
ls /usr

从当前位置开始描述的路径为相对路径,如:

cd ../../
ls abc/def

此外,需要知道的是:

  • .表示当前目录
  • ..表示上一级目录,即父目录

注意:根目录下的...都表示当前目录。

命令行基本操作

命令使用方法

Linux命令格式:

command  [-options]  [parameter1] ...

其中:

  • command:命令名。
  • [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 。
  • parameter1:传给命令的参数:可以是零个一个或多个。

帮助文档

要学习Linux,肯定就必须学会使用帮助文档了!主要就是helpman命令。

help

help一般是linux命令自带的帮助信息。比如:ls --help

lucky@LAPTOP-G2DIO3FV:/$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      with -l, scale sizes by SIZE when printing them;
                               e.g., '--block-size=M'; see SIZE format below
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information);
                               with -l: show ctime and sort by name;
                               otherwise: sort by ctime, newest first
...

man

man是Linux提供的一个手册,包含了绝大部分的命令、函数使用说明。该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。例:man ls ; man 2 printf

man中各个章节的意义如下:

Standard commands标准命令
System calls系统调用,如open,write
Library functions库函数,如printf,fopen
Special devices设备文件的说明,/dev下各种设备
File formats文件格式,如passwd
Games and toys游戏和娱乐
Miscellaneous杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量
Administrative Commands管理员命令,如ifconfig

要注意:man是按照手册的章节号的顺序进行搜索的。

man设置了如下的功能键:

功能键功能
空格键显示手册页的下一屏
Enter键一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出man命令
h列出所有功能键
/word搜索word字符串

例如,

lucky@LAPTOP-G2DIO3FV:/$ man 1 ls

image.png
可以看到,man可以给出该命令的名字、使用规则、相关描述及其参数的使用。如果在man手册里面不会翻页,可以按h,就可以看到man手册的使用方法。
image.png

history

当系统执行过一些命令后,可按上下键翻看以前的命令,history可将执行过的命令列举出来。history保留了最近执行的命令记录,默认可以保留1000。

历史清单从0开始编号到最大值。

其常见用法:

  1. 显示最近N条命令:
history N
  1. 清除所有的历史记录
history -c
  1. 保存历史记录到文本xxx.txt
history -w

命令行里的快捷键

快捷键作用
Ctrl+c结束正在运行的程序
Ctrl+d结束输入或退出shell
Ctrl+s暂停屏幕输出【锁住终端】
Ctrl+q恢复屏幕输出【解锁终端】
Ctrl+L清屏,等同于Clear
Ctrl+a当前光标到行首
Ctrl+e当前光标到行尾
Ctrl+u删除当前光标到行首
Ctrl+k删除当前光标到行尾
Ctrl+y在光标处粘贴剪切的内容
Ctrl+r查找历史命令【输入关键字,就能调出以前执行过的命令】
Ctrl+t调换光标所在处与其之前字符位置,并把光标移到下个字符
Ctrl+x+u撤销操作
Ctrl+z转入后台运行

参考

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的西瓜瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值