csdn推荐
目录
一、前言
二、初识Linux 1、操作系统 (1)硬件和软件
我们所熟知的计算机是由:硬件和软件所组成。
一个完整的计算机:
(2)操作系统
操作系统是计算机软件的一种,它主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。
当计算机拥有了操作系统,就相当于拥有了灵魂,操作系统可以:
操作系统调动硬件实例:
常见的操作系统:
① PC端:Windows、Linux、MacOS;
② 移动端:Android、IOS、鸿蒙系统
不管是PC操作系统,还是移动操作系统,其功能都是:调度硬件进行工作,充当用户和硬件之间的桥梁
2、Linux
内核是免费、开源的,这也就代表了:任何人都可以获得并修改内核,并且自行集成系统级程序。而提供了内核+系统级程序的完整封装,就称之为Linux发行版。(内核无法被用户直接使用,需要配合应用程序才能被用户使用。在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。)
任何人都可以封装Linux,目前市面上由非常多的Linux发行版,常用的、知名的如下:
不同发行版的基础命令100%是相同的,部分操作不同(如软件安装)
3、虚拟机
通过虚拟化技术在电脑内虚拟出计算机硬件,并给虚拟的硬件安装操作系统,即可得到一台虚拟的电脑,称之为虚拟机。
我们可以通过提供虚拟化的软件来获得虚拟机。如vmware软件。
在cmd命令行窗口输入命令ncpa.cpl可打开网络连接窗口
4、FinalShell
对于操作系统的使用,有两种使用形式(不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式的):
尽管图形化是大多数人使用计算机的第一选择,但是在Linux操作系统上,这个选择被反转了。无论是企业开发亦或是个人开发,使用Linux操作系统,多数都是使用的:命令行。这是因为:
既然决定使用命令行去学习Linux操作系统,那么就必须丰富一下工具的使用。我们使用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不太方便,主要是:
我们可以通过第三方软件,FinalShell,远程连接到Linux操作系统之上。并通过FinalShell去操作Linux系统。这样各类操作都会十分的方便。
5、WSL
WSL:Windows Subsystem for Linux,是用于Windows系统之上的Linux子系统。
其作用很简单,就是可以实现在Windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。如下图所示:
简而言之,Windows10的WSL功能可以实现 无需单独虚拟一套硬件设备,而是直接使用主机的物理硬件来构建Linux操作系统,同时还不会影响Windows系统本身的运行。
但目前及未来趋势仍会以 在虚拟机下搭建Linux环境 的方式为主进行测试
6、虚拟机快照
在学习阶段我们无法避免的可能损坏Linux操作系统。如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。VMware虚拟机(Workstation(Windows)和Funsion(Mac))支持为虚拟机制作快照。通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
VMware Workstation操作步骤:
虚拟机快照作用:快照可以保存虚拟机的状态, 当虚拟机出现问题的时候, 可以通过预先制作的快照恢复到制作时候的状态, 用作备份用
三、Linux基础命令 1、Linux的目录结构
Linux的目录结构是一个树型结构。
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘,如下图所示:
但Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面,如下图所示:
示例:
练习:请根据语言描述,写出对应的Linux路径
(1)在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,请描述文件的路径:/test/hello.txt
(2)在根目录下有一个文件itheima.txt,请描述文件的路径:/itheima.txt
(3)在根目录下有一个文件夹itcast,在itcast文件夹内有文件夹itheima,在itheima文件夹内有文件hello.txt,请描述文件的路径:/itcast/itheima/hello.txt
2、Linux命令入门 (1)Linux命令基础格式
HOME目录和工作目录:
直接输入ls命令,表示列出当前工作目录下的内容(Linux系统的命令行终端在启动的时候,默认会加载当前登录用户的HOME目录(每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名)作为当前工作目录)。
(2)ls命令 ① 基本用法
② 选项&参数 3、目录切换相关命令(cd/pwd) (1)cd命令
当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录。我们可以通过cd命令,更改当前所在的工作目录。
cd命令来自英文:Change Directory
语法:cd [Linux路径]
(2)pwd命令
通过ls来验证当前的工作目录,其实是不恰当的。我们可以通过pwd命令,来查看当前所在的工作目录。
pwd命令来自:Print Work Directory
语法:pwd
4、相对路径、绝对路径和特殊路径符
练习:请根据语言描述,写出对应的路径
(1)当前工作目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径:test/hello.txt
(2)在当前工作目录的上级目录有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径:…/test/hello.txt
(3)在HOME目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的路径,需要使用符号:/test/hello.txt
5、创建目录命令(mkdir)
通过mkdir命令可以创建新的目录(文件夹)。
mkdir来自英文:Make Directory
语法:mkdir [-p] Linux路径
注:创建文件夹需要修改权限,若非root用户,请确保操作均在HOME目录内,不要在HOME外操作
练习:请通过命令在HOME目录内,创建如下路径(需使用特殊符号~)itcast/itheima/nice/666:
答:mkdir -p ~/itcast/itheima/nice/666
6、文件操作命令(touch、cat、more、cp、mv、rm) (1)touch命令
可以通过touch命令创建文件。
语法:touch Linux路径
注:touch无法联级创建文件,即如当前目录下无test文件夹,使用 touch test/test.txt 无法正确创建出 test.txt 文件。命令行会提示错误:touch: 无法创建"test/test.txt": 没有那个文件或目录
(2)cat命令
有了文件后,我们可以通过cat命令查看文件的内容。
语法:cat Linux路径
(3)more命令
more命令同样可以查看文件内容,同cat不同的是:
语法:more Linux路径
(4)cp命令
cp命令可以用于复制文件文件夹,cp命令来自英文单词:copy
语法:cp [-r] 参数1 参数2
复制文件:
复制文件夹:
(5)mv命令
mv命令可以用于移动文件文件夹,mv命令来自英文单词:move
语法:mv 参数1 参数2
将某个文件移动至某个文件夹下:
将某个文件移动至另一个不存在的文件中(即,相当于删除源文件,并将源文件内容移至新文件中),如下图所示,目标不存在,则有改名的效果:
将某个文件移动至与其名字一样的文件中(即,相当于删除源文件,并将源文件内容覆盖至目标文件中):
将某个文件夹移动至某个文件夹下:
(6)rm命令
rm命令可用于删除文件、文件夹,rm命令来自英文单词:remove
语法:rm [-r -f] 参数1 参数2 … 参数N
删除文件:
删除多个文件:
删除文件夹,如下图,必须使用-r选项才可以:
强制删除,-f选项:① 通过 su - root,并输入密码临时切换到root用户体验;② 进行操作;③ 输入exit命令,退回普通用户:
注:rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候,请谨慎使用。比如若在root管理员用户下执行命令:rm -rf /、rm -rf /* 效果等同于在Windows上执行C盘格式化
7、查找命令(which、find) (1)which命令
Linux命令本身其实就是一个个的二进制可执行程序,和Windows系统中的.exe文件是一个意思。我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。
语法:witch 要查找的命令
(2)find命令
在Linux系统中,我们可以通过find命令去搜索指定的文件。
语法:find 起始路径 -name “被查找的文件名”
按文件名查找文件:
同样,find命令支持使用通配符 * 来做模糊查询
语法:find 起始路径 -size +|-n[kMG]
按文件大小查找文件:
查找小于10KB的文件: find / -size -10k
查找大于100MB的文件:find / -size +100M
查找大于1GB的文件:find / -size +1G
练习:
(1)请使用find命令找出:名称中带有centos的文件:find / -name “centos”
(2)请使用find命令找出:/usr 目录内大于100M的文件:find /usr -size +100M
8、grep、wc和管道符 (1)grep命令
可以通过grep命令,从文件中通过关键字过滤文件行。
语法:grep [-n] 关键字 文件路径
过滤itheima关键字:
过滤itcast关键字:
过滤code关键字,并显示行号:
(2)wc命令
可以通过wc命令统计文件的行数、单词数量等。
语法:wc [-c -m -l-w] 文件路径
不带选项,统计文件:
统计字节数:
统计字符数:
统计行数:
统计单词数:
(3)管道符
管道符:| 的含义是:将管道符左边命令的结果,作为右边命令的输入,如下图所示,cat itheima.txt的输出结果(文件内容)作为右边grep命令的输入(被过滤文件):
ls | grep Desktop,过滤ls的结果:
find / -name “test” | grep “/usr/lib64”,过滤结果,只找路径带有/usr/lib64的结果:
cat itheima.txt | grep itcast | grep itheima,可以嵌套使用(① cat itheima.txt的结果给 grep itcast 使用;② cat itheima.txt | grep itcast 的结果给 grep itheima使用):
练习:请使用cat、grep、管道符、wc命令组合,对创建的test.txt进行统计
(1)统计文件中带有itcast关键字的有几行:cat test.txt | grep itcast | wc -l
(2)统计文件中带有itheima关键字的结果中有多少个单词:cat test.txt | grep itheima | wc -w
9、echo、tail和重定向符 (1)echo命令
可以使用echo命令在命令行内输出指定内容。
语法:echo 输出的内容
在终端上显示:Hello Linux:
带有空格或等特殊符号,建议使用双引号包围(因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,但是要养成习惯):
(2)反引号`
将命令用反引号(通常也称之为飘号)`包围后,被飘号包围的内容,会被作为命令执行,而非普通字符
(3)重定向符
重定向符:>和>>
echo “Hello Linux” > itheima.txt:
echo “Hello itheima” > itheima.txt,再次执行,覆盖新内容:
echo “Hello itcast” >> itheima.txt,再次执行,使用>>追加新内容:
(4)tail命令
使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改。
语法:tail [-f -num] Linux路径
查看/var/log/vmware-network.log文件的尾部10行:tail /var/log/vmware-network.log:
查看/var/log/vmware-network.log文件的尾部3行:tail -3 /var/log/vmware-network.log:
练习:
(1)使用echo并配合反引号,输出内容:我当前的工作目录是:`具体的工作目录路径`,并结合重定向符,将输出结果覆盖写入work.txt文件:echo “我当前的工作目录是:`pwd`” > work.txt
(2)请使用echo输出任意内容并追加到work.txt文件中,通过tail命令持续跟踪文件内容更改:echo “内容” >> work.txt、tail -f work.txt
10、vi编辑器
vivim是visual interface的简称, 是Linux中最经典的文本编辑器。同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
vivim编辑器的三种工作模式:
① 命令模式(Command mode):命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
② 输入模式(Insert mode):输入模式也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
③ 底线命令模式(Last line mode):以:开始,通常用于文件的保存、退出。
如下图所示,命令模式是vi编辑器的入口和出口,通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口。① 进入vi编辑器会进入命令模式;② 通过命令模式输入键盘指令,可以进入输入模式;③ 输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式。
如果需要通过vi/vim编辑器编辑文件,请通过如下命令(vim兼容全部的vi功能,后续全部使用vim命令):
语法:vi 文件路径
语法:vim 文件路径
快速体验:
1.使用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式
2.在命令模式内,按键盘 i ,进入输入模式
3.在输入模式内输入:itheima and itcast.
4.输入完成后,按esc回退会命令模式
5.在命令模式内,按键盘 : ,进入底线命令模式
6.在底线命令内输入:wq,保存文件并退出vi编辑器
命令模式快捷键
编辑模式快捷键
编辑模式没有什么特殊的,进入编辑模式后,任何快捷键都没有作用,就是正常输入文本而已。唯一需要记住的是:通过esc,可以退回到命令模式。
底线命令模式快捷键
在命令模式内,输入: ,即可进入底线命令模式,支持如下命令:
通过 :set paste 命令可以设置为粘贴模式,此时再进入到插入模式时,插入模式将变为 插入(粘贴)模式,如下图所示,此时可以确保我们在从外部进行复制粘贴时,复制时是什么样,粘贴过来就是什么样,不会产生格式的错乱(主要用于从外部复制内容)
11、查看命令帮助和手册
大多数手册都是全英文的,如果阅读吃力,可以通过重定向符:man ls > ls-man.txt,输出手册到文件后通过翻译软件翻译内容查看
四、Linux用户和权限 1、认识root用户
无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(超级管理员)。
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的(普通用户的权限,一般在其HOME目录内是不受限的,一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限)。
(1)su和exit命令
su命令就是用于账户切换的系统命令,其来源英文单词:Switch User
语法:su [-] [用户名]
补充:
① 使用普通用户,切换到其它用户需要输入密码,如切换到root用户;
② 使用root用户切换到其它用户,无需密码,可以直接切换
(2)sudo命令
在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。
语法:sudo 其它命令
为普通用户配置sudo认证
① 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
② 在文件的最后添加(其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码):
③ 最后通过 :wq 保存
④ 切换回普通用户
⑤ 执行的命令,均以root运行
2、用户、用户组管理
Linux系统中可以:
Linux中关于权限的管控级别有2个级别,分别是:
(1)用户组管理
以下命令需root用户(或sudo命令)执行:
创建用户组语法:groupadd 用户组名
删除用户组语法:groupdel 用户组名
(2)用户管理
以下命令需root用户(或sudo命令)执行:
创建用户语法:useradd [-g -d] 用户名
查看用户所属组:id [用户名]
修改用户所属组(将指定用户加入指定用户组,指定的用户和用户组都必须是已存在的,否则会报错):usermod -aG 用户组 用户名
补充:在Linux中当前用户属于多个组并创建了个文件,在执行 ls -lh 命令时为什么只显示一个组?
答: 在 Linux 中,每个文件都关联一个所有者(用户)和一个组。然而,一个用户可以是多个组的成员。当你创建一个文件时,该文件的所有者会被设置为创建文件的用户,而文件的组通常会被设置为该用户的主要组(或称为初始组),除非在创建文件时显式地指定了其他组
(3)getent命令
查看当前系统中有哪些用户语法:getent passwd
共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看当前系统中有哪些用户组语法:getent group
包含3份信息,分别是:
组名称:组认证(显示为x):组ID
3、查看权限控制
通过ls -l 可以以列表形式查看内容,并显示权限细节
序号1,权限细节:权限细节总共分为10个槽位,如下图所示:
rwx(针对文件、文件夹的不同,rwx的含义有细微差别):
4、修改权限控制 (1)chmod命令
我们可以使用chmod命令,修改文件、文件夹的权限信息。注意,只有文件、文件夹的所属用户或root用户(或sudo命令)可以修改。
语法:chmod [-R] 权限 文件或文件夹
示例(其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限):
● chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x–x
● chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x–x
除了如上的表示方式,权限还可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
● 0:无任何权限, 即 —
● 1:仅有x权限, 即 --x
● 2:仅有w权限 即 -w-
● 3:有w和x权限 即 -wx
● 4:仅有r权限 即 r–
● 5:有r和x权限 即 r-x
● 6:有r和w权限 即 rw-
● 7:有全部权限 即 rwx
练习:
(1)将hello.txt的权限修改为: r-x–xr-x,数字序号为:chmod 515 hello.txt
(2)将hello.txt的权限修改为: -wx-w-rw-,数字序号为:chmod 326 hello.txt
(3)序号123代表的权限是:–x-w–wx
(2)chown命令
使用chown命令,可以修改文件、文件夹的所属用户和用户组。普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户(或sudo命令)执行。
语法:chown [-R] [用户]:[用户组] 文件或文件夹
示例:
● chown root hello.txt,将hello.txt所属用户修改为root
● chown :root hello.txt,将hello.txt所属用户组修改为root
● chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
● chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
五、Linux实用操作 1、各类小技巧(快捷键) (1)ctrl + c 强制停止 (2)ctrl + d 退出或登出
注:不能用于退出vi/vim编辑器
(3)历史命令搜索 (4)光标移动快捷键 (5)清屏 2、软件安装
操作系统安装软件有许多种方式,一般分为:
(1)yum命令
在Linux命令行内使用”应用商店”方式安装,可以采用yum命令安装软件。yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。(简单来说,yum是一个联网的程序,即:联网自动化安装软件的工具)
语法:yum [-y] [install | remove | search] 软件名称
注:yum命令需要root权限,可以su切换到root,或使用sudo提权;yum命令需要联网
示例:
● yum [-y] install wget, 通过yum命令安装wget程序
● yum [-y] remove wget,通过yum命令卸载wget命令
● yum search wget,通过yum命令,搜索是否有wget安装包(-y选项在该命令中不影响结果)
(2)apt命令 - 扩展
前面学习的各类Linux命令,都是通用的。 但是软件安装,CentOS系统和Ubuntu是使用不同的包管理器。CentOS使用yum管理器,Ubuntu使用apt管理器
语法:apt [-y] [install | remove | search] 软件名称
示例,用法和yum一致,同样需要root权限:
● apt install wget,安装wget
● apt remove wget,移除wget
● apt search wget,搜索wget
3、systemctl
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。能够被systemctl管理的软件,一般也称之为:服务。换句话说,软件要想被systemctl管理,需要本身就是个服务或用户手动将其注册为一个服务。
语法:systemctl start | stop | status | enable | disable 服务名
系统内置的服务比较多,比如:
● NetworkManager,主网络服务
● network,副网络服务
● firewalld,防火墙服务
● sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。
示例:
● yum install -y ntp,安装ntp软件(可以通过ntpd服务名,配合systemctl进行控制)
● yum install -y httpd,安装apache服务器软件(可以通过httpd服务名,配合systemctl进行控制)
补充:部分软件安装后没有自动集成到systemctl中(即,没有自动注册为一个服务),此时我们可以手动添加
4、软连接
在系统中创建软链接,可以将文件、文件夹链接到其它位置。类似Windows系统中的《快捷方式》
语法:ln -s 参数1 参数2
示例:
● ln -s /etc/yum.conf ~/yum.conf
● ln -s /etc/yum ~/yum
5、日期、时区 (1)date命令
通过date命令可以在命令行中查看系统的时间。
语法:date [-d] [+格式化字符串]
示例:
● 使用date命令本体,无选项,直接查看时间
我们还可以通过格式化字符串自定义显示格式:
文章来源:https://blog.csdn.net/weixin_53063457/article/details/139473522
微信扫描下方的二维码阅读本文
暂无评论内容