Linux入门知识基础
一、Linux 系统种类
-
Red Hat 系列:包括商业版如Red Hat Enterprise Linux (RHEL),以及社区版如Fedora和CentOS。Red Hat系列以其稳定性和广泛的社区支持而闻名。RHEL 是全世界内使用最广泛的 Linux 系统。它具有极强的性能与稳定性,是众多生成环境中使用的(收费的)系统。
-
RHEL:由Red Hat公司开发并发布的一个企业级Linux发行版。它提供了一个稳定、安全且高性能的操作系统平台,适合在混合云环境中运行关键工作负载。RHEL以其强大的可伸缩性和虚拟化特性而闻名,支持大量的硬件平台和处理器架构。
-
Fedora :由社区驱动的Linux发行版,它以其快速采用最新开源技术而闻名。Fedora由Fedora项目社区开发,由Red Hat公司提供赞助,是Red Hat Enterprise Linux(RHEL)的开发前身和测试平台。这意味着Fedora经常是最新Linux技术和软件的试验场,这些技术和软件经过测试和稳定化后,最终会被集成到RHEL中。
-
CentOS :通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统,具适合那些不想支付商业版费用但又需要企业级稳定性的用户,具有广泛人群使用。、
-
Debian 系列:Debian项目始于1993年,是最早的Linux发行版之一,稳定性、安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。以Debian为基础,衍生出了Ubuntu,Kali Linux,Pop!_OS,Deepin等发行版。
-
Ubuntu:是一款派生自 Debian 的操作系统,对新款硬件具有极强的兼容能力。 Ubuntu 与
Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域。 -
Kali Linux:基于Debian的衍生版,Kali Linux集成了大量黑客工具和网络安全相关工具
二、Shell
(一)shell是什么
Shell 这个单词的原意是“外壳”,跟 kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。
Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境( command line interface ,简写为 CLI )。 Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。
Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为 Shell 脚本。这些脚本都通过 Shell 的解释执行,而不通过编译。
Shell 是一个工具箱,提供了各种小工具,供用户方便地使用操作系统的功能。
(二)Shell 的种类
Shell 有很多种,只要能给用户提供命令行环境的程序,都可以看作是 Shell 。
历史上的shell有:
Bourne Shell(sh)
Bourne Again shell(bash):bash是最常用的shell,MacOS 中默认Shell为bash.
C Shell(csh)
TENEX C Shell(tcsh)
Korn shell(ksh)
Z Shell(zsh)
Friendly Interactive Shell(fish)
【示例】:
echo $SHELL
查看当前正在使用的shell 。cat /etc/shells
查看当前系统安装的所有shell种类
三、命令
命令行提示符
进入命令行环境以后,用户会看到 Shell 的提示符。提示符往往是一串前缀,最后以
一个美元符号 $ 结尾,用户可以在这个符号后面输入各种命令。
命令解析:
命令快捷键
Ctrl + R :用于查找使用过的命令(history 命令用于列出之前使用过的所有命令,然后输入 ! 命
令加上编号( !2 )就可以直接执行该历史命令);
Ctrl + L:清除屏幕并将当前行移到页面顶部;
Ctrl + C:中止当前正在执行的命令;
Ctrl + U:从光标位置剪切到行首;
Ctrl + K:从光标位置剪切到行尾;
Ctrl + W:剪切光标左侧的一个单词;
Ctrl + Y:粘贴 Ctrl + U | K | Y 剪切的命令;
Ctrl + A:光标跳到命令行的开头;
Ctrl + E:光标跳到命令行的结尾;
Ctrl + D:关闭 Shell 会话;
四、文件和目录简述
(一)常用对文件操作的命令
Linux提供了丰富的命令来操作文件和目录,如ls(列出目录内容)、cd(改变目录)、cp(复制文件)、mv(移动文件)、rm(删除文件)、mkdir(创建目录)
查看路径pwd
显示当前目录的路径
which
查看命令的可执行文件所在路径, Linux 下,每一条命令其实都对应一个可执行程序,在终端中。输入命令,按回车的时候,就是执行了对应的那个程序, which 命令本身对应的程序也存在于
Linux 中。总的来说一个命令就是一个可执行程序。
(二)查看和切换目录
ls
列出文件和目录,它是 Linux 最常用的命令之一。
【常用参数】
-a 显示所有文件和目录包括隐藏的
-l 显示详细列表
-h 适合人类阅读的
-t 按文件最近一次修改时间排序
-i 显示文件的 inode ( inode 是文件内容的标识)
cd
切换目录,
cd /
--> 跳转到根目录
cd ~
–> 跳转到家目录
cd ..
--> 跳转到上级目录
cd ./home
--> 跳转到当前目录的home目录下
cd /home/lion
--> 跳转到根目录下的home目录下的lion目录
cd
--> 不添加任何参数,也是回到家目录
[注意] 输入cd /ho + 单次 tab 键会自动补全路径 + 两次 tab 键会列出所有可能的目录列表。
du
列举目录大小信息。
【常用参数】
-h 适合人类阅读的;
-a 同时列举出目录下文件的大小信息;
-s 只显示总计大小,不显示具体信息。
(三)查看文件的命令详写
cat
一次性显示文件所有内容,更适合查看小的文件。-n 显示行号。
less
分页显示文件内容,更适合查看大的文件。
less中的快捷操作:
空格键:前进一页(一个屏幕);
b 键:后退一页;
回车键:前进一行;
y 键:后退一行;
上下键:回退或前进一行;
d 键:前进半页;
u 键:后退半页;
q 键:停止读取文件,中止 less 命令;
= 键:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;
h 键:显示帮助文档;
/ 键:进入搜索模式后,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输
入正则表达式匹配。
head
显示文件的开头几行(默认是10行)-n 指定行数
tail
显示文件的结尾几行(默认是10行),-n 指定行数,-f 会每过1秒检查下文件是否有更新内容,也可以用 -s 参数指定间隔时间
nl
显示文件内容,并在每行前面加上行号。
awk
文本处理工具,可以用于格式化和搜索文件内容,eg:awk '{print $1}' filename.txt
打印 filename.txt 中每一行的第一个字段。
od
以八进制、十六进制等格式查看文件内容
(四)创建文件和目录的命令
touch
创建一个或多个文件。文件已存在则更新其访问和修改时间。
-m 参数一起使用,以设置文件或目录的权限, –uid 和 --gid 参数一起使用,以设置文件或目录的所有者和组。
mkdir
创建一个目录,mkdir -p
:递归创建目录,没有上级目录即递归创建,目录已存在命令仍然会成功。
-m 参数一起使用,以设置文件或目录的权限, –uid 和 --gid 参数一起使用,以设置文件或目录的所有者和组。
vi 或vim
开一个文本编辑器,创建并编辑文件
echo
将字符串或变量输出到文件。eg:echo "Hello, World!" > new_file.txt
创建 new_file.txt 并写入 “Hello, World!”。
(五)文件的复制和移动
cp:拷贝文件和目录。
- cp file file_copy --> file 是目标文件,file_copy 是拷贝出来的文件
- cp file one --> 把 file 文件拷贝到 one 目录下,并且文件名依然为 file
- cp file one/file_copy --> 把 file 文件拷贝到 one 目录下,文件名为file_copy
- cp *.txt folder --> 把当前目录下所有 txt 文件拷贝到 folder 目录下
mv:移动(重命名)文件或目录,与cp的用法相同
mv file one --> 将 file 文件移动到 one 目录下
mv new_folder one --> 将 new_folder 文件夹移动到one目录下
mv *.txt folder --> 把当前目录下所有 txt 文件移动到 folder 目录下
mv file new_file --> file 文件重命名为 new_file
rm: 删除文件和目录(linux没有回收站)
- rm new_file --> 删除 new_file 文件
- rm f1 f2 f3 --> 同时删除 f1 f2 f3 3个文件
五、用户权限
用户
Linux 是一个多用户的操作系统。在 Linux 中,理论上来说,我们可以创建无数个用户,但是这
些用户是被划分到不同的群组里面的,有一个用户,名叫 root ,是一个很特殊的用户,它是超
级用户,拥有最高权限。
自己创建的用户是有限权限的用户,这样大大提高了 Linux 系统的安全性,有效防止误操作或是
病毒攻击,但是我们执行的某些命令需要更高权限时可以使用 sudo 命令(sudo:以 root 身份运行命令)。
添加,删除,切换用户
- useradd:添加用户(root权限)
useradd laowine --> 添加一个laowine用户,添加完之后在 /home 路径下可以查看 - passwd 修改用户密码(root权限)
passwd laowine --> 修改laowine用户的密码 - userdel:删除用户(root权限)
userdel laowine --> 只会删除用户名,不会从/home中删除对应文件夹
userdel laowine -r --> 会同时删除/home下的对应文件夹 - su:切换用户。(root权限)
sudo su --> 切换为root用户(exit 命令或 CTRL + D 快捷键都可以使普通用户切换为 root 用户)
su laowine --> 切换为普通用户
su - --> 切换为root用户