基础知识
1、如何获取Linux当前最新的内核版本号?
2、列出你所了解的Linux发行版,并说明其跟Linux内核的关系
Linux是操作系统的内核本身。
Ubuntu;Redhat(CentOS);Debian;SUSE;Gentoo, LFS (Linux From scrat)
每个发行版都有自己的特点和目标受众。它们都使用 Linux 内核作为操作系统的核心,并在此基础上构建自己的软件包和配置,以提供不同的用户体验和功能。
3、操作系统的组合
内核+库+各种应用程序
4、编译是什么
把源代码变成可以在CPU上执行的二进制文件。
将高级编程语言(如C、C++、Java等)源代码转换为可执行的机器代码的过程,编译器是执行编译过程的软件工具。
5、32位和64位分别是什么
32位和64位是指计算机处理器的数据位数,用于表示处理器的寻址能力和数据处理能力。
CPU向下兼容:64位处理器可以运行32位软件,但32位处理器无法运行64位软件。
目录管理命令:
-
ls
:列出当前目录下的文件和子目录。例如,ls
命令可以显示当前目录中的所有文件和子目录的列表。 -
cd
:切换到指定目录。例如,cd Documents
将切换到当前目录下的 “Documents” 子目录。 -
pwd
:显示当前所在的目录路径。例如,pwd
命令可以显示当前目录的完整路径。 -
mkdir
:创建一个新的目录。例如,mkdir NewFolder
将在当前目录下创建一个名为 “NewFolder” 的新目录。 -
rmdir
:删除一个空的目录。例如,rmdir EmptyFolder
将删除当前目录下名为 “EmptyFolder” 的空目录。 -
tree
:以树状结构显示目录及其子目录。例如,tree
命令可以显示当前目录及其子目录的树状结构。 -
whereis
命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高 ,而find则是遍历硬盘查找文件。例如,使用
whereis -b python3
命令来查找Python3的位置,它显示了Python3的可执行文件路径,包括/usr/bin/python3.6m
、/usr/bin/python3
和/usr/bin/python3.6
等。而find / -name python3
命令则是用来在整个文件系统中查找名为python3
的文件或目录。在你的系统中,它找到了一个名为/usr/bin/python3
的文件,与whereis
的结果相符。 所以,whereis
命令显示的是Python3可执行文件的位置,而find
命令显示的是名为python3
的文件在文件系统中的位置。 -
find
命令用于在文件树中查找文件,并作出相应的处理,例如find / -name python
文件管理命令:
-
touch
:创建一个新的空文件或更新已有文件的访问和修改时间。例如,touch newfile.txt
将创建一个名为 “newfile.txt” 的新文件。 -
stat
:显示文件的详细信息,如文件类型、权限、大小、创建和修改时间等。例如,stat myfile.txt
可以显示名为 “myfile.txt” 的文件的详细信息。 -
file
:确定文件的类型。例如,file image.jpg
可以确定名为 “image.jpg” 的文件是一个图像文件。 -
rm
:删除文件或目录。例如,rm myfile.txt
将删除名为 “myfile.txt” 的文件,递归删除则用rm -rf,针对目录删除,例如,rm -rf /directory
,将删除名为"direcoty"的目录 -
cp
:复制文件或目录。例如,cp file.txt newfile.txt
将复制名为 “file.txt” 的文件并将其命名为 “newfile.txt”。 -
mv
命令(move)用于移动文件和目录,也可以用于重命名文件和目录。例如,mv file1.txt file2.txt
移动或重命名文件mv dir1 dir2
移动目录 -
cp
命令(copy)用于复制文件和目录。例如,cp file1.txt file2.txt
复制文件cp -r dir1 dir2
递归复制目录及其内容。cp -rp dir1 dir2
递归复制保持属性不变。cp -rd dir1 dir2
递归复制,同时可以复制软链接。
cp -a dir1 dir2
相当于rpd,简单理解就是all,递归复制所有并保持原属性。 -
chmod
:是一个用于修改文件或目录权限的命令。它可以添加或移除文件的读取、写入和执行权限,以及设置特定用户或用户组的权限。例如:chmod -R 755 /root
要将/root
目录及其所有子目录和文件的权限设置为755;0
:无权限。1
:执行权限。2
:写入权限。3
:写入和执行权限。4
:读取权限。5
:读取和执行权限。6
:读取和写入权限。7
:读取、写入和执行权限。
例如:
chmod u+rwx filename
将文件赋予 root 用户读取、写入和执行的权限(rwx)。u
:所有者(user)的权限;g
:所属组(group)的权限;o
:其他用户(others)的权限;a
:所有用户的权限。-R
:递归地修改目录及其子目录中的文件权限。-v
:显示详细的操作信息。 -
chown
是 “change owner” 的缩写,意为改变文件或目录的所有者。命令用于更改文件或目录的所有者(用户)和/或所属组。例如:递归更改目录和文件:chown -R user1:group1 directory/
,这会将directory/
及其下所有文件和子目录的所有者和所属组都更改为user1
和group1
。 -
rm -rf /root/*
删除root目录下文件但不删除root目录,不能使用rm -rf /root/
会删除root目录,导致报错-bash: history: /root/.bash_history: cannot create: No such file or directory
-
tar
命令,-c
建立新的压缩文件 ,-f
定压缩文件 ,-x
从压缩包中抽取文件 ,-z
支持gzip压缩 ,-j
支持bzip2压缩 ,-v
显示操作过程。
日期时间命令:
date
:显示当前日期和时间。例如,date
命令可以显示当前的日期和时间。clock
:显示或设置系统时钟。例如,clock -r
可以显示系统时钟的当前设置。hwclock
:显示或设置硬件时钟。例如,hwclock --show
可以显示硬件时钟的当前设置。cal
:显示日历。例如,cal 2022
可以显示 2022 年的日历。
文本编辑命令:
cat
:concatenate,链接并显示,把文本内容倾倒在终端是上。-E
显示行结束-n
显示行数
[root@yunwei ~]# cat -E /etc/issue
\S$
Kernel \r on an \m$
$
[root@yunwei ~]# cat -n /etc/issue
1 \S
2 Kernel \r on an \m
3
linux和windows对文本结束的回车不一样;linux是 $
,windows是 $
+回车符。(mac和linux保持一致)
Ctrl+C
命令结束键
分屏显示
more
和less
/
:进行搜索。按下后会提示输入要搜索的文本。n
:在搜索结果中查找下一个匹配项。N
:在搜索结果中查找上一个匹配项。q
:退出less
命令。
head
:查看前 n 行 ,tail
:查看后 n 行,-n
选项 tail -f
:用于实时监视文件的变化。它会显示文件的末尾内容,并持续更新显示新添加的内容。例如:查看监控文件持续输出。
文本处理:
cut
:切割文本。例如,cut -d : -f1 /etc/passwd
命令。-d
: 指定字段分隔符,默认是空格-f:
指定要显示的字段;1,3为1和3,1-3是1到3。
Linux软件的安装
1、RPM
RPM (RedHat Package Manager) 安装管理
RPM缺点:
1、rpm在安装的时候不能指定安装路径。安装路径是在制作RPM包的时候已经指定了
2、rpm软件包一般都存在依赖问题没有解决
rpm安装
rpm -ivh package_name
选项与参数:
-i :install的意思
-v:察看更细部的安装信息画面
-h :以安装信息列显示安装进度
–nodeps:不检测依赖性(不建议使用)
-e: 卸载
1、安装单个rpm包
rpm -ivh package name
2、安装多个rpm包
rpm -ivh ai386.rpm b.i386.rpm *.rpm
3、安装网上某个位置rpm包
rpm -ivh http://website.name/path/pkgname.rpm
4、RPM包升级
rpm -Uvh 包全名
选项:
-U (upgrade) 升级
5、查看本机上安装软件
[root@VM-0-2-centos ~]# rpm -qa | grep python
python-libs-2.7.5-93.el7_9.x86_64
python-deltarpm-3.6-3.el7.x86_64
python-slip-dbus-0.4.0-4.el7.noarch
6、卸载
rpm -e 包名
选项:
-e (erase) 卸载
--nodeps 不检查依赖性
7、查询是否安装
rpm -q 包名
选项:
-q (query) 查询
-a (all) 查询所有
8、查询软件包详细信息
rpm -qi 包名
选项:
-i (information) 查询软件信息
-p (package) 查询未安装的包信息,需要使用全包名
9、查询包中文件安装位置
rpm -ql 包名
选项:
-l (list) 列表
-p (package) 查询未安装的包信息,需要使用全包名
10、查询系统文件属于哪个RPM包
rpm -qf 系统文件名[绝对路径/相对路径]
选项:
-f (file) 文件路径
11、查询安装包的依赖性
rpm - qR 包名
选项:
-R (requires) 查询软件安装包的依赖性
-p (package) 查询未安装的包信息,需要使用全包名
2、YUM
yum基于rpm上层的软件管理工具,yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包并目安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
[root@VM-0-2-centos yum.repos.d]# yum makecache
#更新本地软件包缓存
[root@VM-0-2-centos ~]# yum repolist
#列出已配置的软件源
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 518
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 5,527
配置阿里云镜像,epel镜像包含常用的包:developer.aliyun.com/mirror/epel
[root@VM-0-2-centos ~]# yum search python
#查找
[root@VM-0-2-centos ~]# yum info python3.x86_64
#查看信息
[root@VM-0-2-centos ~]# yum remove ***
#卸载安装包,不会删除依赖的安装包(rpm -e)
查看版本号,“release” 表示版本
[root@VM-0-2-centos ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
rz
和sz
分别是上传和下载,但是只能在终端仿真软件,终端不支持!
更改DNS服务器,“resolve” 表示解析
[root@VM-0-2-centos ~]# vi /etc/resolv.conf
curl
和 wget
都是用于在命令行中进行网络数据传输的工具,其中 -O
表示指定下载的文件保存路径和文件名(大写的o)。(不推荐使用: -p
表示指定下载文件的保存路径.)
curl -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
tip:使用wget -p /root/ https://~~~~~.rpm
,下载后是个文件夹downloads.mysql.com
.
使用了 -p
参数并指定了保存路径 /root/
,wget
会尝试下载整个网页或者网站的资源并保存在 /root/
目录下。这可能导致下载的内容包含了网页中的各种资源文件,最终形成了一个以网站域名命名的文件夹,并将下载的文件保存在其中。
wget -p /root/ https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-8.0.22-1.el7.x86_64.