【读书笔记】Linux系统管理初学者指南读书笔记1——第1-2章
本博客记录一下《Linux系统管理初学者指南》这本书的读书笔记,最近由于想做一些关于嵌入式的项目,所以需要对Linux系统进行学习,正好之前买过这本书,内容还可以,能作为入门阅读
第1章 了解并安装Linux系统
Linux系统的发展与特点
Linux的发展历史
- Multics计划
- UNIX系统:1970年为UNIX元年,1970年1月1日0:00在UNIX系统中作为计算机时间的起点
- 类UNIX操作系统
- MINIX系统
- Linux系统:Linus
- 系统内核:负责完成操作系统基本功能的程序,主要作用是负责统一管理计算机中的硬件资源,提供用户擦操作界面,提供应用程序的运行环境
- Linux系统中的内核程序称为Kernel
- 系统内核:负责完成操作系统基本功能的程序,主要作用是负责统一管理计算机中的硬件资源,提供用户擦操作界面,提供应用程序的运行环境
- GNU计划:世界知名的自由软件项目,决定了Linux系统自由、开放的属性
- Kernel作为Linux系统的核心,只能实现系统的基本功能,而一个完整的Linux系统应该包括Kernel和应用程序两部分,而无论是Kernel还是Linux,其中的绝大部分应用程序属于GNU计划,遵守GNU计划中的GPL或LGPL协议
- Linux的发行版本:作为用户使用的都是运行在内核之上的各种应用程序,很多公司或组织在Linux内核的基础上添加了各种管理工具和应用软件,构成了一个完整的操作系统
- 将系统内核和应用软件封装在一起的操作系统成为Linux发行版,一般平时接触和使用的Linux系统都是Linux的发行版
- RedHat Linux
- Fedora
- RHEL(RedHat Enterprise Linux)
- CentOS(Community Enterprise Operation System,社区企业操作系统)
- Debian
- Ubuntu
- Kali Linux
- SUSE
Linux系统较为广泛的应用是网络服务器以及各种嵌入式系统
在VMware Workstation安装虚拟机
设置虚拟机的网络环境:
桥接(bridged)模式:虚拟机像是一个独立主机,与物理主机是同等地位,可以通过物理主机的网卡访问外网,外部网络中的计算机也可以访问此虚拟机,桥接模式对应的虚拟网络名称为VMnet0
仅主机(host-only)模式:仅主机模式对应的是虚拟网络VMnet1,这是一个独立的虚拟网络,与物理网络之间是隔离开的,所有设为仅主机模式的虚拟机之间以及虚拟机与物理主机之间可以相互通信,但它们与外部网络中的主机无法通信
NAT(网络地址转换)模式:NAT模式对应的虚拟网络是VMnet8,物理主机就像一台支持NAT功能的代理服务器,而虚拟机就像NAT的客户端一样,虚拟机可以使用物理主机的IP地址直接访问外部网络中的计算机,但由于NAT技术的特点,外部网络中的计算机无法主动与NAT模式下的虚拟机进行通信
Linux系统的基本操作
一个完整的Linux系统是由Kernel和各种应用软件组成的,Linux系统的桌面环境(X Window)也是由应用软件来提供的,负责X Window桌面环境的软件主要有两个:GNOME和KDE
X Window只是Linux系统的一个应用软件,并没有集成到Linux的内核中,因此用户可以根据需要选择是否运行图形界面
Shell
- Linux系统的字符界面称为Shell(Shell本来是指系统的用户界面,为用户与系统内核进行交互操作提供了一种接口,图形界面和字符界面都属于Shell,图形界面的Shell称为GUI,字符界面的Shell称为CLI,由于Linux系统的操作以字符界面为主,因此Shell通常专指CLI)
- Shell是Linux系统中的一个应用程序,将用户输入的命令解释成系统内核能理解的语言,命令执行后再将结果以用户可以理解的方式显示出来
- Linux系统中负责提供Shell功能的软件有很多,比如sh、Csh、Zsh和Bash等,CentOS系统中默认使用的是Bash
启动Shell
Linux是一个多用户操作系统,可以同时接受多个用户登陆,而且还允许同一个用户从不同的终端进行多次登陆,在使用安装Linux系统的计算机时,虽然用户面对的也是一个物理终端设备,但可以在这一个物理终端上通过虚拟终端打开多个互不干扰,独立工作的页面
- Linux中提供的虚拟终端默认有6个,其中第1个是图形界面,第2-6个则是字符界面,可以通过Ctrl+Alt+F1-F6在不同的虚拟终端进行切换,同时在字符界面下执行startx命令也可以进入图形界面(在Ubuntu中Ctrl+Alt+F1-F6代表不同的虚拟终端,而Ctrl+Alt+F7则是返回图形界面,书中描述的是CentOS)
- 虚拟终端的缩写为tty,执行tty命令就可显示用户目前所在的终端编号
除了虚拟终端外,还有一种启动Shell的方式称为伪终端,缩写为pts,在图形界面中,右键打开终端即可弹出一个运行在图形环境中的字符界面窗口,这就是一个伪终端,在其中执行tty命令,其中的结果为/dev/pts/0,表示这是系统启动的第一个伪终端(伪终端的编号从0开始)
启动Shell后,可以看到类似于zyh@zyh-virtual-machine:~$
的命令提示符,命令提示符是Linux字符界面的标志
- zyh:表示当前登录的用户账户
- zyh-virtual-machine:表示本机的主机名
- :表示用户当前所在的位置,即工作目录(是一个特殊符号,泛指用户的家目录)
- $:表示当前登录的是普通用户,如果是管理员用户则变为#
可以通过Ctrl+C键发出中断信号来中断命令的运行
Shell命令格式
Shell命令由命令名、选项和参数共3个部分组成:
命令名 [选项] [参数]
(命令名、选项和参数之间必须用空格分隔)
- 命令名:描述命令功能的英文单词或缩写
- 选项:调节命令的具体功能
- 选项通常以-开头,当有多个选项时,可以只使用一个-符号
- 部分选项以--开头,这些选项通常是一个单词或词组
- 少数命令的选项不需要-符号
- 参数:命令的处理对象,可以是文件、目录或用户账号等内容
在Shell中,一行可以输入多条命令,命令之间用分号分隔,如果在一行命令后加上****符号,就表示另起一行继续输入
通过上下方向键可以找出曾经执行过的命令
关机与重启命令
- 关机:poweroff
- 重启:reboot
- shutdown:既可以用来关机又可以用来重启
- 立即关闭系统:
shutdown -h now
- 立即重启系统:
shutdown -r now
- 15分钟后关闭系统:
shutdown -h +15
- 10分钟后重启系统,并将信息发给登陆到本机中的各用户:
shutdown -r +10 'The system will be rebooted!!'
- 对于延时运行的关机重启操作,可以用
shutdown -c
命令或Ctrl+C组合键取消 - 相比于poweroff和reboot命令,shutdown命令在执行前会给所有登陆用户发送警告信息,因次更加安全
- 立即关闭系统:
第2章 文件和目录管理
本章主要介绍一些常用的Linux系统的文件和目录管理类命令
Linux设计思想
- 一切皆文件:在Linux系统中,不只数据以文件的形式存在,其他资源(包括硬件设备)也被组织为文件的形式,例如硬盘以及硬盘中的每个分区在Linux中都被视为一个文件
- 整个系统由众多的小程序组成:整个Linux系统是由众多单一功能的小程序组成的,每个小程序只负责实现某一项具体功能,比如Linux的绝大多数命令,其实各自有一个相应的小程序,如果需要完成一项复杂任务,只需将相应的命令组合在一起即可
- 尽量避免与用户交互:在对系统进行管理操作时,要尽量避免用户的参与,因为Linux系统主要用作服务器的操作系统,在服务器上执行的操作最好通过编写脚本程序完成,从而自动化地完成某些功能
- 使用纯文本文件保存配置信息:如果需要改动系统或程序中的某项功能,只需编辑相应的配置文件
Linux系统中的文件和目录
Linux的目录结构
- 在Windows系统中,为每个磁盘分区分配一个盘符,在资源管理器中通过盘符就可以访问相应的分区,每个分区使用独立的文件系统,每个分区都有一个根目录,如C:\、D:\等
- Linux系统的绝大多数发行版遵循FHS(Filesystem Hierarchy Standard)文件系统层次化标准,采用统一的目录结构,按照FHS标准,整个Linux文件系统是一个倒置的树形结构,系统中只存在一个根目录,所有的目录和文件都在同一个根目录下
- 在Linux系统中定位文件或目录时,使用/进行分隔(区别于Windows的),在整个树形目录结构中,使用/表示根目录,根目录就是Linux文件系统的起点,在根目录下按照用途不同划分有很多子目录
下面是遵循FHS标准的典型目录结构:
以下是CentOS 7中一些常见的目录及其作用:
- /boot:存放Linux系统启动所必需的文件,Kernel被存放在这个目录中
- /etc:存放Linux系统和各种程序的配置文件,Linux中的很多操作和配置都是通过修改配置文件实现的(类似于Windows系统中的注册表)
- /dev:存放Linux系统中的硬盘、光驱和鼠标等硬件设备文件
- /bin:存放Linux系统中常用的基本命令,任何用户都有权限执行
- /sbin:存放Linux系统基本的管理命令,只有管理员权限才可以执行
- /usr:软件的默认安装位置,类似于Windows系统中的Program Files目录
- /home:普通用户家目录(也称为主目录)
- /root:超级用户root的家目录
- /mnt:一般是空的,用来临时挂载存储设备
- /media:用于系统自动挂载可移动存储设备
- /tmp:临时目录,用于存放系统或程序运行时产生的一些临时文件,可供所有用户执行写入操作
pwd(print working directory)命令:用于显示用户当前所在的工作目录路径
- /:是Linux系统的根目录,也是其他所有目录的起点
- /root:根目录下的一个子目录,用途是作为管理员root用户的家目录,家目录主要用于存放用户的各种数据
- Linux系统中普通用户的家目录默认集中存放在/home目录中,以用户名命名
cd(change directory)命令:用于切换工作目录
- 单纯执行cd命令,将默认返回到当前用户的家目录
- ~表示当前用户的家目录
- cd -可以在最近工作过的两个目录之间进行切换
关于路径的一些基本概念:
- 绝对路径:以根目录/作为起点,可以准确地表示一个文件或目录所在的位置
- 相对路径:以当前的目录为起点,在开头不使用/符号,输入的时候更加简单
.
:表示当前目录..
:表示当前目录的上一级目录
文件和目录操作命令
- ls(list)命令:以列表的方式显示一个目录中包含的内容
- ls显示结果以不同的颜色来区分文件类别,蓝色代表目录,灰色代表普通文件,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件
- touch命令:用于创建空文件或修改已有文件的时间戳
- mkdir(make directory)命令:用于创建新的空目录
- rmdir(remove directory)命令:可以删除指定的目录(必须是空目录,没有任何文件和子目录)
- cp(copy)命令:复制文件或目录
- cp [选项] 源文件或目录 目标文件或目录
- mv(move)命令:用于移动文件或对文件重命名
- mv [选项] 源文件或目录 目标文件或目录
- rm(remove)命令:删除文件或目录
- -f选项:强制删除,无须用户确认
- -r选项:递归删除整个目录
文件内容操作命令
- cat(concatenate)命令:用于查看文本文件内容
- more命令和less命令:分页显示文件内容
- head命令和tail命令:显示文件开头或末尾的部分内容
- wc命令:用于统计文件中的行数、单词数和字节数
- echo命令:用于输出指定的字符串或变量的值
- 在变量名称加前导符号$,可以引用一个变量的值
- grep命令:用于在文本文件中查找并显示包含指定字符串的所有行
- diff命令:用于比较多个文本文件之间的差异
日期和时间的相关命令
- date命令:显示或修改日期和时间
文件查找命令
- locate命令:简单快速的文件查找命令
- find命令:强大的文件查找命令,可以实现的文件的精确查找
- xargs命令:find辅助命令
内部命令和外部命令
Linux系统中的命令总体上分为内部命令和外部命令两大类
- 内部命令:指集成在Shell中的命令,属于Shell中的一部分,只要Shell被执行,内部命令就自动载入内存,用户可以直接使用
- 外部命令:很多的Linux命令独立于Shell之外,称为外部命令
Linux系统中的绝大多数命令属于外部命令,而每个外部命令都对应了系统中的一个可执行的二进制程序文件,这些二进制程序文件主要存放在下列目录中: - 普通命令:/bin、/usr/bin和/usr/local/bin
- 管理命令:/sbin、/usr/sbin和/usr/local/sbin
其中,普通命令是指所有用户都可以执行的命令,管理命令则只有管理员root才有权限执行,Linux系统默认将外部命令程序文件的存放路径保存在一个名为PATH的环境变量中
type命令:判断一个命令是内部命令还是外部命令
which命令:查找外部命令所对应的的程序文件
其他辅助命令
- ln命令:用于为文件或目录建立快捷方式(Linux系统中称为链接文件)
- alias命令:用于设置命令别名
- 系统定义的别名命令:ll(相当于ls -l)
- unalias命令可以取消所设置的别名命令
- history命令:查看命令历史记录
- help命令:查看内部命令帮助信息
- 对于外部命令,可以使用通用命令选项"--help"
- man命令:查看命令帮助手册
- clear命令:清除当前终端屏幕的内容
- ctrl+L也有相同的效果
其他技巧
通配符和扩展符
在Linux系统中执行命令时,可以通过一些特殊符号对多个文件进行批量操作,从而提高操作效率
- 通配符:通用的匹配信息的符号
*
:匹配任意数量的任意字符?
:在相应的位置上匹配单个字符[]
:匹配指定范围内的任意单个字符,如[a,b,c]是表示a、b、c任意一个字符;[a-z]表示任意一个小写字母
- 扩展符:在扩展符({})中可以包含一个以逗号分隔的列表,并将其自动展开为多个路径或文件名
管道符|
通过管道符|可以把多个简单的命令连接起来以实现更加复杂的功能,管道符用于连接左右两个命令,将|左边命令的执行结果作为|右边命令的输入
命令的换行
Linux命令行需要换行可以使用\,出现>时可以继续输入命令
【读书笔记】Linux系统管理初学者指南读书笔记1——第1-2章的更多相关文章
- Unix/Linux系统管理技术手册学习笔记——shell
创建日期:2016/02/29 更新日期:2016/02/29 shell变量赋值时不能在等号两边留空白,否则shell会把变量名误认为是命令名 双引号括起来的变量可以进行替换(用*和?这样的文件名匹 ...
- Linux系统管理——初学者建议
学习Linux的注意事项(一) Linux严格区分大小写 Linux是严格区分大小写的,这一点和Windows不一样,所以操作时要注意区分大小写的不同,包括文件名和目录名.命令.命令选项.配置文件配置 ...
- NHibernate初学者指南系列文章导航
NHibernate初学者指南系列文章导航 前面的话 经过三个多周的时间,终于将这个系列完成了,谢谢大家的关注和支持,有很多不足之处还望大家包涵. 本系列参考的书籍为NHibernate 3 Be ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- 读书笔记--Android Gradle权威指南(下)
前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
- 深入理解linux网络技术内幕读书笔记(八)--设备注册与初始化
Table of Contents 1 设备注册之时 2 设备除名之时 3 分配net_device结构 4 NIC注册和除名架构 4.1 注册 4.2 除名 5 设备初始化 6 设备类型初始化: x ...
- Linux 与 unix shell编程指南——学习笔记
第一章 文件安全与权限 文件访问方式:读,写,执行. 针对用户:文件属主,同组用户,其它用户. 文件权限位最前面的字符代表文件类型,常用的如 d 目录:l 符号链 ...
- Linux笔记-Linux的命令初解1
我是一个Linux的初学者,经验肯定没有大牛们那么全面,但是我很想把自己在学习过程中的所有所学和一些自己的感悟写下来. 首先我主要看的书为<鸟哥的私房菜>,这是一本非常棒的书,但是你会发现 ...
随机推荐
- vue真实项目结构
我明白你的需求.如果你想看一个真实企业项目使用的复杂目录结构,你可以参考以下几个例子: 根据1的介绍,一个vue项目的目录结构可以细分为以下几个部分: |- src | |- api 存放所有请求接口 ...
- 32位机转化11位手机号以及BLE与USB的切换
目录 用现有的资源,去实现本应该用更多资源来实现的需求,是一件很有意思的事情.不是说提倡这样使用,而是换一种思路解决问题比较新奇,或是在很多限制既定的情况下可以应急. 比如说,582m芯片,默认用32 ...
- Asp.net中web.config配置文件最全面详解 (转载至CSDN)
转载至csdn链接如下 https://blog.csdn.net/u011966339/article/details/64905062 web.config是一个XML文件,用来储存Asp.net ...
- 外卖小项目(SpringBook)
一.创建项目,配置maven 二.写配置文件application.yml 三.编写项目启动类 四.设置静态资源路径 基础环境搭建完毕
- for循环axios套axios调用,同步调取
1.function getsdd(){}事件 async/await把异步进行设置成同步进行 var url = '/api/runtime/form/save'; function checkAd ...
- [菜鸡随笔-2]用mv代替rm安全地进行删除操作的小技巧
牢骚和背景介绍: rm -rf /*的梗 相信大家都听过笑过,我不止听过笑过,还不小心试过(不要熬夜写东西!).为此丢了我一周的心血,和40块钱(买u盘跑网吧下载引导文件).所幸,这只是在自己的机器上 ...
- mybatis中xml新增一条数据获取自增id
在insert的标签里加两个属性:useGeneratedKeys="true" keyProperty="patentId" ,这个key ...
- 如何用python将txt中的package批量安装
第一步:cd 到目标路径 第二步:新建一个requirement.txt文档,将所有要下载的包一一罗列出来(需要指定版本的话,可以用==表明) 第三步:输入命令 pip install -r req ...
- SQL CASE 标注
根据 状态值 显示中文备注 case when a.zht='0' then '录入' when a.zht='1' then '待审核' when a.zht='2' then '已审核' end ...
- uniapp引入腾讯云直播助手插件
在uniapp开发小程序,引入腾讯云直播助手插件 1.在manifest.json文件中,找到微信小程序特有相关,声明要使用的插件 /* 小程序特有相关 */ "mp-weixin" ...