目录
//Linux与我们每个人上网都密切相关,与所有程序员都密切相关。
//操作系统分为个人桌面操作系统(如Windows和macOS)和服务器操作系统(如Linux)。
//一个完整的计算机应该包括操作系统和硬件,操作系统全称叫做操作系统软件。操作系统是用户和计算机硬件之间的桥梁,操作系统是电脑的灵魂。(操作系统调度硬件干活)
常见操作系统分为两类:PC端(Windows,macOS,Linux)和移动端(Android,iOS,HarmonyOS)。
//Linux系统由Linux内核以及系统级应用程序组成。
内核:提供最核心的功能,如调度CPU,调度内存,调度文件系统,
系统级应用程序:可以理解为出厂自带程序,如文件管理器,音乐播放器,任务管理器。
其中,Linux内核是免费开源的,内核无法被用户直接使用。
当我们下载好Linux内核,然后封装自己写的系统级应用程序之后,它就成了Linux发行版。(笔者用的是kali-Linux发行版)
//虚拟机:通过软件模拟计算机硬件,再给虚拟硬件配上真实的操作系统,就形成了一台虚拟机。
//ncpa.cpl?在cmd中运行可以打开网络适配器选项。
//操作系统的使用方式有两种:图形化和命令行(不管是Windows,macOS,Linux都一样),在Windows中人们喜欢用图形化,很少用命令行(也就是cmd命令提示符),在Linux操作系统中,因为图形化做的不是特别好,而且使用命令行形式效率高,稳定,所以在Linux操作系统中,人们更青睐命令行。
(咱也是下载了一个FinalShell,进行Linux系统的远程传输,以便Windows系统和Linux系统的文件交互,在hostbuf.com网站下载即可)老师教的是centOS发行版的连接,而我用的是kali-linux,还得用
service ssh start
service ssh status
这两个命令来先打开ssh的服务开关,总之是大费周章。。。)
//虚拟机快照技术
在我们使用虚拟机的过程中,我们可能因为某些原因导致虚拟机中的文件或者其他东西被修改或删除,这时我们可以通过虚拟机快照技术来解决。
它就相当于是一个存档,每次回档后将恢复到存档时的状态。
一般在虚拟机关机后进行快照,这样速度比较快。(可以打开快照管理器查看)
Linux的目录结构:Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。
Linux的路径描述方式:
Linux中路径的层级关系用/表示,例如 /usr/local/hello.txt
Windows中路径的层级关系用\表示,例如 D:\data\work\hello.txt
Windows中的终端叫做:cmd命令提示符
Linux中的终端叫做:命令行
Linux命令基础格式:
command [-options] [parameter] ?方括号内为可选可不选
命令本身+可选选项+可选参数(用来控制行为细节)
如:
ls -l /home/itheima
cp -r txt1 txt2
ls命令作用就是列出目录下的文件夹和文件。
语法: ls + [-a -l -h] [Linux路径]
当它的可选选项和可选参数为空时,表示以平铺形式,列出当前工作目录下的内容。
Home目录:是个人账户目录,其路径在: /home/combat(combat为我的账号名,以后出现combat即为用户名的意思)
接下来是第一个命令:
ls /home/combat 结果如下:
ls / 结果如下:(此为FinalShell终端的结果)
接下来说一说可选选项 /a /l /h
/a:就是all的意思,列出所有文件或者文件夹,包括隐藏文件/文件夹
其中,以“.”开头的表示隐藏,如:
只有通过 -a才能看到隐藏的文件或者文件夹。
/l: 将平铺的内容变为纵向的,也就是竖着的。
//Linux命令中的可选选项是可以组合使用的
/h: 以易于阅读的形式列出文件的大小 ,如KB,MB,GB
如果不加可选选项,则表示列出到当前工作目录的内容。
cd切换工作目录:
如(带参数的则切换到参数所指目录)
不带参数,直接cd的表示切换到home目录
p'wd(print work directory):查看当前工作目录
也就是告诉你当前工作目录是什么
pwd命令无参数也没有选项
相对路径与绝对路径:
绝对路径:以根目录为起点,路径描述以/开头
相对路径:以当前工作目录为起点,无需以/开头
特殊路径符:
- ..可以返回上一级目录,或者 ../ 或者cd .. 或者 cd../
- ~表示home目录 cd ~/desktop就表示切换到home目录下的desktop目录,等同于cd /home/combat/desktop
- . 表示当前目录,在home目录下,cd desktop和cd ./desktop效果是一样的。
有一个简单的曾经困扰我的问题现在已清晰明了:
在当前工作目录的上一级目录有一个test文件夹,里面有一个test.txt文件,请用从相对路径来描述这个文件的位置?
因为相对路径是从当前工作目录开始的,所以它应该表示为:
../test/test.txt。
语法:mkdir ?[-p] ?路径
//其中路径相对路径和绝对路径都可以。
-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录。
演示:
选项-p可以用来创建多个层级的文件夹,也就是可以直接创建一个目录链。演示:
//tips:在FinalShell中,ctrl+l 清屏
//tips:用ls -l 查看文件时,第一列是D开头就是文件夹,-开头就是文件
注意:创建文件夹需要“修改”这一权限,所以目前要确保操作均在home目录内,不要在home目录外操作。
涉及到权限问题,home无法成功。
touch命令:创建文件
//注意:mkdir是创建文件夹命令,touch是创建文件命令
语法:touch Linux路径 (相对路径和绝对路径都可)
cat命令:查看文件
语法:cat Linux路径(相对绝对特殊路径都可,以后也都是)
我们在Linux中用图形化界面给创建的txt文件输入一段话
然后用cat命令查看:
more命令:查看文件内容
(和cat命令有区别,more可以在文件内容较多时翻页查看)
语法:more Linux路径
我们可以查看 /etc/services中的内容,来翻页
最后有一个more(%)的标志,提示你已经查看了这个文件的多少。
空格翻页,q退出。
cp复制文件/文件夹
mv移动文件/文件夹
rm删除文件/文件夹
cp语法:
cp ?[-r] ?Linux路径1 ?Linux路径2
路径1:被复制的文件/文件夹
路径2:要复制去的地方(如果没有的话就自动创造一个)
//如果是文件之间的复制,将路径1中的内容复制到路径2中,那么路径2原先的内容就将被覆盖,不复存在。(文件夹却不是这样)
mv语法:
mv ?Linux路径1 ?Linux路径2
//cp复制之后,原文件(路径1内容)仍然存在,路径2内容被覆盖
//mv移动之后,原文件(路径1内容)不存在,路径2内容被覆盖
rm语法:
rm ?[-r ?-f] 参数1,参数2……参数n ?
(无限数量参数的命令,参数用空格隔开)
-r用于删除文件夹
-f表示强制删除
另外,rm命令支持通配符*,用来做模糊匹配
如: rm ?-r ?test* 表示删除test开头的所有文件夹,当然还可以*test
或*test*
//Linux中普通用户和root用户区别:
root用户相当于是超级管理员,拥有最高级别的系统权限,有很大的自由度。
rm是个很危险的命令,尤其是--> rm -rf / 或者 rm -rf /*
进局子的命令(扶额苦笑)
Linux命令的本体就是二进制可执行程序,也就相当于Windows中运行.exe文件。
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。
which语法: which + 命令
演示:
语法: find 起始路径 ?-name ?“被查找文件名”
起始路径:可以是 / 表示从根目录往下寻找,可以是 ~ 表示从home目录往下寻找
-name表示按照文件名查找,也可以使用通配符
语法:find 起始路径 -size ?+|-n[KMG]
+-表示大于还是小于
n表示数字
KMG表示单位 KB,MB,GB
示例:
查找小于10KB的文件: find /-size -10k
查找大于100MB的文件:find /-size +100M
查找大于1GB的文件:find /-size +1G