Linux笔记

Linux

img

Linux的应用领域

个人桌面领域的应用

此领域是传统linux应用最薄弱的环节,传统linux由于界面简单、操作复杂、应用软件少的缺 点,一直被windows所压制,但近些年来随着ubuntu、fedora [fɪˈdɔ:rə] 等优秀桌面环境的兴 起,同时各大硬件厂商对其支持的加大,linux在个人桌面领域的占有率在逐渐的提高。

服务器领域

linux在服务器领域的应用是最强的。 linux免费、稳定、高效等特点在这里得到了很好的体现,近些年来linux服务器市场得到了飞 速的提升,尤其在一些高端领域尤为广泛。

嵌入式领域

近些年来linux在嵌入式领域的应用得到了飞速的提高 linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小 可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高 主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件 等都是其应用领域。以后再物联网中应用会更加广泛。

Linux的介绍

Linux的创始人

林纳斯·本纳第克特·托瓦兹

Linux主要的发行版: Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、 OpenSUSE

image-20210811132802396

image-20210811132946101

image-20210811133022445

安装vm和Centos

学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 Centos系统来学习

VMware Workstation Pro v16.1.2 网盘下载地址:链接: https://pan.baidu.com/s/1mvnHa92bP29R6VIj_Ev9Sg 提取码: u7du

激活密钥:ZF3R0-FHED2-M80TY-8QYGC-NPKYF

VM安装教程:虚拟机VMware16安装教程

阿里CentOS8下载链接:https://mirrors.aliyun.com/centos/8/isos/x86_64/

image-20210811135227877

Centos8在VM上安装的教程:https://blog.csdn.net/renfeigui0/article/details/102543039

安装open-vm-tools

open-vm-tools 安装后,可以让我们在windows下更好的管理vm虚拟机

  • 可以直接粘贴命令在windows 和 centos系统之间
  • 可以设置windows和centos的共享文件夹

centOS8,他会自带一个vmtools,很方便,直接打开终端命令行,输入命令su ,管理员密码,进入root用户,

image-20210811172317401

然后开始安装vmtools工具。因为在Linux中,open-vm-tools基本上已经替代了软件中自带的VMtools工具,因此我们只需要安装open-vm-tools。

输入命令

yum install open-vm-tools

即可看到如下图示:

image-20210811172549158

然后重启系统

接下来设置主机的共享文件夹。点击VMware Workstation虚拟机菜单上的“虚拟机”-设置“打开虚拟机的设置界面。切换至”选项“选项卡,点选”共享文件夹“,就可以在**右边添加你需要共享主机的文件夹**了。

image-20210811174646441

image-20210811175045912

在linux创建共享目录

mkdir /mnt/share(share是我们自己定义的共享文件夹目录名)

若出现mkdir: 无法创建目录 “/mnt/share”: 权限不够,在命令前加sudo即可

image-20210811185232373

image-20210811191427309

进入终端命令行
输入以下指令

vmware-hgfsclient

image-20210811175757470

如果出现你之前选择的文件名称,说明可以挂载

输入以下命令:

sudo vmhgfs-fuse .host:/window-linux-share /mnt/share-o nonempty -o allow_other

然后我们以下命令查看文件夹

cd /mnt   //抓到该目录
ls    //用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
cd /mnt/share
ls 

image-20210811195153419

image-20210812100449283

关机重启命令

shutdown –h now 立该进行关机

shudown -h 1 “hello, 1 分钟后会关机了”

shudown -h 20:00 系统会在20:00关机

shutdown –r now 现在重新启动计算机

halt 关机,作用和上面一样.

reboot 现在重新启动计算机 等同于shutdown –h now

sync 把内存的数据同步到磁盘.

用户登录和注销

登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.

在提示符下输入 logout 即可注销用户

指令

帮助指令

image-20210812093204590

man指令

man就是**(manual手册)**的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分

help指令

获得shell内置命令的帮助信息

info指令

得到的信息比 man 还要多,info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。所以得到的信息当然更多

文件目录类指令

Linux 系统目录结构

image-20210812095347875

img

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

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

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

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

image-20210812095048607

