01
计算机启动顺序:启动页面,启动操作系统,启动其他软件
02
操作系统的核心:内核。内核并不等于操作系统。内核提供系统副武,比如文件管理,虚拟内存,设备I/O。除内核以外,在应用软件和内核之间通常还有些作为中间件的API,可以供应程序调用;还包含一些基本的程序,例如文本编辑器,编译器,外壳程序(Shell,如常用的Bash)
03
1.Linux是免费的,相比Windows和MacOS的最大优势之一
2.Linux有2种不同的使用方式:命令行界面和图形界面
3.命令行界面功能强大,有一定难度,新手一般从图形界面入手
4.图形界面有不同的变体,称之为桌面管理器,常用的有Gnome,KED,Unity,XFCE等
5.获得Ubuntu系统比较简答,只需要下载.iso文件(磁盘镜像)。
(1)用硬盘安装,需要把文件烧写/刻录到光盘或者U盘。
(2)采用虚拟机的方式来安装Ubuntu,则不用刻录
04
安装Ubuntu必要步骤:磁盘分区
05 虚拟机安装Ubuntu
虚拟机软件:VirtualBox
建议安装增强功能
设置共享文件夹,共享剪贴板
07终端及其两种模式
1.控制台:只能通过键盘输入,没有图形界面
2.图形界面的终端:可以配置外观,使用鼠标
08命令行命令参数
1.命令行提示符
shiyanlou:~/$
~:当前所在目录的名字,/ 是linux的根目录
$:表示普通用户,有权限设置
#:超级用户,root
sudo su
sudo su :切换用户身份为root
退出root:快捷键:Ctrl+D,或使用EXIT命令
whoami
hostname
whoami:获取用户名
hostname:获取主机名
2.命令及命令参数
date:获取当前日期
ls:list的缩写,列出当前目录下的文件和目录
ls -a:a是all的缩写,列出当前目录下所有文件,包括隐藏文件
短参数(一个字母)
command -p
command -p -a -T -c
command -paTc
长参数(多个字母)
command --parameter1 --parameter1
参数的值
有一些参数需要赋值才可以,短参和长参赋值方式不同
eg:p参数赋值为10
command -p 10
command --parameter=10
09查找命令及历史记录
Tab的妙用
命令或路径名不完整输入时,按下Tab可补全命令。如果或选项太多,终端将会提示是否显示所有候选项。如果按下Tab键没有反映,则不存在当前命令或路径。
空格键:用于跳到下一页
回车键:用于跳到下一行
q:用于退出列表
命令的历史记录
向上键:按时间顺序向前查找用过的命令
向下键:按时间顺序向后查找用过的命令
Ctrl+R:用于查找使用过的命令
history:用于列出之前使用过的所用命令
!+序号 :则会再次运行序号所对应的命令
快捷键
Ctrl+L:清楚终端的内容,清屏。clear命令也可实现此效果
Ctrl+D:给终端传递EOF文件结束符(END Of File)
shift+PgUp:向上滚屏
shift+PgDn:向下滚屏
Ctrl+A:光标跳到一行命令的开头。home键具有相同效果
Ctrl+E:光标跳到一行命令的结尾。End键具有相同效果
Ctrl+U:删除所有在光标左侧的命令字符
Ctrl+K:删除所有在光标右侧的命令字符
Ctrl+W:删除所有在光标左侧的一个"单词"。单词是指用空格隔开的一个字符串。
Ctrl+Y:用于粘贴Ctrl+U,Ctrl+K,Ctrl+W删除的字符串。有点像“剪切-粘贴”
Windows根目录:C:
Linux根目录:/
Windows目录j结构:C:\Program Files\Baidu
Linux根目录:/usr/bin
目录介绍
bin:英语 binary 的缩写,表示“二进制文件”(我们知道可执行文件是二进制的)。包含了会被所有用户使用的可执行程序;
boot:英语 boot 表示“启动”,包含与 Linux 启动密切相关的文件;
dev:英语 device 的缩写,表示“设备”,包含外设。它里面的子目录,每一个对应一个外设。比如代表我们的光盘驱动器的文件就会出现在这个目录下面;
etc:etc 有点不能顾名思义了。因为 etc 是法语 et cetera 的缩写,翻成英语就是“and so on”,表示“…等等”,包含系统的配置文件。至于为什么在 /etc 下面存放配置文件, 按照原始的 Unix 说法(Linux 文件结构参考 Unix 的教学实现 MINIX),这下面放的都是一堆零零碎碎的东西, 就叫 etc 好了。哈哈 ,这其实是个历史遗留;
home:英语 home 表示“家”,用户的私人目录。之前我们提过一些,在这个目录中,我们放置私人的文件,有点类似 Windows 中的 Documents 这个文件夹,也叫“我的文档”。Linux 中的每个用户(除了大管家用户,也就是超级用户 root 外。root 因为太厉害,拥有所有权限,所以比较“任性”,跟普通用户不住在一起)都在 home 目录下有自己的一个私人目录。比如我的用户名是 oscar,那么我的私人目录就是 /home/oscar;如果另一个用户叫 john,那么他的私人目录就是 /home/john;
lib:英语 library 的缩写,表示“库”,包含被程序所调用的库文件。例如 .so 结尾的文件,在 Windows 下这样的库文件是以 .dll 结尾的;
media:英语 media 表示“媒体”。当一个可移动的外设(比如 USB 盘、SD 卡、DVD、光盘等等)插入电脑时,Linux 就可以让我们通过 media 的子目录来访问这些外设中的内容。
mnt:英语 mount 的缩写,表示“挂载”。有点类似 media,但一般用于临时挂载一些装置;
opt:英语 optional application software package 的缩写,表示“可选的应用软件包”,用于安装多数第三方软件和插件;
root:英语“根”的意思。超级用户 root 的家目录/主目录。一般用户的家目录是位于 /home 下,不过 root 用户是个例外。之前的课程我们也提到过,root 是整个系统的超级用户,拥有一切权限,初学者请慎用此用户模式;
sbin:英语 system binary 的缩写,表示“系统二进制文件”。比起 bin 目录多了一个前缀 system,所以包含的是系统级的重要可执行程序;
srv:英语 service的缩写,表示“服务”。包含一些网络服务启动之后所需要取用的数据;
tmp:英语 temporary 的缩写,表示“临时的”。普通用户和程序存放临时文件的地方;
usr:英语 Unix Software Resource 的缩写,表示“Unix 操作系统软件资源”(也是个历史遗留的命名)。这个目录是最庞大的目录之一。有点类似 Windows 中的 C:\Windows 和 C:\Program Files 这两个文件夹的集合。在这里面安装了大部分用户要调用的程序;
var:英语 variable 的缩写,表示“动态的,可变的”。通常包含程序的数据,比如一些 log(日志)文件,记录电脑中发生了什么事。
pwd:显示当前目录的路径(Print Working Directory)
which:获取命令的可执行文件的位置
ls:列出文件和目录
cd:切换目录
du:显示目录包含的文件大小
Linux的终端是有颜色标注的
蓝色:目录
绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件
灰色:其他文件
若没有文件颜色标注,可加上参数 --color =auto 来开启颜色标注
关闭颜色标注: 可加上参数 --color =none
ls:列出文件和目录
参数 | 说明 |
---|---|
ls -a | 显示所有文件的目录,包括隐藏的 |
ls -A | 不列出.和…这两个文件 |
ls-l | 详细参数 |
ls-lh | 以Ko,Mo,Go的形式显示文件大小。h:human-readable;Ko:千字节。 |
ls -lt | 按文件最近一次修改时间排序 |
注:使用ls -l时,列出的文件详细信息中,文件的大小是以字节为单位的。 ls -lh 可变更形式
ls常用参数可一起使用
-a
-l
参数详解:
1,文件权限:第一列的 drwxr-xr-x 之类的。暂时不需要理解,我们之后会用单独的一课来学习 Linux 下的文件权限;
2,链接的数目:第二列的 1,2 之类的。暂时不需要理解,之后的课也会解释;
3.文件所有者的名称:第三列的 oscar 或 root,表示这个文件或目录的所有者是哪个用户。如果此文件是属于另一个用户,比如说 john,那么文件所有者就会显示 john 了;
4.文件所在的群组:第四列的 oscar 或 root,表示这个文件或目录的是属于哪个群组。关于群组,我们暂时不需要理解,之后在文件权限的那一课会讲解;
5.文件大小:第五列的 4096 或 640 等等。单位是 octet,也就是 byte,是英语“字节”的意思。比如 share 那个目录的大小是 640 个字节。这里列出的文件都是目录,因此这些大小并没有显示目录中所有文件的总大小;
6.最近一次修改的时间:第六列。比如 share 那个目录的最近一次修改时间是 Jul 12 2018,也就是 2018 年 7 月 12 日。因为 share 目录是宿主机(我的情况是我的 macOS)上的共享文件夹;
7.文件或目录的名称:第七列。
-lh
cd命令:切换目录
cd(change directoty)
cd+目录路径
命令 | 含义 |
---|---|
cd…(两个点) | 返回上一级目录 |
cd…/… | 连续后退2个层级 |
cd~,cd,cd/home/用户名 | 返回根目录 |
Tab:可用于补全路径名(文件名)
du命令:显示目录包含的文件大小
du:disk usage 的缩写
其实du命令,如果不用参数来运行,会显示当前目录的磁盘占用,以block(块)为单位。如果没有设置BLOCKSIZE(块的大小)这个环境变量,并且也没有用-k参数(以块大小为1024字节,也就是每块大小1KB来显示),那么就会以块大小512byte(即0.5KB)来显示
参数 | 说明 |
---|---|
du -h | 以Ko,Mo,Go的形式显示文件大小 |
du -ah | 显示文件的目录大小,a:all |
de -sh | 只显示总计大小,s:summarize |
注:Ko,Mo,Go即KB,MB,GB。o是法语中字节octet的缩写
文件操作:显示文件内容,拷贝文件,移动文件,删除文件等。
cat命令和less命令:显示文件内容(不能对文件内容进行修改 )
cat:一次性显示文件的所有内容(concatenate files and print on the standard output)
用法:
cat + 想要显示的文件路径
cat -n +想要显示的文件路径 :用来在显示内容上加上行号
cat命令后面可以接不止一个文件,可以将其一并输出
less命令:分页显示文件内容
用法:less+想要显示的文件路径
好处:会先读入文件开始的若干行,然后暂停。读取行数取决于终端屏幕的大小。我们可以渐进读文件的内容
less命令中常用的快捷键
快捷键 | 说明 |
---|---|
空格键 | 下一页,=PageDown |
b键 | 上一页,=PageUp |
d键 | 前进半页 |
u键 | 后退半页 |
回车键 | 读取下一行 |
y键 | 后退一行 |
q键 | 停止读取文件,终止less命令 |
注:Linux 区分大小写
less中略微高级一些的快捷键
快捷键 | 说明 |
---|---|
= | 显示你在文件的什么位置(显示当前页面的内容是文件的第几行到第几行,整个文件所含行数,所含字符数,整个文件所含字符) |
h键 | 显示帮助文档,q键可退出 |
/ | 进入搜索模式只要在斜杠后输入要搜索的文字,按下回车即可显示。可用正则表达式来匹配 |
n键 | 跳到下一个符合的搜索结果 |
N键 | 跳到下一个符合的搜索结果 |
head命令和tail命令:显示文件的开头和结尾
head +想要显示的文件路径
head默认显示文件的前10行
可用 -n +数字 :指定显示的行数
tail命令:显示文件的开头和结尾
tail+想要显示的文件路径
tail默认显示文件的最后10行
可用 -n +数字 :指定显示的行数
tail -f 文件路径 #可用来实时追踪文件的跟新,如果有跟新,就显示新增内容
Ctrl c 用来终止tail -f命令
-s 参数 可用来指定间隔检查的秒数
tail -f -s 4 文件路径 #每隔4秒检查一次
touch命令和mkdir命令:创建文件和目录
touch:创建文件
用法:touch +文件名/文件路径。可一次创建多个
mkdir:创建一个目录。(make directory)
用法:mkdir+目录地址。可同时创建多个
mkdir -p one/two/three #-p参数用来递归地创建目录结构
#先创建one目录,在one中创建two目录,再在two目录中创建three目录
cp命令和mv命令:拷贝文件和移动文件
rm命令:删除文件和目录
ln命令:创建链接
cp命令:拷贝文件或目录,copy的缩写,可拷贝多个文件
cp new_file new file1
new_file :需要拷贝的文件
new_file1:拷贝后的新文件
cp new_file one/
把new_file文件拷贝到one目录下
cp new_file one/new_file1
把new_file 文件拷贝到one目录下 同时命名为new_file1
cp -r或-R:拷贝的时候,目录下的所有内容都会被拷贝
r:recursive递归地
cp -r 预拷贝目录 拷贝目标目录名
即可将 预拷贝目录 全部 拷贝 目标目录
使用通配符
*:替换任意字符串
cp *.txt folder
会把当前目录下的所有txt文件拷贝到folder这个目录下
cp ha* folder
会把当前目录下的所有以ha开头文件拷贝到folder这个目录下
mv命令:移动文件
mv:move 移动 。可移动文件或目录;重命名文件或目录
mv:单纯的移动,相当于 剪贴+粘贴
mv new_file two
即把new_file文件移到two目录中
也可以使用通配符*
重命名
经过移动 原始文件变成了新的名字的文件,文件内容不变,相当于重命名
mv new_file renew_file
rm命令:删除文件和目录
rm:remove 终端没有回收站或垃圾箱,删除文件难以恢复
可以删除一个文件,多个文件,甚至于整理Linux系统
rm new_file #删除new_file文件
rm file1 file2 #删除多个文件
-i 参数:询问是否删除
i:inform,两种回答
y:是
n:否
rm -i renamed_file
rm -f file
-r 参数:递归删除
rm -f filename
**
**
rm -rf 会删除整个Linux系统,连同挂载的系统
rm -rf/* 需要root权限
rm -rf/
#分解
-r:递归删除
-f:强制删除
/:系统的根目录
*
连起来可以删除根目录下所有文件
破除Ubuntu系统的保护删除命令
sudo rm -rf --no -preserve-root
也可以
cd/
sudo rm -rf
ln命令:创建链接
ln:link,用于在文件中创建链接(快捷方式)
Linux的2种链接类型
文件3部分:文件名,权限,文件内容
创建硬链接:使链接的两个文件共享同样的文件内容
一旦文件1,文件2之间有了硬链接,修改文件或文件2都是一块内容
硬链接缺陷:
只能创建指向文件的硬链接,不能创建指向目录的硬链接。但软链接可以指向文件或目录
cd
mkdir test #创建一个名为test的目录
touch file1
ln file1 file2 #创建一个文件file2使之称为file1的硬链接
ls -l #详细参数
ls -i #显示文件的inode
硬链接的删除:
删除任意一方,共同指向的文件内容并不会从硬盘上删除
只有都删除,文件才消失
创建软链接:类似于快捷方式
ln -s file1 file2
file3 蓝色字体 是链接文件,文件内容不同于file1
软链接的删除:一旦删除file1 ,file3就会变成死链接
sudo命令:以root身份运行命令
sudo:substitute user do (替代用户做)
要运行只有root才可以运行的命令时,可以在此命令前加上 sudo。终端会提醒输入密码,输入之后即可执行
sudo command
sudo su 命令:一直成为root
sudo su
exit/Ctrl+d:可以退出root模式
在Ubuntu以外的其他Linux发行版的命令格式
sudo su- / sudo -i
不仅可以切换root,还可以直接定位到root的家目录
adduser命令:添加新用户
adduser 新用户名 #需要root用户才可以添加
passwd 用户名 #修改当前密码
deluser :删除用户
deluser 用户名 #删除用户 ,系统不会询问是否删除,而直接删除了
只是用deluser命令,只会删除用户,不会删除在/home目录中的用户家目录
deluser --remove-home 用户名 连通此用户的家目录一并删除
rm -rf/home/用户名 #手动删除用户的家目录
群组:Linux中的每一个用户都属于一个特定的群组
如果不设置群组,默认创建一个和它的用户名一样的群组,并把用户划归到这个群组。