linux基本操作

2023-03-07 14:16:06 浏览数 (3)

*linux启动流程 *linu相关的指令 *软件管理相关指令 *文件系统 *Linux里的文件系统 *目录操作的常见指令 *文件和目录的创建删除 *查看文件

linux启动流程

  • 加载BIOS(Basic Input Output System):BIOS是系统启动时加载的第一个软件。
    • 启动上电自检POST(Power-On-Self-Test),负责完成对CPU、主板、内存、软硬盘子系统、显示子系统(包括显示缓存)、串并行接口、键盘、CD-ROM光驱等的检测,主要检查硬件的好坏。
    • 对外部设备进行初始化,读取BIOS参数,并和实际的硬件进行比较,如果不符合,会影响系统启动。
    • 查找MBR(Master Boot Record,主引导分区)。如果未找到,会提示找不到硬盘。
  • 读取主引导分区(MBR):拷贝启动引导代码BootLoader
  • 启动引导代码(bootloader):当我们的硬盘上有多个操作系统时,可以用来选择进入到哪个操作系统。
  • 加载内核,进入操作系统:运行第一个程序 : /sbin/init
    • sbin/init 会读取相关的配置文件,来确定系统的运行级别。
      • 0: 关机
      • 1 : 单用户模式
      • 2 : 无网络支持的多用户模式
      • 3 : 有网络支持的多用户模式
      • 4 : 保留,未使用
      • 5 : 有网络支持,且有图形化界面的多用户模式
      • 6 : 重启
      • 切换运行级别: init 级别
    • 根据对应的运行级别,查找对应的脚本文件。例如,运行5级别,查找 /etc/rc5.d目录,启动该目录下的相关服务。
      • 这些文件夹下的init脚本都有一些特别的名字,命名都以S(start)、K(kill)或D(disable)开头,后面跟一个数字。当init进入一个运行等级的时候,它会按照数字顺序运行所有以K开头的脚本并传入stop参数,除非对应的init脚本在前一个运行等级中没有启动。然后init按照数字顺序运行所有以S开头的脚本并传入start参数。任何以D开头的init脚本都会被忽略—这让你可以在指定的运行等级禁止一个脚本,或者你也可以仅仅移除全部符号链接。
    • 解析用户自定义的启动脚本:/etc/rc.local(如果存在的话)
    • 进入用户界面。

linu相关的指令

在Linux中,很多功能需要使用命令行来实现,我们甚至可以不使用桌面,只使用终端命令在Linux里实现绝大多数功能。

指令的基本格式:

代码语言:javascript复制
命令 [选项] [参数]
Copy

例如:

代码语言:javascript复制
ls -a /   # 表示列出根目录下所有的文件及文件夹
Copy

####

软件管理相关指令

简单来说,Linux系统可以分为Debian和RedHat两大分支。基于Debian平台比较流行的操作系统是Ubuntu,基于RedHat平台比较流行的操作系统是fedora.两种不同的分支,它们所使用的软件管理命令也是不一样的。

基于Debian平台的操作系统,使用dpkg和apt指令管理软件,基于RedHat平台的操作系统,使用rpm和yum指令来管理软件。它们的命名方式不同,但是命令的执行效果大致相同,我们主要学习基于Debian平台Ubuntu系统下的dpkgapt指令。

dpkg

dpkg是“Debian Package”的简写,为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”,例如 “Ubuntu”、“Knoppix ”等。

命令行

作用

示例

dpkg -i <.deb file name>

安装.deb后缀名的软件

dpkg -i google-chrome-stable_current_amd64.deb

dpkg --info <.deb file name> dpkg -s

检测打包好的文件

dpkg --info google-chrome-stable_current_amd64.deb dpkg -s google-chrome-stable

dpkg -L

列出与该资源包有关的文件

dpkg -L google-chrome-stable

dpkg -l

列出所有已安装的包

dpgk -l

dpkg -r

删除指定的软件,并保留配置

dpkg -r google-chrome-stable

dpkg -P

删除指定的软件,不保留配置

dpkg -P google-chrome-stable

apt

dpkg本身是一个偏底层的工具,一般情况下不经常使用,我们更多的使用apt. apt全称Advanced Packaging Tool(apt),是Linux下的一款安装包管理工具。使用这个命令可以快速的实现在线、升级以及卸载软件。

命令行

作用

示例

apt-cache search

查找指定的包

apt-cache search google

apt-get install

安装指定的包

apt-get install vim

apt-get -f install

安装依赖包

apt-get -f install

apt-get reinstall

重现安装指定的包

apt-get reinstall vim

apt-get remove

删除指定的包

apt-get remove vim

