Linux基础

发布时间 2023-07-13 17:15:58作者: 乐情在水静气同山

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  #删库跑路指令^.^