cd 指令

cd**(英文全拼:change directory)**命令用于切换当前工作目录。

cd ~         				#跳到自己的 home 目录 
cd ..						#回到当前目录的上一级目录

mkdir指令

mkdir**(英文全拼:make directory)**命令用于创建目录。

mkdir 目录名称					#创建目录。
mkdir -p 目录名称/子目录名称	     #使用 -p 参数来创建多级文件夹

rmdir指令

rmdir**(英文全拼:remove directory)命令删除空的目录非空不能删除**。如果需要删除非空目录,需要使用 rm -rf 要删除的非空目录

rmdir 目录名       			#删除空目录,如果目录非空,那么就不能删除
rmdir -p 目录名/子目录名     	 #当子目录被删除后使它也成为空目录的话,则顺便一并删除 

pwd 指令

pwd是词组**(print working directory)的首字母缩写,即打印工作目录;工作目录就是你当前所处于的那个目录。pwd始终以绝对路径的方式打印工作目录,即从根目录(/)开始到当前目录的完整路径**。在实际工作中,我们常常记不起当前目录的完整路径,此时pwd命令就派上用场了。

ls指令

ls**(英文全拼:list files)**命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

ls -a(a就是all)                   #显示当前目录所有的文件和目录,包括隐藏的
ls -l(l就是list)					#以列表的方式显示信息
ls -r 							#将文件以相反次序显示(原定依英文字母次序)
ls -t     						#将文件依建立时间之先后次序列出

image-20210812133332619

touch指令

touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

touch 文件名              #肉文件存在,修改文件的时间属性 不存在创建新的空白文件 

cp指令

cp**(英文全拼:copy file)**命令主要用于复制文件或目录。

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。
 cp –r test/ newtest      #使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下

rm指令

rm**(英文全拼:remove)**命令用于删除一个文件或者目录。

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

rm  -r  *     								 #删除当前目录下的所有文件及目录
rm  homework(假定为一个目录)  					#rm: 无法删除目录"homework": 是一个目录  
rm  -r  homework(假定为一个目录) 				#是否删除 目录 "homework"? y 

mv指令

mv**(英文全拼:move file)**命令用来为文件或目录改名、或将文件或目录移入其它位置。

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
命令格式运行结果
mv source_file(文件) dest_file(文件)将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录)目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件)出错
mv a b					   #将文件 a 改名为 b
mv info/ logs 			#将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv /usr/runoob/*   			#再如将 /usr/runoob 下的所有文件和目录移到当前目录下

image-20210812142232078

文件查看

image-20210812142448258

cat指令

cat**(英文全拼:concatenate)连锁的**命令用于连接文件并打印到标准输出设备上.就是从第一行显示文件内容

  • -n 或 --number:由 1 开始对所有输出的行数编号。
  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
  • -E 或 --show-ends : 在每行结束处显示 $。
  • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
  • -A, --show-all:等价于 -vET。
  • **-e:**等价于"-vE"选项;
  • **-t:**等价于"-vT"选项;
cat -n textfile1 > textfile2				#把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
cat /dev/null > /etc/test.txt				#清空 /etc/test.txt 文档内容:

more指令

more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数
more -s testfile						#逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile						#从第 20 行开始显示 testfile 之文档内容。

less指令

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。

  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将"tab"键显示为规定的数字空格
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页
less abc.txt							#查看文件

echo指令

echo输出内容到控制台

echo "It is a test"							#显示普通字符串
echo -n 									#表示不换行输出

>指令和>>指令

> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部

ls -l > hello.txt                #将 ls -l 的显示的内容覆盖写入到 hello.txt 文件,如果该文件不存在,就创建该文件
cat 文件1>文件2 				  #功能描述:将文件 1 的内容覆盖到文件 2

head指令

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。
head a.txt									#显示a.txt文件的开头 10 行
head -n 5 a.txt								#显示a.txt文件的开头5行
head -c 20  a.txt							#显示a.txt文件的前 20 个字节

tail指令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail a.txt	        #默认显示最后 10 行
tail -f  a.txt			#要跟踪名为a.txt的文件的增长情况
tail -c 10 a.txt		#显示文件a.txt的最后 10 个字符