apt-get remove --purge

删除指定的包,包括配置文件

apt-get remove --purge vim

apt-get update

会更新/etc/apt/sources.list软件资源包列表

aput-get update

apt-get upgrade

更新已安装的包

apt-get upgrade

apt-get dist-upgrade

更新系统

apt-get dist-upgrade

文件系统

操作系统中,用来管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。具体来说,这部分系统就是负责为用户建立、读取、修改和转储文件,控制文件的存取,当用户不再使用时撤销文件等。

常见的文件系统介绍:

  • FAT16 MS-DOS6.X及以下版本使用。每个磁盘的分区最大只能达到2G,并且会浪费很多空间。在FAT16里有簇的概念,就相当于是图书馆里一格一格的书架,每个要存到磁盘的文件都必须配置足够数量的簇,才能存放到磁盘中,每个文件,无论大小,都至少要使用一个簇在保存。 FAT16各分区与簇大小的关系如下表: 分区大小FAT16簇大小16MB-127MB2KB128MB-255MB4KB256MB-511MB8KB512MB-1023MB16KB1024MB-2047MB32KB思考:如果一个1KB的文件,被保存到了一个1000M的分区,这个文件实际占用的空间是多少?
  • FAT32 Windows95以后的系统都支持。 FAT32具有一个最大的优点:在一个不超过8GB 的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少磁盘的浪费,提高磁盘利用率。 突破了FAT16对每一个分区的容量只有2GB的限制,可以将一整个大硬盘定义成一个分区而不必分为几个分区使用,方便了对磁盘的管理。但是,FAT32里,无法存放大于4GB的单个文件,而且容易产生磁盘碎片,性能不佳。 另外,FAT不支持长文件名,只能支持8个字符,而且后缀名最多只支持3个字符。
  • NTFS WindowsNT系列设计,用来取代FAT系统。每个簇的空间更小,磁盘的利用率更高,并且可以共享资源、文件夹以及对文件设置访问许可权限。
  • RAW RAW文件系统是一种磁盘未经处理或者未格式化产生的文件系统。一般来说有这几种可能造成正常文件系统变成RAW文件系统:
    • 没有格式化
    • 格式化中途取消
    • 硬盘出现坏道
    • 硬盘出现不可预知的错误
  • EXT EXT是扩展文件系统,目前最新的版本是5.0.
  • HFS( ) 苹果电脑上的文件系统。

#####

Linux里的文件系统

不同于Windows系统有盘符的概念(C盘、D盘等),Linux里只有一个盘符,是从 " / " 开始的,只有它是没有上级目录的。如果把整个应用目录系统看成一个树形结构," / " 表示相当于这个树形结构的根,我们可以将 " / " 称之为根目录。

在根目录里,有以下几个一级文件夹或文件,需要大家有所了解。

目录

说明

/

系统的根目录

/bin

包含了一些二进制文件,即可执行文件。我们在命令行里执行的指令,例如 ls,rm,cp,mv等,其实都是执行的这个目录里的二进制文件。

/boot

系统启动相关时所需的文件。(勿动)

/cdroom

挂载光盘

/dev

设备文件,其中许多都是在启动时或运行时生成的。例如,如果你将新的网络摄像头连接到机器中,会自动弹出一个新的设备条目

/etc

用来存放所有的系统管理所需要的配置文件和子目录。(会经常使用)

/home

用户的主目录,每一个用户都有自己的目录,所有的用户都存放在home目录下。

/lib(64)

用来存放系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库。

/lost found

这个目录一般情况下是空的,当系统非法关机后,这里会存放一些没来得及保存的文件。

/media

Linux系统自动识别的一些设备,比如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光盘挂载在/mnt/上,然后进入到该目录就可以查看光驱里的内容了。 mount /dev/cdrom /mnt/ umount /mnt/

/opt

给额外安装软件所摆放的目录。比如你安装一个ORACLE数据库就可以把它放到这个目录下

/proc

虚拟目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。 /proc/sys/net/ipv4/icmp_echo_ignore_all

/root

超级用户目录

/run

是一个临时文件,存储系统启动以来的信息,当系统重启时,这个目录下的文件会被删除。

/sbin

超级用户使用的命令存放目录(系统启动时所需要的重要的系统二进制文件)

/snap

Ubuntu自己的软件管理工具

/srv

存放一些服务启动之后需要提取的数据

/sys

映射内核设备

/tmp

存放临时文件

/usr

非常重要的目录,用来存放用户安装的应用程序和用户文件。

/var

经常修改的数据,比如程序运行的日志文件

  • 以 " . " 开头的文件是隐藏文件。
  • " ./ " 表示的是当前目录; “ …/ ” 表示的上级目录
  • “ ~ ” 表示的当前用户的家目录

