1. 关于linux ---- 基本的背景知识:
Linux 是一种自由和开放源代码(开源)的类UNIX操作系统。
严格意义上,Linux只是操作系统的内核,但是通常采用 “Linux内核” 来表达该意义;Linux常用来表达基于Linux的完整操作系统
操作系统是一款进行软硬件资源管理的软件
对上 | 提供高效、稳定、安全的运行环境 【目的】 |
对下 | 提供基本的管理工作,让各个硬软件工作在一个稳定、安全、高效的状态 【手段】 |
开机的本质是加载操作系统
2. 关于指令 --- 背景知识 :
软件的本身是可执行程序
1.指令的本身是程序 指令是文件 ====>>>> 指令、软件、可执行程序的本质都是文件
安装可执行程序 | 拷贝到系统路径下 |
卸载可执行程序 | 在系统路径下删除 |
2. 文件 = 文件属性 + 文件内容
文件属性:如:创建时间、类型 ... ... 文件内容 : 大小
==== >>>> 如果保存文件,保存文件 > 文件 (大小)
==== >>>> 对文件的操作 就是对 文件属性 / 文件内容 的操作 指令控制文件,编程访问文件
任何目录下都默认具有两个隐藏目录 . 和 ..
.. 在任何情况下都存在 (根目录也存在 指向上级目录(路径回退 相当于windows下的 “<-” 操作
. 找到当前目录下的文件
子目录只能隶属于一个父目录
根目录:[root@bite-alicoud/]#
不同目录下的文件名可以一样,但是它们依然是不同的文件
文件路径分隔符 | |
---|---|
Windows | \ |
Linux | / |
两个路径分隔符之间一定是文件夹,路径的最末端是 文件夹 / 普通文件
why 路径的存在 ==== why 访问任何文件之前都要先找到目标文件 :
在系统层面表示一个特定的文件 ==>> 路径必须具有唯一性
绝对路径 | 从根目录开始 |
相对路径 | .. / use / lib /text.txt .. 原来在与use同级的目录 |
Linux整个文件目录是一个多叉树
3. 重定向
Linux中,一切皆文件 ==>> 采用统一的方式进行文件访问
文件可以分为 普通文件 / 显示器 显示器设备 视作 显示器文件
对于任何文件,读 / 写文件 ==>> 向显示器打印 ==>> 向显示器文件写入
3.1 输出重定向 command > filename
更改文件的写入方向 ==>> 显示器文件 -->> 指定文件
echo "hello" > log.txt [ echo : 向显示器文件写入 ] 显示器文件 --->>> log.txt
打开 log.txt 之后,关闭
每次进行输出重定向,都会清空内容 (创建空文件),重新写入文件
==>> 在同一文件内,清空,重新写入
3.2 追加重定向 command >> filename
echo "hello" >> log.txt
在结尾处增加内容
3.3 输入重定向 command < filename
cat < log.txt : 从 log.txt 文件中读取 [ 原本从键盘文件中读取
cat log.txt 与 cat < log.txt 原理不同
4. 指令小结
4.1 ls : 罗列当前文件的路径名
如果什么都没有,当前目录下没有任何文件
ls[目录] :默认显示目录的所有内容
ls -a : 列出目录下的所有内容,包括以 . 开头的隐含目录
ls -l : 列出文件的详细信息
4.2 pwd : 查看当前Linux所处的路径
4.3 clear : 清屏
4.4 cd: 进入指定文件夹
cd .. :返回上级目录
cd /home/litao/linux : 绝对路径
cd ../day02/ : 相对路径
cd ~ : 进入用户家目录
cd - : 返回最近访问的目录
比较 : 根目录 vs 家目录
根目录 | 根目录是整个Linux文件系统的最顶层目录,它是文件系统中所有其他目录和文件的起始点。根目录是系统中所有文件和目录的父目录,它没有特定的所有者或用户。所有的文件路径都是相对于根目录的。 |
家目录 | 家目录是每个用户在系统中拥有的一个独立目录。每个用户账号在系统中都会有一个唯一的家目录,用于存储该用户的个人文件、配置文件、设置文件等。家目录一般以用户的用户名命名,并位于根目录下的 /home 目录中。 |
在Linux系统中,用户可以自由地在自己的家目录中创建、修改和删除文件,而根目录通常是由管理员维护和控制的。根目录包含了整个系统的重要文件和目录,如系统配置文件、程序文件、系统的各种库文件等。因此,一般用户不应该直接在根目录下进行操作,以避免对系统稳定性造成影响。
换言之,根目录是整个文件系统的起始点,包含了系统的重要文件和目录,而家目录是每个用户的个人目录,用户可以在其中管理自己的文件和配置。根目录在整个系统范围内起作用,而家目录是用户独有的。
4.5 touch : 在当前目录下创建一个新的普通文件
touch -a / --time=atime / --time=access / --time=use :只更改存取时间
touch -c / --no-create : 不建立任何文档
touch -d :使用指定的日期时间,而不是现在的时间
touch -f :解决bsd版本touch之力量能够不兼容问题
touch -m / --time=mtime / --time=modify :只更改变动时间
touch -r :将指定文档或目录的日期时间。全部设置成和参考文档或目录的日期时间相同
touch -t :使用指定的日期时间,而不是现在的时间
比较: touch -d vs touch -t
touch -d | 通过指定一个日期和时间来更改文件的访问和修改时间戳 其中, |
touch -t | 通过指定一个自定义的时间戳来更改文件的访问和修改时间戳 其中, |
4.6 mkdir : 在当前路径下创建一个新的文件夹
默认创建的是空目录
mkdir -p test/test1 : 递归创建多个目录
4.7 rmkdir && rm : 删除
rmdir -p [dirName] :删除空目录 [ 具有当前目录操作权限的所有使用者 ]
如果子目录删除之后父目录也变成空目录,就会连父目录一起删除
rm 可以同时删除文件或目录 [ 所有使用者 ]
rm -f :即使文件属性是只读(即:写保护),也会直接删除
rm -i :删除之前逐一询问确认
rm -r :删除目录下及其下的所有文件
* :通配符,匹配任意文档 当前目录下的所有内容
rm :普通文件, r : 递归 f :强制
rm -rf :删除文件的时候一定注意文件路径正确 【能删的全删】
4.8 man : 查找:联机手册
man -a:将联机手册的所有章节都显示出来,
手册分为8章,最常用的是 第2章, 2:系统调用,可以查到调用这个函数需要加的头文件
4.9 cp : 复制文件或目录
cp [选项] 源文件或目录(src) 目标文件或目录(dst)
【目标文件或目录需要存在】 if not,报错
4.10 mv : 移动文件 / 将文件改名
mv [选项] 源文件或目录 目标文件或目录
常见选项:
-f :如果目标文件已经存在,不会询问,直接覆盖
-i :如果目标文件存在,询问是否覆盖
4.11 cat : 查看目标文件的内容
显示器写入123,=》写入1 2 3字符,不是数字123
cat 默认写入显示器文件。输入的信息原样显示。默认是从键盘读取数据
cat 不利于查看大文件
cat [选项] [文件]
常见选项:
-b :对非空输出行编号
-n :对输出的所有行编号
-s :不输出多行空行
4.12 more : 类似cat,打满一屏,让 用户下翻阅读
more [选项] [文件]
4.13 less : 查看大文本 --> 查看日志 (运行信息)
less [参数] 文件
less 与 more相似,但是less可以随意浏览文件,但是more仅能向前移动,不能向后移动 而且less在查看之前不会加载整个文件
4.14 head : 默认打印相应文件的开头前10行
head -数字 [文件] 显示指定文件的前 数字 行
如: head -5 log.txt 显示 log.txt 的前5行
4.15 tail : 显示指定文件末尾内容,未指定文件的时候,作为输入信息处理 --> 查看日志文件
语法与head相似
4.16 date : 时间相关
date +%Y:%m:%d
Unix时间戳:1970年1月1日(GMT的午夜)开始所经过的秒数,不计算闰秒
==>> 东八区:since 8 a.m. ( 国内的云服务器加上了时差 )
4.17 cal :显示公历的日历
cal [参数] [月份] [年份]
如果只有一个参数 ==>> 年份 如果有两个参数 ==>> 第一个月份,第二个年份
常用选项:
-3 :显示当前月的前一个月、当前月、当前月的下一个月 三个月的月历
-j :显示在当前年的第几天
-y :显示当前年份的日历
4.18 find : 查找文件并做出相应处理
find pathname -options
-name :按照文件名查找
如:find / -name test.c 注 /:从 根目录开始
==>> 以绝对路径显示所有的test.c find真正在系统的树形结构查找(慢)
*.c :所有的.c文件
4.19 grep : 在文件中搜索指定字符串,并且打印符合条件的行
grep 只针对文本文件
grep [选项] 查找的字符串 文件
-i :忽略大小写的不同
-n :输出行号
-v : 反向操作:显示不含有查找的字符串的行
比较:广义上的Linux操作系统 vs 狭义上的Linux操作系统
广义上的Linux操作系统 | 狭义上的Linux操作系统 |
Linux内核、命令行界面和图形用户界面、多种文件系统、软件包管理器、开源软件支持、多用户和多任务支持 | Linux内核 |
4.20 zip / unzip : zip : 将目录或文件压缩成zip 格式
zip :压缩文件或目录
-r :递归处理,将指定目录下的所有文件和子目录一起压缩
4.21 tar : 打包 / 解包,,不打开直接查看内容
4.22 bc : 进行浮点运算
4.23 uname -r : 获取电脑和操作系统的相关信息
uname可以显示Linux主机所用的操作系统的版本、硬件的名称等基本信息
uname [选项]
常用:-a / -all :详细输出所有信息,依次是:内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称