history指令

查看已经执行过历史命令,也可以执行历史指令

  • n :数字,要列出最近的 n 笔命令列表
  • -c :将目前的shell中的所有 history 内容全部消除
  • -a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles,则预设写入 ~/.bash_history
  • -r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
  • -w :将目前的 history 记忆内容写入 histfiles。
history                      #显示最近使用的指令

压缩和解压类

gzip/gunzip 指令

**gzip**命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名

注意:当我们使用gzip对文件进行压缩后,不会保留原来的文件。

gzip * 								#压缩目录下的所有文件
gzip ab.txt							#压缩目录下的ab.txt文件

**gunzip **是个使用广泛的解压缩程序,它用于解开被 gzip 压缩过的文件,这些压缩文件预设最后的扩展名为 .gz

 gunzip ab.gz 						#解压ab

zip/unzip 指令

zip 命令用于压缩文件。zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip

  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。
  • -q 不显示指令执行过程。
zip -q -r html.zip /home/html		       #将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip

unzip命令用于解压缩zip文件unzip为.zip压缩文件的解压缩程序。

  • -d<目录> 指定文件解压缩后所要存储的目录。
unzip -d /home/html html.zip				#将html.zip解压到/home/html/ 这个目录下

tar 指令

tar**(英文全拼:tape(磁带) archive(存档) )命令用于备份文件,是用来建立,还原备份文件的工具程序,它可以加入解开备份文件内的文件。最后打包后的文件是tar.gz**的文件。

  • -c 产生.tar打包文件
  • -v 显示详细信息
  • -f 指定压缩后的文件名
  • -z 打包同时压缩
  • -x 解包.tar文件
tar -czvf test.tar.gz a.txt              #压缩 a.txt文件为test.tar.gz
tar -xzvf test.tar.gz                    #解压到当前文件夹

搜索查找类

image-20210812160443933

find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终 端。

  • -name<查询方式> 按照指定的文件名查找模式查找文件

  • -user<用户名> 查找属于指定用户名所有文件

  • -size<文件大小> 按照指定的文件大小查找文件

find /home -name hello.txt     					#在home目录下按照名字的方式去寻找hello.txt文件
find / -size +20M								#査找整个 linux系统下大于20m的文件(+n大于-n小于n等于)

grep指令和 管道符号 |

grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

  • -n 显示匹配行及行号。

  • -i 忽略字母大小写

grep test *file   		     #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
cat hello.txt | grep -n yes						#在 hello. txt文件中,查找"yes"”所在行,并且显示行号

Vim编辑器

06_Vim文本编辑器

所有的 Linux 系统都会内建 vi 文本编辑器。 Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别 语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别 丰富,在程序员中被广泛使用

vi和vim常用的三种模式

什么是 vim?

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

正常模式:

以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用 『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

输入模式

按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

命令行模式:

在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的 动作则是在此模式中达成的

用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识別为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,被当作了ー个命令。

常用的几个命令:

i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切換到底线命令模式,以在最底一行输入命令。

我们可以将这三个模式想成底下的图标来表示:

img

vi/vim 使用实例

使用 vi/vim 进入一般模式

如果你想要使用 vi 来建立一个名为 runoob.txt 的文件时,你可以这样做:

vim runoob.txt

Linux yum 命令

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum 语法

yum [options] [command] [package ...]
  • **options:**可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
  • **command:**要进行的操作。
  • **package:**安装的包名。

yum常用命令

  • 列出所有可更新的软件清单命令:yum check-update

  • 更新所有软件命令:yum update

  • 仅安装指定的软件命令:yum install <package_name>

  • 仅更新指定的软件命令:yum update <package_name>

  • 列出所有可安裝的软件清单命令:yum list

    • 在列出软件包时,我们可能需要特定的软件包。 使用yum list我们将获得grep命令的帮助。 我们将使用名称为jdk grep软件包。 yum list | grep jdk

      image-20211018155542446

  • 删除软件包命令:yum remove <package_name>

  • 查找软件包命令:yum search < keyword >

  • 清除缓存命令:

    • yum clean packages: 清除缓存目录下的软件包
    • yum clean headers: 清除缓存目录下的 headers
    • yum clean oldheaders: 清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
