因为学习生信会用到Linux,所以在寒假期间系统的学习一下Linux的相关知识。首先先学习下关于Linux的基础概念
- Linux系统组成
具体可分为四个部分:Linux内核、GNU工具、图形化桌面环境,应用软件。
- 关于Linux内核
它是Linux核心,控制着计算机的硬件与软件,具体来说负责系统内存管理、软件程序管理、硬件设备管理,文件系统管理。
- 什么是虚拟内存
内核不仅管理服务器的可用物理内存,还可以创建和管理虚拟内存(实际并不存在的内存)。内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间。内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这就使得系统以为它拥有比物理内存更多的内存。(没怎么理解...)
- 进程
运行中的程序。可以在前台运行,显示在屏幕上;也可以在后台运行。内核控制着所有进程。
init进程是内核创建的第一个进程,来启动系统上所有其它进程。标准的init系统运行级为3,就是大多数应用软件,比如网络支持程序,都会启动。当内核启动时,会将init进程加载到虚拟内存中;在启动其它任何进程时,都会在虚拟内存中给新进程分配一个专有区域来储存该进程用到的数据和代码。
- 驱动程序代码
应用程序和硬件设备的中间人,允许内核与设备之间交换数据。
- 设备文件
是Linux系统将硬件设备当成的特殊文件,分为字符型设备文件(每次只能处理一个字符的设备);块设备文件(每次能处理大块数据的设备);网络设备文件。
- 节点
Linux为每个设备创建的一种特殊文件,与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供Linux内核标识它。
- 虚拟文件系统(VFS)
Linux内核支持从多个不同的文件系统硬盘中读写数据,其采用VFS作为和其它文件系统交互的接口.
- 开源软件(OOS)理念
允许程序员开发软件,并将其免费发布。任何人都可以使用,修改该软件,或者将该软件集成到自己的系统,无需支付任何授权费用。Linux的GNU操作系统工具即是在此理念下开发的。
- GNU coreutils软件包
为共Liunx系统使用的核心工具,包括处理文件、操作文本,管理进程。
- Linux shell
一种交互式工具,为用户提供启动程序、管理文件系统的文件以及运行在Linux系统上的进程的途径。它一端连接Linux内核,另一端连接用户,成为用户与Linux系统沟通的桥梁。通过在命令行提示符输入文本命令,然后解释命令,并在内核中执行而实现的。所有Linux发行版默认的shell都是bash shell。
cat /etc/passwd
#用户ID记录的第7个字段列出了默认的shell程序,一般使用的都是GNU bash shell,此为默认的交互shell
值得注意的是还有一个默认系统shell,用于需要启动时使用的系统shell脚本,可能并非是bash shell
ls -l /bin/sh #查看系统shell类型
- shell脚本
将多个shell命令放入文件中,作为程序执行的文件。
- Linux发行版
完整的Linux系统包称为发行版,分为3类。核心Linux发行版(含有所有的Linux程序)、特定用途的Linux发行版(基于主流发行版,但仅包括某些特定用途的应用程序),以及Linux LiveCD。
补充1 2/13/2020
1、/etc/passwd 文件包含了所有系统用户列表以及其各自的基本配置信息,比如用户所使用的shell程序,一般是/bin/bash
2、进入Linux命令行界面后(CLI),默认的bash shell提示符是美元符号$ ,表示等待输入
3、Linux提供查找shell命令及其它GNU工具信息的在线bash手册,可用man命令刚问手册页面,比如man xterm;空格键翻页,enter键逐行,q键退出
4、Linux文件目录系统
Linux虚拟目录节后只包含一个称为根目录的基础目录;
Linux使用正斜线(/)在文件路劲中划分目录;
Linux安装的第一块硬盘称为根驱动器,通常储存系统文件;此外会创建特别的目录(比如用户目录home),称为挂载点。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上它们却储存在另一个驱动器中(第二块硬盘,用于储存用户文件)
眼熟的几个Lunux目录(详见p39):
/bin 二进制目录,存放许多用户级的GNU工具;
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录;
/home 主目录,Linux在这里创建用户目录;
5、外部命令与内建命令
- 外部命令是存在于bash shell之外的程序;那些程序并不是shell程序的一部分,通常位于/bin,/usr/bin,/sbin,/usr/sbin 中。比如ps 即为一个外部命令。
which ps
type -a ps
ps -f
#当执行外部命令时,会创建一个子进程(PID与PPID)
- 内建命令不需要使用子进程执行,内建于shell。其执行速度与效率较高。
type cd
type exit
#内建命令大全详见p589
这里简单介绍一个常用的内建命令 history。命令历史记录.bash_history为隐藏文件,位于用户主目录中。值得注意的是该文件并非时刻更新的,只有shell退出时,才被写入到历史文件中。
history #查看最近用过的命令,通常历史记录中能够保存最近的1000条命令。
!! #使用上一条命令
!20 #取出命令历史记录中编号为20的命令,然后执行该命令。
暂时记录到这里。随着后期不断学习的深入,会不断更新。
网友评论