1.初识Linux
Linux是一套自由传播和免费使用的类UNIX系统,是一个基于POSIX和UNIX的多用户,多任务,支持多线程,和多CPU的操作系统。Linux系统与其他的操作系统相比,具有代码开源性,没有版权,技术社区用户多,开放源码使得用户可以自由裁剪,灵活度高,成本低。
Linux系统有:Redhat,CentOS,Ubuntu,deepin,kali Linux .....
在讨论Linux系统的时候:其实只有Linux内核是一样的。
2.Linux基本指令
Linux的图形界面不是强项,一般都是使用字符界面/终端
我们往终端输入相应的指令,就可以执行相应的程序,就可以实现相应的功能
2.1 apt
apt(Advanced Packing Tool):Ubuntu中功能最强大的命令行软件包管理工具,用于获取、安装、编译、卸载和查询软件包,以及检查软件依赖关系
工作原理:基于软件源服务器地址进行查找
/etc/apt/sources.list 用来指定Ubuntu的软件源服务地址
apt相关的常用命令
sudo apt update
#下载更新软件列表信息
#通过这个指令可以将服务器的软件列表更新下载到本地
#如果下载一个软件,现在本地的软件列表查找,如果没有,会尝试更新一下软件包列表信息
sudo apt upgrade
#将系统中的已安装的软件升级为最新版本
sudo apt install 软件包名
#下载安装软件包
sudo apt remove 软件包名
#卸载软件包
sudo apt search 软件包名
#搜索软件包
sudo#以管理员权限运行
2.2 vi/vim
vi/vim 是Linux中最基本、最常用、功能最强大的命令行编辑器 -- 可以不用,但不能不会用
vim是vi的一个升级版
vi有两种工作模式
-
命令模式(默认):所有输入数据都理解为命令
i/I:insert i:进入输入模式后,光标不动 I:进入输入模式后,光标移动到行首 a/A:append a:进入输入模式后,光标往后移动一个字符 A:进入输入模式后,光标移动到行末 o/O:open o:进入输入模式后,光标的上一行会新开一行 O:进入输入模式后,光标的下一行会新开一行 ESC:进入命令模式 -
输入模式(按
i进入):所有输入的数据都理解为字符
vi的退出命令
在命令模式下,输入
:q退出:q!强制退出:w保存:wq保存并退出:w 文件名另存为:x等价于:wq
vi的删除命令
在命令模式下,输入
x删除光标所在的字符dd删除/剪切光标所在的行ndd删除/剪切光标及一下的行r替代光标所在的单个字符r+字符
vi的拷贝与粘贴命令
在命令模式下,输入
yy将当前行的内容拷贝到粘贴板p将剪切板的内容粘贴到当前行的后面P将剪切板的内容粘贴到当前行的后面
vi的拷贝与粘贴命令
在命令模式下,输入
u
vi的搜索命令
在命令模式下,输入
/要搜索的内容n找下一个匹配的内容N反向找下一个匹配的内容
vi显示行号
在命令模式下,输入
set nu显示行号set nonu不显示行号
vi的屏幕分割命令
sp filename上下分割,并打开一个新文件vsp filename左右分割,并打开一个新文件
光标移动命令
j向下k向上l向右h向左
光标跳转
:行号光标跳转到对应行$光标跳转到末尾
Ubuntu18.04 按下 Ctrl + S 会锁住屏幕,按 Ctrl + Q 退出锁定
Ctrl + Z 挂起vi,终端输入 fg 即可返回
2.3文件系统相关命令
文件系统:用来管理文件的一套组织方法
在Windows中,文件后缀决定了文件的类型(计算机解析它的方式)
在Linux中,文件后缀名只是表示这可能是什么类型的文件,具体的文件类型是由文件属性决定的
文件
- 文件属性:是一个结构体,有文件类型,文件大小,文件链接,最后修改时间....
- 文件内容
Linux中文件系统结构是一个树状结构,所有文件的最初位置都是从根目录 / 出发,根目录下可以有目录,也可以有文件,目录下可以有目录,也可以有文件
- 绝对路径:路径以根目录开始,就叫绝对路径
- 相对路径:相对于当前目录来说
/ 根目录
. 当前目录
.. 上一级目录
pwd print work directory 打印工作目录
china@ubuntu:/mnt/hgfs/share$ pwd
/mnt/hgfs/share
cd change directory 改变目录
china@ubuntu:/$ pwd
/
china@ubuntu:/$ cd /mnt/hgfs/share
china@ubuntu:/mnt/hgfs/share$ pwd
/mnt/hgfs/share
ls list 列举指定目录下的所有文件的文件名
china@ubuntu:/mnt/hgfs/share$ ls
hello hello.c share.code-workspace test.c test.exe
#ls -l 列举详细信息
china@ubuntu:/mnt/hgfs/share$ ls -l
总用量 63
-rwxrwxrwx 1 root root 8304 7月 13 14:40 hello
-rwxrwxrwx 1 root root 338 7月 13 15:59 hello.c
-rwxrwxrwx 1 root root 110 7月 11 16:11 share.code-workspace
-rwxrwxrwx 1 root root 201 7月 12 10:00 test.c
-rwxrwxrwx 1 root root 54024 7月 12 10:00 test.exe
#第一个字符表示文件的类型
#- 表示普通文件
#d 表示这是一个目录
#b block 块设备 硬盘
#c char 字符设备 鼠标,触摸屏
#l link 符号链接
#p pipe 管道文件
#s socket 套接字文件
#Linux下一切皆文件
#-------------
#rwxrwxrwx 权限
# 第一组rwx 属主用户的读写执行权限
# 第二组rwx 属主的组用户读写执行权限
# 第三组rwx 是其他用户读写执行权限
#-------------
#1 硬链接数
#-------------
#第一个root 属主用户名
#第二个root 属主用户所在的组名
#-------------
#8304 文件大小
#ls -a 列举所有文件,包括隐藏文件
china@ubuntu:/mnt/hgfs/share$ ls -a
. .. hello hello.c share.code-workspace test.c test.exe
mkdir make directory 创建一个空目录
mkdir {-p} 带路径的目录名
-p parent 父亲 如果你要创建的目录的上面的某一级或多个目录不存在,则一并创建,前提是有权限
mkdir test #是目录但没有路径默认在当前目录下创建
mkdir test/test1/test2 #如果test或者test1不存在,就会创建失败
mkdir -p test/test1/test2 #不存在的目录一并创建
rmdir remove directory 删除空目录
rmdir 带路径的空目录名
rm remove 删除文件、目录
rm [option] 带路径的目录、文件名
-r #递归删除
-f #强制删除
-rf #强制递归删除
sudo rm /* -rf #删库跑路指令^.^