实例 1

安装 pam-devel

 yum install pam-devel

image-20211018142127491

实例 2

移除 pam-devel

yum remove pam-devel

image-20211018142320627

实例 3

利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?

yum list pam*

image-20211018142452019

更换yum源

image-20211018160432956

cd /etc/yum.repos.d

备份

mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.backup

选择自己linux版本的,下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo      
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo    

清理缓存并生成新的缓存

yum clean all

yum makecache

image-20211018161646449

wget命令

wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。

它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。

首先安装wget

yum install -y wget

使用wget --help来查看相关命令

image-20211018143146402

网络命令

(1)ifconfig

查看当前网卡的配置信息

这个命令属于 net-tools中的一个命令,但是 Centos7中 minimal版并没有集成这个包

所以7的时候需要自己手动安装

yum install net-tools -y

如果没有ifconfig,可以使用 Ip addr临时代替

image-20211018144323841

(2)netstat

查看当前网络的状态信息

一个机器默认有65536个端口号[0,65535]

这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问

一个端口只能被一个程序所监听,端口已经被占用

netstat -anp      #查看所有的进程和端口使用情况

image-20211018144838437

netstat -r     #核心路由表==route

image-20211018145006214

(3)ping

ping 自己的ip地址       #查看与目标IP地址是否能够连通

(4)telnet

telnet  ip地址 端口号     #查看与目标IP的指定端口是否能够连通

输入以下命令

发现以下错误

image-20211018145705571

执行以下命令

yum install telnet -y

image-20211018145959024

再次执行之前的命令

image-20211018150225443

(5)curl

restful我们所有的资源在网络上中都有唯一的定位

那么我们可以通过这个唯一定位标识指定的资源

http://localhost:8080/lucky/user.action/666

curl -V     #查看curl的安装版本以及支持的协议:

image-20211018150756052

curl -X GET http://www.baidu.com     #curl 默认的 HTTP 动词是 GET,使用 -X 参数可以支持其他动词

image-20211018150959517

防火墙

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术

centos7+中的防火墙

#查看防火墙状态
systemctl status firewalld.service

image-20211018151520224

#临时停止 firewall
systemctl stop firewalld.service
#开启 firewall
systemctl start firewalld.service
#禁止 firewa11开机启动
systemctl disable firewalld.service

#查看防火墙状态,是否是 running
firewall-cmd --state
#重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --reload
#列出支持的zone
firewalt-cmd --get-zones
#列出支持的服务,在列表中的服务是放行的
firewall-cmd --get-services
#查看ftp服务是否支持,返回yes或者no
firewall-cmd --query-service ftp
#临时开放ftp服务
firewal1-cmd --add-service=ftp
#水久开放ftp服务
firewall-cmd--add-service=ftp --permanent
#永久移除ftp服务
fi rewa11-cmd-- remove- service=ftp --permanent
#水久添加80端口
firewal1-cmd --add-port=80/tcp --permanent

开启一个端口

–zone #作用域
–add-port=90/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

#添加
firewall-cmd --zone=public --add-port=90/tcp --permanent

image-20211018152715301

#重新载入
firewall-cmd --reload
#查看
firewall-cmd --zone=public --query-port=90/tcp

image-20211018153023375

#删除
firewall-cmd --zone=public --remove-port=90/tcp --permanent

image-20211018153802950

Linux的软件安装

环境变量

当我们执行一个命令的时候,默认从当前路径开始查找,如果当前路径找不到对应的命令文件,从环境变量$PATH 查找, $PATH的配置文件在/etc/ profilewindow路径与路径之间用(分号连接),Linux路径与路径之间用:(冒号)连接,Linux每次修改完成之后,需要重新加载文件 source/etc/ profile

软件的安装方式

  • 解压就可以使用

  • 使用安装包安装( window- exe Linux-rpm)

    • 自己下载安装包

    • 使用统一的软件帮助我们安装

  • 通过源码安装

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值