操作系统简单介绍
计算机由软件和硬件组成。操作系统是软件的一类,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁。
Linux 的目录结构
Linux 的目录结构是一个树型结构。Windows 系统可以拥有多个盘符,但 Linux 系统没有盘符这个概念。只有一个根目录 / ,所有文件都在它下面。
Linux 路径的描述方式
- 在 Linux 系统中,路径之间的层级关系,使用 / 来表示
- 在 Windows 系统中,路径之间的层级关系,使用 \ 来表示
Linux 命令入门
Linux 命令基础格式
无论是什么命令,用于什么用途,在 Linux 中,命令有其通用的格式:
command [- options] [parameter]
- command 命令本身
- - options:[可选,非必填] 命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等
示例: ls -l /home/itheima
ls 是命令本身,-l 是选项,/home/itheima 是参数
意思是以列表的形式,显示 /home/itheima 目录内的内容
ls 命令
ls 命令的作用是列出目录下的内容,语法细节如下:
ls [ -a -l -h ] [Linux 路径]
- -a -l -h 是可选的选项
- Linux 路径 是此命令可选的参数
当不使用选项和参数,直接使用 ls 命令本体,表示:以平铺形式,列出当前工作目录(默认 HOME 目录)下的内容(文件或文件夹)
HOME 目录:每个 Linux 操作用户在 Linux 系统的个人账户目录。
当前工作目录:Linux 命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的 HOME 目录。
-a 选项
表示:all 的意思,即列出全部文件(包含隐藏的文件、文件夹)
以 . 开头的文件,表示的就是 Linux 系统的隐藏文件/文件夹,只有通过-a 选项才能看到
-l 选项
表示:以列表(竖向排列)的形式展示内容,并展示更多信息
-h 选项
表示:以易于阅读的形式,列出文件大小,如K、M、G
-h 必须要搭配 -l 一起使用
语法中的选项是可以组合使用的!选项和参数也都是可以混合使用的!
比如 ls -l -a、ls -al、ls -la都是相同的
目录切换相关命令(cd/pwd)
cd 切换工作目录
当 Linux 终端(命令行)打开的时候,会默认以用户的 HOME 目录作为当前的工作目录,我们可以通过 cd 命令,更改当前所在的工作目录。cd 命令来自英文:Change Directory
【语法】cd [Linux 路径]
- cd 命令无需选项,只有参数,表示要切换到哪个目录下
- cd 命令直接执行,不写参数,表示回到用户的 HOME 目录
pwd 查看当前工作目录
通过 ls 来验证当前的工作目录,其实是不切当的。我们可以通过 pwd 命令,来查看当前所在的工作目录。pwd 命令来自:Print Work Directory
【语法】pwd 无选项,无参数,直接输入 pwd 即可
绝对路径、相对路径和特殊路径符
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头
特殊路径符:
- . 表示当前目录,比如: cd ./Desktop 表示切换到当前目录下的 Desktop 目录内,和 cd Desktop 效果一致
- .. 表示上一级目录,比如: cd .. 即可切换到上一级目录,cd ../.. 即可切换到上二级目录
- ~ 表示 HOME目录,比如: cd ~ 即可切换到 HOME目录或 cd ~/Desktop,切换到HOME内的 Desktop目录
创建目录命令(mkdir)
通过mkdir命令可以创建新的目录(文件夹),mkdir 来自英文:Make Directory
【语法】mkdir [ -p ] Linux路径
- 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
- -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
-p 选项
如果想要一次性创建多个层级的目录,会报错,因为上级目录并不存在。此时可以通过 -p 选项,将一整个链条都创建完成。
注!创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作,这将会涉及到权限问题,HOME外无法成功。后续还会讲解权限管控的知识。
文件操作命令
(part 1)touch、cat、more
touch 创建文件
可以通过 touch 命令创建文件
【语法】touch Linux路径
- touch 命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
注!前面提过 ls -l 可以以列表显示文件具体信息,其中 d 开头的表示文件夹,- 开头的表示文件
cat 命令
准备好文件内容后,可以通过 cat 查看内容。
【语法】cat Linux路径
- cat 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符均可以使用
more 命令查看文件内容
more 命令同样可以查看文件内容,与 cat 不同的是:
- cat 是直接将内容全部显示出来
- more 支持翻页,如果文件内容过多,可以一页页的展示
【语法】more Linux路径
【用法】在查看过程中使用空格翻页,按 q 退出
(part 2)cp、mv、rm
cp 命令复制文件文件夹
cp 命令可以用于复制文件\文件夹,cp 命令来自英文单词:copy
【语法】cp [ -r ] 参数1 参数2
- -r 选项,可选,用于复制文件夹使用,表示递归
- 参数1,Linux路径,表示被复制的文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
mv 移动文件或文件夹
mv 命令可以用于移动文件\文件夹,mv 命令来自英文单词:move
【语法】mv 参数1 参数2
- 参数1,Linux路径,表示被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm 删除文件、文件夹
rm 命令可用于删除文件、文件夹,来自英文单词:remove
【语法】rm [ -r -f ] 参数1 参数2 ... ... 参数N
- 同 cp 命令一样, -r 选项用于删除文件夹
- -f 表示 force,强制删除(不会弹出提示确认消息)
【普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示,所以一般用户用不到 -f 选项】 - 参数1 参数2 ... ... 参数N 表示要删除的文件或文件路径,使用空格隔开
通配符
rm 命令支持通配符 *,用来做模糊匹配
- 符号 * 表示通配符,即匹配任意内容(包含空),示例:
- test *,表示匹配任何以 test 开头的内容
- * test,表示匹配任何以 test 结尾的内容
- * test *,表示匹配任何包含 test 的内容
查找命令(which、find)
which 命令
我们前面学习的Linux命令,其实他们的本体就是一个个二进制可执行程序。和Windows系统中的.exe文件,是一个意思。而我们可以通过 which 命令,查看所使用的一系列命令的程序文件存放在哪里。
【语法】which 要查找的命令
find 命令 - 按文件名查找文件
在图形化中,我们可以方便的通过系统提供的搜索功能,搜索指定的文件。同样,在Linux系统中,我们可以通过 find 命令去搜索指定文件。
【语法】find 起始路径 -name "被查找文件名"
(演示时为了拥有最大权限,切换到root用户以获得管理员权限
执行命令:su -root )
find 命令 - 按文件大小查找文件
【语法】find 起始路径 -size +|-n[kMG]
- +、- 表示大于和小于
- n 表示大小数字
- kMG 表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
grep、wc 和管道符
grep 命令
可以通过grep命令,从文件中通过关键字过滤文件行。
【语法】grep [ -n ] 关键字 文件路径
- 选项 -n,可选,表示在结果中显示匹配的行的行号
- 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用""将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
wc 命令做数量统计
可以通过wc命令统计文件的行数、单词数量等
【语法】wc [ -c -m -l -w ] 文件路径
- 选项 -c,统计bytes数量
- 选项 -m,统计字符数量
- 选项 -l,统计行数
- 选项 -w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
管道符
管道符 | 的含义是:将管道符左边命令的结果,作为右边命令的输入
例:cat itheima.txt | grep itheima
将 cat itheima.txt 的输出结果(文件内容)作为右边 grep命令的输入(被过滤文件)
echo 和重定向符号
echo 命令
可以使用echo命令在命令行内输出指定内容
【语法】echo 输出的内容
- 无需选项,只有一个参数,表示要输出的内容,
- 带有空格或\等特殊符号的复杂内容,建议使用双引号""包围
反引号`
被反引号``包围的内容,会被作为命令执行,而非普通字符
重定向符
- >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
- >>,将左侧命令的结果,追加写入到符号右侧指定的文件中
tail 命令
使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
【语法】tail [ -f -num ] Linux路径
- 参数,Linux路径,表示被追踪的文件路径
- 选项 -f,表示持续跟踪
- 选项 -num,表示查看尾部多少行,默认10行
vi 编辑器
vi \ vim 编辑器介绍
vi \ vim 是 visual interface 的简称,是 Linux 中最经典的文本编辑器。
同图形化界面中的文本编辑器一样,vi 是命令行下对文本文件进行编辑的绝佳选择。
vi \ vim 编辑器的三种工作模式
命令模式(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
【命令】vim 文件路径
- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
输入模式(Insert mode)
也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式(Last line mode)
以 : 开始,通常用于文件的保存、退出。
命令模式快捷键
.......还有其他很多命令模式快捷键