目录
🎈.Linux操作系统知识
Linux的特点:免费、安全、开源
🎓操作系统是什么?
操作系统是一款软硬件管理的软件
当硬件发展更好,需要软件来支撑,内存容量和键盘和鼠标功能等等这些都是需要在软件和硬件中出现一个设备驱动
比如:硬件鼠标是如何再屏幕中动起来,需要设备驱动去让鼠标驱动,需要usb接口插入电脑上,之后才会移动(其实是设备驱动程序在后台进行)
操作系统主要做管理和决策的任务,真正的硬件是用来利用的,而设备驱动是让硬件操作起来。
例如:老板是操作系统,设备驱动是项目经理,程序员是相当于硬件,老板是做软硬件资源管理的,项目经理是驱动程序序干什么做什么,程序员能写代码,项目经理是给他任务来完成。
总结:操作系统,设备驱动,硬件是软硬件服务
硬件是办事的,设备驱动是催着办事人办事,操作系统是知道该干什么事
应用软件是在操作系统之上的
🎓操作系统的衡量指标:
稳定,高效,安全
🎓为什么要有操作系统:
操作系统的核心工作:通过对下管理好软硬件资源的手段,达到对上提供良好(稳定,快速,安全)的操作/使用环境
🎓理解操作系统在计算机中所有的操作
printf--->显示器打印
文件---->磁盘文件中写入
玩游戏----->像网络中发送数据
我们在计算机上的所有行为都会转化成为硬件行为
我们所有的软件行为,全部都是自定向下贯穿计算机软硬件结构
👉👉所以操作系统非常重要
🎈Linux常用命令大全
🤗简单描述重要的几个指令:
🎓ls 指令
- 语法: ls [选项][目录或文件]
- 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
ls指令是显示当前(并不是所有目录下的文件)目录下的所有文件列表
除了ls指令的功能,(ls -字母) 表示ls指令的子功能
🎓mkdir指令
- 语法:mkdir [选项] dirname...
- 功能:在当前目录下创建一个名为 “dirname”的目录
建立clizyf文件-------mkdir cllizyf (mkdir是指令,cllizyf是所创建的文件夹,中间有空格隔开)
🎓pwd命令
- 语法: pwd
- 功能:显示用户当前所在的目录
windows图形化界面处于以上的位置就相当于在windows下所在的当前目录路径
🎓cd指令
change dir更改目录
这里的功能是cd指令进入目录中,然后pwd可以观察到已经进入目录下了
🎓touch指令
相当于在windows中新建一个文本文件.txt
mkdir 创建文件和目录, touch 创建文本文档 , ls 显示所有文件名属性
🤗详细描述携带选项的指令
👩💻ls -l(ll)
在windows系统中一个文件夹里面新建一个文本文件,里面什么都不写,要不要占据磁盘空间呢?
文件的属性是数据吗?也是数据,是数据要存储吗?也要存储
文件----文件内容+文件的属性(文件名,文件修改日期,文件空间,文件创建人)
文件的操作=对文件内容的操作+对文件属性的操作
- (ls)只显示文件名属性
- (ls -l)显示更多的文件属性,包括(文件创建时间,文件名。。。。)所以(ls -l)显示的是文件属性内容
- 在windows显示下,文件里显示的名称,修改日期,大小
- 在Linux中是利用ls -l来显示文件属性(列出文件的详细属性(文件时间,文件名,文件路径)简写成ll)
👩💻ls-d
将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
👩💻ls-a
列出目录下的所有文件,包括以 . 开头的隐含文件。
ls -l显示的是目录下的文件,但是不能看到隐含的文件(即以.开头的文件)
ls -a就可以看到目录下的所有文件名属性,包括.开头的隐含文件
适用于对于有些文件不进行公开,可以mkdir一个以.开头的文件,就可以隐藏,想看到隐藏文件就需要用ls -a来表示
当然windows中也有隐藏文件和公开文件,ls -a就是这样情况
👩💻ls -la
既可以看到文件名,还可以看到文件的其他属性即可
👩💻-l和-a总结:
ls可以看到公开文件名属性,ls -a既可以看到公开也可以看到隐藏文件名属性
ls -l可以看到公开文件更多文件属性,ls -la既可以看到公开也可以看到隐藏文件更多属性
👩💻ls -F
在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-a显示隐藏文件,ls -l显示文件的所有属性,-f表示各种文件带符号来显示属于什么类型
💻cd
💻cd..和cd.
我们可以看到 总会有 .和..,这是为什么呢?
Linux任何一个目录下面都有俩个隐藏目录( . 和 ..)
💻cd ..
cd ..表示当前路径的上级路径,可以退回上一个文件路径
windows中的回退符号就是Linux中的 ..,退到(/)后就无法再继续退了
💻cd .
cd .表示当时路径
前面加(.)能告诉Linux我要执行该路径下的可执行程序文件
(.)存在的意义:帮助用户定位当前目录下的一个文件
💻cd~家用户
cd ~:进入用户家目
超级用户root,其他(普通用户)
centos系统中,所有的普通用户,用户账号都会统一放在/home
超级用户是(/root),普通用户就是(用户名)
超级用户whoami是(root),普通用户就是(/home/用户名)
windows系统中c盘中用户点进去就是自己的家目录
💻cd -
cd -:返回最近访问目录
💡Linux的多叉树结构
一个目录,里面可以放目录或者普通文件吗?
答:可以的,Linux整个目录结构:一定是个多叉树结构
Linux的目录结构:多叉树
它的叶子结点,一定是空目录或者非目录结构,路上的节点一定是非空目录
💡(cd..)应用
我们定位一个文件,通常是用路径来进行定位。
💻为什么呢?
路径定位:唯一性。
💻为什么有唯一性?
一个结点可能有多个子结点,但是任何一个结点一定只有一个父结点(儿子只有一个父亲,父亲可能有多个儿子)
💡相对路径和绝对路径
- 我们把从根目录(/)开始定位到指定位置,具有唯一性的路径,称之为绝对路径
- 我们以自己当前所处的路径为起始参照位置,来进行特定文件的定位,称之为相对路径
💡绝对路径
绝对路径的过程:从根目录(/)开始定位到指定位置
💡相对路径
相对路径的过程:(cd ..)返回上一个路径,然后进行绝对路径(从根目录开始往下)
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
📖mkdir(创建目录)
创建一个目录
怎么样能递归式的创建目录呢?
显然是不能创建的,所以引申出 指令选项 即可完成
📖tree(展示创建内容)
- yum install -y tree root用户需要用这个来创建tree
- sudo yum -y install tree 普通用户需要用这个创建tree
作用:能清晰的看到创建 目录和文件以及目录里包含的子目录
📖mkdir -p(建立子目录)
mkdir –p test/test1 : 递归建立多个目录
📝rmdir和rm指令
📝rmdir(删除目录)
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
当目录中含有子目录,rmdir能否删除呢?
显然rmdir是不可以做到的。
📝rm(删除)
rm命令可以同时删除文件或目录(只是删除目需要携带选项)
📝rm -f(强制删除)
f-force强迫 表示不用问是否删除,就直接删除(强制删除)
📝rm -r(删除目录)
-r 表示能删除目录,因为rm的功能是删除文件,加个-r选项就可以删除目录
-r是可以解决这个问题
如果一个目录里面有很多很多的子目录,想要删除,一个一个的yes回答,太过麻烦,该如何处理呢?
📝rm -rf(递归并强制删除)
-rf 删除目录以及目录里的子目录(递归并强制删除)
👉(*)号通配符概念
(*)号携带,就是要显示所有配的文件,如果想要删除所有可执行文件,直接(rm * -rf)
🌈cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
一个文件拷贝到另一个文件中,拷贝过去了但是不知道内容是不是对的,那么就得在一个文件中写入一些东西,那么就引申入了echo
🌈相同路径相同目录(NO)
常识:同一个目录下,不能存在同名文件的
同一目录下源文件和目标文件是不能相同名字的
🌈不同路径相同目录拷贝
再不同路径下的相同名字目录是可以拷贝的 (../)上级路径
🌈目录拷贝(NO)
不能直接拷贝目录到另一个目录中去
那怎么将目录拷贝?
🌈cp -r
-r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
🌈cp-i
-i 或 --interactive 覆盖文件之前先询问用户
🌈cp -f
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
🌈cp -if或者-fi
从这可以看出,当i 和 f放在一起的时候,还是问,说命放在一起的时候,i的优先级比f的高,加上-i选项都是需要询问用户是否复制
🔑echo
echo是将自己输入的内容原封不动的显示出来
🗝️cat
cat 是打印文件里的内容
如果cat后面什么都没有,默认从键盘读入数据
大家肯定对echo "i love zyf" > test.txt内容感到疑惑,那么就往下就看到三大重定向,就可以完全理解这个内容
🔐echo和cat的区别
echo 后面不管是什么,它都原封不动的显示出来
cat是打印文件里面的内容,后面必须跟文件名
📚三大重定向
📚输出重定向
格式: echo 内容 > 文件名
本质: 本来显示到显示器的内容,最终写到磁盘文件中去了
说明:echo指令默认把字符串写到文件中,(把本来应该显示在显示器的文件中,最终写到了磁盘文件中。-----重定向)(>)符号的作用
特点:向目标文件写入的时候,覆盖写入,1.清空文件 2.写入新内容
上一段是先写了"i love zyf"写入test.txt文件中,之后写入"zyf"写入test.txt中,但是打印test.txt内容的时候只显示zyf,说明它经历了俩个步骤(清空文件内容,写入文件内容-------输出重定向的特点)
特点(步骤): 1.清空文件内容,2.写入文件内容
📚ps: touch替换(>)
输出重定向是大于符号,自动创建一个空的文件,哪怕前面什么都不写,不一定非得写touch
📚追加重定向
格式: echo 内容 >> 文件名
本质: 与追加重定向的特点相反------保留原来的文件内容 (>>)
📚 输入重定向
格式: cat < 文件名
本质:本来应该从键盘文件中读取,现在不用从键盘中读取,从指定的文件读取
📚重定向总结
输出重定向:把本来应该显示在显示器的文件中,最终写到了磁盘文件中 (>)
特点: 向目标文件写入的时候,覆盖写入 1.清空文件 2.写入新内容
追加重定向:保留原来的文件内容,继续输入内容 (>>)
输入重定向: 本来从显示器读,现在是显示指定文件里所有的内容 (<)
✏️mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
✏️更改文件名:
✏️剪切
mv将当前目录文件mv到上一路径的,然后该目录没有这一文件了
✏️既重命名又剪切
✏️同一目录下剪切和重命名
实际上就是将test.txt文件里内容拷贝到mytest.txt中,然后剪切,然后更名,实际上经历了剪切过程
mv 文件名/目录 不同路径/文件名/目录 -------剪切
mv 文件名/目录 文件名/目录 -------重命名
mv 文件名/目录 同一路径/文件名/目录 ----剪切又改名
📑cat指令
cat 是打印文件里的内容,如果cat后面什么都没有,默认从键盘读入数据
📑cat -n
cat -n 给输出内容进行编号
📑cat -b
cat -b 对非空输出行编号
📑cat -s
cat -s 不输出多行空行,给多行空格转化为一行
cat不适合看大文本,适合小文本
🚩大文本打印
打印10000 --'i love zyf' 语法
🚩more指令
自定向下的占一个屏幕,然后按回车键就下翻(只能下翻),如果要对指定的文件查看 more -500 文件名,即可看到
🚩less指令
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且less在查看之前不会加载整个文件,可以对大文本的上翻和下翻
🚩/数字
向下搜索到编号所对应的内容
🚩?数字
向上搜索到编号所对应的内容
🥇head指令
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
🥇head -n
输出n行数据(n<=10)
🥇tail 指令
tail 默认 用来从末尾开始倒数第10个
🥇tail -n
✔️管道文件(|)
(|) 一种符号,后面会被“系统”解释成为管道文件(不用建立临时文件,不会再磁盘中存在)内存级
将左侧程序输出交给管道文件,然后右侧程序再从管道读到自己的程序中
先从左边截取1000个,输出交给管道文件,然后右边截取从管道中读取后到前的20个
✔️wc -l
是统计文本的行数
听闻不如经历,向往不如出发。