目录操作的常见指令

  • pwd:查看当前工作目录
  • cd:切换工作目录

符号

说明

.

当前目录

上一级目录

~

当前用户的家目录

-

表示上次切换之前的目录

/

表示根目录

1.使用cd时,不指定目标地址,会切换到家目录 2.凡是以/开头的目录都是绝对目录 3.凡是以.或…开头的目录都是相当目录

  • l:查看指定目录的内容,不指定目录时查看当前工作目录

选项

说明

-a

显示所有文件,包括隐藏文件

-l

列表显示,详细信息

-h

人性化的显示大小,如:K/M/G

-l选项显示的结果:类型及权限 | 连接数 | 用户 | 用户组 | 大小 | 月 | 日| 年/时间 | 名称

文件类型:(-l显示结果中的第一部分的第一列)

连接数:如果是文件,表示这个文件有多少个名字(硬链接);如果是目录,表示这个目录里有多少个子目录。

符号

类型

-

普通文件。包括纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件等。

d

目录文件。

l

链接文件。类似于Windows里的快捷方式。

c

字符设备文件。即串行端口的接口设备,例如键盘、鼠标等等。

b

块设备文件。就是存储数据以供系统存取的接口设备,简单而言就是硬盘

s

套接字文件。这类文件通常用在网络数据连接,最常在 /var/run目录中看到这种文件类型。

p

管道文件。它主要的目的是,解决多个程序同时存取一个文件所造成的错误。

alias:给命令起别名。

代码语言:javascript复制
alias md=mkdir
Copy

相当于给mkdir命令起了一个别名,以后使用md即可创建一个文件夹。

代码语言:javascript复制
alias   # 不添加任何参数,表示列出所有的别名
Copy

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CCX3KPOb-1595169381692)(imgs/alias指令.png)]

代码语言:javascript复制
unalias md   # 删除别名
Copy

文件和目录的创建删除

命令

说明

touch

新建文件,可以是多个

rm

删除文件或目录(删除目录时要传递’-r’选项)

cp

拷贝文件或目录(拷贝目录是要传递’-r’选项)

mv

移动文件或目录

mkdir

创建目录,可以是多个

rmdir

删除空目录

选项说明

-r:删除或拷贝目录时需要添加,表示递归操作。

-f:表示强制操作,没有提示信息。

*:表示模糊匹配,如:rm* .py,表示删除所有的py文件。

-p:创建目录时若需要创建中间目录,可以添加此选项。

代码语言:javascript复制
mkdir -p  a/b/c
Copy

查看文件

  • 相关命令

命令

说明

cat

从上到下,显示文件全部内容

tac

从下到上,显示文件全部内容

head

查看开头指定行数的内容,不指定时默认10行,如:head -20 filename

tail

查看文件末尾指定行数的内容,不指定时默认10行,如:tail -5 filename

nl

功能与cat相同,但是多显示了行号

wc

统计显示,内容:行数 单词数 字符数 文件名

more

一点一点查看内容

less

一点一点查看内容

  • more/less使用说明
    • 显示一屏就停止
    • q退出查看
    • enter下翻一行
    • 空格下翻一屏
    • more查看完毕会自动退出,less不会
    • less可以使用上下按钮上下翻看,more不可以
    • 经常结合管道使用:ls /etc | more Linux系统提供了wc命令来统计文件的行数

统计当前目录下的所有文件行数: wc -l * ls -l|wc -l 用来统计当前目录下的文件数 当前目录以及子目录的所有文件行数: find . * | xargs wc -l

可以把改成所要匹配的文件,例如Java文件,.java这样就只统计java源码了。

关于wc命令的更多介绍,可以在终端输入wc --help查看

列出BKK目录下 后缀名是webp 且前缀名不是以大写X结尾的文件的 文件数 ls BKK | egrep [^X].webp | wc

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 该命令各选项含义如下:

  • c 统计字节数。
  • l 统计行数。
  • w 统计字数。 如果命令行中没有文件名,则输出中不出现文件名。 例如: $ wc - lcw file1 file2 4 33 file1 7 52 file2 11 11 85 total 省略任选项-lcw,wc命令的执行结果与上面一样 示例: wc命令用来计算一个文件或者指定的多个文件中的行数,单词数和字符数。如: wc filename 第一列显示行数,第二列显示单词数,第三列显示字符数。 wc 有四个参数可选,分别是l,c,m,w wc -l filename 报告行数 wc -c filename 报告字节数 wc -m filename 报告字符数 wc -w filename 报告单词数

1 人点赞