最近在学Linux操作系统,整理下内容,方便以后学习及巩固
一、基础知识
1.操作系统的定义及作用
定义:操作系统是直接在计算机上运行的软件,它是控制硬件和支持软件运行的计算机程序。
作用:向下控制硬件,向上支持软件的运行,具有承上启下的作用。
2.虚拟机
(1)虚拟机软件:它是能够虚拟出来计算机的一种软件,常用虚拟机软件有VMware,VirtualBox。只有安装了虚拟机软件才可以创建虚拟机,通过虚拟机软件可以创建多个虚拟机。
(2)虚拟机:就是模拟一个真实的计算机,好比一个虚拟的电脑,想要快速学习一个新的操作系统可以通过虚拟机来完成。虚拟机之间是相互独立的,删除虚拟机不会对其他虚拟机产生影响,当然也不会对电脑本身产生影响。
(3)虚拟机软件的安装说明:Windows和Linux下载VMware Workstation版的安装包,mac OS下载VMware Fusion版的安装包。
小结:操作系统⊆虚拟机⊆虚拟机软件。
3.Ubuntu操作系统
(1)Ubuntu操作系统属于Linux操作系统中的一种。
(2)Ubuntu操作系统窗口菜单条会隐藏,鼠标移动上去会显示;Windows操作系统的窗口菜单条不会隐藏。
(3)Ubuntu操作系统没有多个盘符,只有一个根目录;Windows操作系统可能有多个盘符。
(4)Ubuntu操作系统比Windows操作系统运行更加稳定。
4.Linux内核及发行版
(1)Linux内核是操作系统内部操作和控制硬件设备的核心程序,它是由芬兰人林纳斯开发的。真正操作和控制硬件是由内核完成的,操作系统是基于内核开发出来的。
(2)Linux发行版是Linux内核与各种常用软件的组合产品,通俗来说就是Linux操作系统。常用的Linux发行版有:Ubuntu,CentOS,Redhat。
二、基础命令
1.查看目录命令
ls
查看当前目录信息
tree
以树状方式显示目录信息
pwd
查看当前目录路径
clear
清除终端内容
小结:ls
只能查看一层目录信息,tree
可以查看多层目录信息。
2.切换目录命令
cd 目录
切换到指定目录
cd ~
切换到当前用户的主目录
cd ..
切换到上一级目录
cd .
切换到当前目录
cd -
切换到上一次目录
cd ../..
切换到上上一级目录
小结:cd命令是完成目录切换操作的,当切换目录时,这个目录必须存在。
3.绝对路径和相对路径
绝对路径:从根目录算起的路径,例如
/home/KrySt4l/Desktop
相对路径:从当前目录算起的路径,例如
./snap/snap-store
../snap/snap-store
自动补全:
(1)当敲出文件或者目录或者命令的前几个字母之后,按下tab
键,如果输入的没有歧义,系统会自动补全。
(2)当切换目录或者使用命令的时候,如果不确定当前目录下有哪些子目录或者其他命令,可以通过两次tab
键查看。
小结:绝对路径和相对路径是路径的两种表现形式,应遵循最短路径原则。如果切换的目录离根目录和当前目录一样近那么使用绝对路径,这样表示路径更清楚明确。
4.创建、删除文件及目录命令的使用
touch 文件名
创建指定文件
mkdir 文件名
创建目录(文件夹)
rm 文件名或者目录名
删除指定文件或目录
rmdir 目录名
删除空目录
rm -r 文件名
以递归的方式删除文件及内容
5.复制、移动文件及目录命令的使用
cp
拷贝文件、拷贝目录
常见用法:cp 文件名 文件名
cp 文件名 目录名
cp -r 目录名 目录名
mv
移动文件、移动目录、重命名
常见用法:mv 文件名/目录名 文件名/目录名
6.终端命令格式说明
command [-options] [parameter]
(1)command:命令名,比如ls
pwd
。
(2)[-options]
:选项,比如-r
,可以有0个、1个或者多个选项,多个选项可以合并,选项可以分为短选项(-
后面接单个字母,比如-r
)和长选项(--
后面接单词,比如--help
)。
(3)[parameter]
:参数,一般为文件名或者目录名,可以有0个、1个或者多个参数。
小结:对于命令,它的选项和参数一般情况下没有顺序要求,但是scp
命令必须是先写选项然后再跟上参数。
7.查看命令帮助方式
--help
使用说明:命令 --help
man
使用说明:man 命令
man
命令的说明:
空格/f
:显示下一屏信息
回车
:显示下一行信息
b
:显示上一屏信息
q
:退出
8.ls
命令选项说明
-l
以列表方式显示
-h
以大小单位显示,默认是字节
-a
显示隐藏文件和隐藏目录
9.mkdir
和rm
命令选项
(1)mkdir
命令选项
-p
创建所依赖的文件夹
(2)rm
命令选项
-i
交互式提示
-r
递归删除目录及其内容
-f
强制删除,忽略不存在的文件,无需提示
-d
删除空目录
10.cp
和mv
命令选项
(1)cp
命令选项
-i
交互式提示
-r
递归拷贝目录及其内容
-v
显示拷贝后的路径描述
-a
保留文件的原有权限
(2)mv
命令选项
-i
交互式提示
-v
显示移动后的路径描述
三、高级命令
1.重定向命令
(1)介绍:重定向也称为输出重定向,把在终端执行命令的结果保存在目标文件。
(2)重定向命令的使用
>
:如果文件存在会覆盖原有文件内容,相当于文件操作中的w
模式。
>>
:如果文件存在会追加写入文件末尾,相当于文件操作中的a
模式。
(3)说明:只要在终端能显示信息的命令都可以使用重定向,比如ls
、tree
。
2.查看文件内容命令
(1)查看文件内容命令的使用
cat
查看小型文件
more
分屏查看大型文件
说明:cat
命令结合重定向可以完成多个文件的合并,gedit
文件编辑命令可以查看和编辑文件。
操作键说明:
空格/f
:显示下一屏信息
回车
:显示下一行信息
b
:显示上一屏信息
q
:退出
(2)管道(|)命令的使用
管道(|):一个命令的输出可以通过管道作为另一个命令的输入,可以理解为一个容器,存放在终端显示的内容。一般结合more
命令使用,主要是分屏查看终端显示内容。
3.链接命令
(1)链接命令的介绍:链接命令是创建链接文件,链接文件分为软链接和硬链接。
ln -s
创建软链接
ln
创建硬链接
(2)软链接:类似Windows下的快捷方式。当一个源文件的目录层级比较深,我们想要方便的使用它可以给源文件创建一个软链接。软链接的作用是方便文件的快速访问。
注意:
①如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
②删除源文件则软链接失效。
③可以给目录创建软链接。
(3)硬链接:类似源文件的一个别名,也就是说这两个名字指向的是同一个文件数据。硬链接的作用是可以给重要文件创建硬链接,防止文件被误删。
注意:
①创建硬链接使用相对路径和绝对路径都可以。
②删除源文件,硬链接还可以访问到数据。
③创建硬链接,硬链接数会+1;删除源文件或者硬链接,硬链接数会-1。创建软链接则不会(硬链接数就是文件数据被文件名使用的次数,相当于引用计数)。
④不能给目录创建硬链接。
4.文本搜索命令
(1)grep
命令的使用
greap
文本搜索
(2)grep
命令选项的使用
-l
忽略大小写
-n
显示匹配行号
-v
显示不匹配文本的所有行
(3)grep
命令结合正则表达式使用
^
以指定字符串开头
$
以指定字符串结尾
.
匹配一个非换行符的字符
(4)扩展:
①grep
命令还可以文本搜素管道中的内容,比如ls / | grep 'lib'
。
②在使用grep
命令的时候还可以省略搜索内容的引号,比如ls / | grep lib
、grep hello 1.txt
。
5.查找文件命令
(1)find
命令及选项的使用
find
在指定目录下查找文件(包括目录)
-name
根据文件名(包括目录名)查找
(2)find
命令结合通配符的使用
通配符是一种特殊语句,主要有*
和?
,用来模糊搜索文件
*
代表0个或多个任意字符
?
代表任意一个字符
扩展:通配符不仅能结合find
命令使用,还可以结合其他命令使用,比如ls
、mv
、cp
等,只有find
命令使用通配符需要加引号。
6.压缩和解压缩命令
(1)压缩格式的介绍
Linux默认支持的压缩格式:.gz
、.bz2
、zip
。.gz
和bz2
的压缩包需要使用tar
命令来压缩和解压缩,.zip
的压缩包需要使用zip
命令来压缩,使用unzip
命令来解压缩。
压缩目的:节省磁盘空间。
(2)tar
命令及选项的使用
tar
压缩和解压缩命令
tar
命令选项:
-c
创建打包文件
-v
显示打包或解包的详细信息
-f
指定文件名称,必须放到所有选项后面
-z
压缩或解压缩(.gz
)
-j
压缩或解压缩(.bz2
)
-x
解包
-C
解压缩到指定目录
(3)zip
和unzip
命令及选项的使用
zip
压缩成.zip
格式文件
unzip
解压缩.zip
格式文件
unzip
命令选项:
-d
解压缩到指定目录
说明:
①压缩文件尽量使用.gz
格式,因为占用空间比较少。
②使用.zip
命令压缩的文件占用空间比较多,但是比较通用,操作更加简单。
7.文件权限命令
(1)chmod
命令介绍
chmod
修改文件权限,有字母法和数字法两种方式。
(2)chmod
字母法的使用
①角色说明:
u
user,表示该文件的所有者
g
group,表示用户组
o
other,表示其他用户
a
all,表示所有用户
②权限设置说明:
+
增加权限
-
撤销权限
=
设置权限
③权限说明:
r
可读
w
可写
x
可执行
-
无任何权限
(3)chmod
数字法的使用
数字法就是rwx
这些权限也可以用数字来替代
r
可读,权限值是4
w
可写,权限值是2
x
可执行,权限值是1
-
无任何权限,权限值是0
8.获取管理员权限的相关命令
(1)sudo
命令的使用
sudo-s
切换到root
用户,获取管理员权限
sudo
某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo
(2)whoami
命令的使用
whoami
查看当前用户
(3)exit
命令的使用
exit
退出登录用户
说明:
①如果是切换后的登录用户,退出则返回上一个登录账号。
②如果是终端界面,退出当前终端。
(4)who
命令的使用
who
查看所有的登录用户
(5)password
命令的使用
password
修改用户密码,不指定用户默认修改当前登录用户密码
(6)which
命令的使用
which
查看命令位置
(7)关机和重启命令的使用
shutdown -h now
立刻关机
reboot
重启
9.用户相关操作
(1)创建用户
useradd
创建(添加)用户
useradd
命令选项:
-m
自动创建用户主目录,主目录的名字就是用户名
-g
指定用户所属的用户组,默认不指定会自动创建一个同名的用户组
(2)设置密码
给其他用户设置密码,需要使用sudo passwd 用户名
(3)切换用户
su
切换用户
(4)修改用户信息
usermod
修改用户信息
usermod
选项:
-G
设置一个附加组
-g
修改用户组
(5)删除附加组
gpasswd
添加和删除附加组信息
gpasswd
命令选项:
-a用户名
给用户添加附加组
-d用户名
给用户删除附加组
说明:删除用户,默认同名的用户组也会被删除。
小结:
①创建用户命令格式:sudo user -m 用户名
,默认创建一个同名的用户组。
②查看用户信息使用id命令
或者/etc/passwd 文件
。
③查看用户组信息使用/etc/group 文件
。
④给用户设置密码使用sudo passwd 用户名
。
⑤切换用户使用su - 用户名
。
⑥设置附加组使用sudo usermod - G 组名 用户名
。
⑦删除用户使用sudo userdel -r 用户名
,默认会删除同名的用户组。
10.用户组相关操作
(1)创建用户组
groupadd
创建用户组
(2)创建用户并指定用户组
(3)修改用户组
(4)删除用户组
groupdel
删除用户组
说明:如果用户组下面有用户先删除用户再删除用户组。
小结:
①创建用户组:sudo groupadd 用户组名
②创建用户并指定用户组:sudo useradd -m -g 用户组名 用户名
。
③修改用户组:sudo usermod -g 用户组名 用户名
。
④删除用户组:sudo userdel 用户组名
。
11.远程登录、远程拷贝命令的介绍
ssh
远程登录
scp
远程拷贝
(1)ssh
命令的使用
ssh
是专门为远程登录提供的一个安全性协议,常用与远程登录,想要使用ssh
服务,需要安装相应的服务端和客户端软件,当软件安装成功以后就可以使用ssh
命令了,以后可以通过远程登录操作远程的服务器。
软件安装步骤:
①假如Ubuntu作为服务器,需要安装ssh
服务器软件,执行命令:sudo apt-get install openssh-server
。
②客户端电脑如果是macOS系统则不需要安装ssh
客户端软件,默认已经安装过了,可以直接使用ssh
命令。
③客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件。
ssh
命令格式:ssh 用户名@IP地址
(2)scp
命令的使用
scp
是基于ssh
进行远程文件拷贝的命令,也就是说需要保证服务器和客户端电脑安装了相应的ssh
软件,以后可以把我们写代码远程拷贝到服务器。
scp
命令格式:
①远程拷贝文件
scp 本地文件 远程服务器用户名@远程服务器IP地址:指定拷贝到远程服务器的路径
scp 远程服务器用户名@远程服务器IP地址:远程服务器文件 指定拷贝到本地电脑的路径
②远程拷贝目录
scp -r 本地目录 远程服务器用户名@远程服务器IP地址:指定拷贝到远程服务器的路径
scp -r 远程服务器用户名@远程服务器IP地址 远程服务器目录 指定拷贝到本地电脑的路径
-r
表示递归拷贝整个目录
(3)FileZilla软件的使用
FileZilla是一个免费开源的FTP软件,使用可视化的方式进行上传和下载文件,可以通过FileZilla来代替scp
命令。