1.什么是Linux?

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户,多任务,支持多线程和多CPU的操作系统。它能运行主要的UNIX工作软件,应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2.什么是Shell?

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的commang.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。 中文名: 壳 外文名: Shell 性质 : 命令解析器 用途 : 接受用户命令

术语 它同时又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设计好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

3.Linux的运行在行提示符后运行 [kiosk@foundation0 Desktop]$ (行提示符) 含义: kiosk : 用户 @ : 分隔符 foundaton0 : 主机短名称 Desktop : 所在系统位置 $ : 用户身份,$为普通用户(草民),#为超级用户(天子)。

4.虚拟机管理命令: rht-vmctl start desktop /server 开启 rht-vmctl poweroff desktop / server 关闭 rht-vmctl view desktop / server 显示 rht-vmctl reset desktop / server 重置

开启后,进行显示

虚拟机登陆:

1.普通用户登陆

点击 Student User即可,然后进行password密码输入;

2.为方便操作,则将其改为超级用户

(1)点击 Not listed?

(2)在Username中输入root(超级用户)

![](http://i2.51cto.com/images/blog/201808/02/d3cd5232a03b7146f74c0a10a2e6ee48.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(3)登陆password,输入内容分为页面正下方图标后Redhat

即可进入虚拟机

5.Linux系统结构

(1)Linux系统是个倒树型系统;

(2)二级目录的作用:

 /bin                   #二进制文件,系统的常规命令(如data...)
 /boot                 #系统启动分区,系统启动时读取的文件
 /dev                  #设备文件
 /etc                   #大多数配置文件
 /home              #普通用户的家目录
 /lib                    #32位函数库
 /lib64               #64位函数库
 /media             #手动临时挂载点  (linux为用户准备了两个手动临时挂载点)
 /mnt                 #手动临时挂载点
 /opt		               #第三方软件安装位置

/proc #进程信息及硬件信息 /root #超级用户家目录 /run #临时设备的默认挂载点(例如u盘如果没有手动安排挂载点,就在这个目录下 run/media/sdb1) /sbin #系统管理命令 /srv #数据 /var #数据 /sys #内核相关信息 /tmp #临时文件 /usr #用户相关设定

6.Linux下的文件管理

(1)建立文件

  touch file		     #建立空文件,或修改文件的时间戳
		

		
  touch file1 file2
		
	![](http://i2.51cto.com/images/blog/201808/02/0344a36fd07e2302086ffb369466eb1f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(2)建立目录

  mkdir                          #建立单目录
		
![](http://i2.51cto.com/images/blog/201808/02/cfdfeb6e9753a5d0b15e83f49f9151e2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
		mkdir -p                     #建立多层目录
		
![](http://i2.51cto.com/images/blog/201808/02/14617492428a1db14e84be2820111bd9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(3)文件的删除

  rm -f file(file为删除的文件名)强行删除文件file        (如果不加-f会提示是否删除)
		
		注释:

-f -r -r -f -rf -fr 作用相同都为删除本目录下以及内部内容且不提示 -f:提示 -r:递归

	![](http://i2.51cto.com/images/blog/201808/02/a1c3caa2e95420022c7e55a8efadc9af.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
		rm -fr dir (dir为删除的目录名)强行删除目录本身及里面内容
		
	![](http://i2.51cto.com/images/blog/201808/02/0d5a0cee1bcd8ad67704f7252b651559.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(4)文件的编辑

  vim file
  进入文件后是浏览模式,不能编辑

		![](http://i2.51cto.com/images/blog/201808/02/e8d2995a409e5799b658f36247f71040.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

  输入<i> 进入插入模式写字符(此时左下方显示INSERT,<i>是指键i小写,下面<esc>相同)

![](http://i2.51cto.com/images/blog/201808/02/7b9e923fca109d73fd2d7073016fbc51.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

  编写完成后按<ESC>退出插入模式
		
	![](http://i2.51cto.com/images/blog/201808/02/12b1af6266115ccde32f851300d12027.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
  输入:wq	完成文件编辑。w表示写入,q退出
		
	![](http://i2.51cto.com/images/blog/201808/02/2c7b59d7255a447692bbfd71a6e1ef54.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
 点击文件查看
	 
	![](http://i2.51cto.com/images/blog/201808/02/99ee596287aecd04e0dc67e1e381074b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

7.Vim的使用技巧

在浏览模式

(1)字符大管理 yy #复制一整行 yl #复制一个字母 yw #复制一个单词 p #粘贴

dd #删除一整行 dl #删除一个字母 dw #删除一个单词

cc #剪掉整行 cl #剪掉一个字母 cw #剪掉一个单词 注意: 当剪切后vim会进入插入模式, 如果要粘贴需要按<esc>退出插入模式然后粘贴

 ![](http://i2.51cto.com/images/blog/201808/02/01a9f94944d6f17cab20a432f9c366b2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
 
 ![](http://i2.51cto.com/images/blog/201808/02/e79cfa693b0dd052ddb23005355e051e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
 
 ![](http://i2.51cto.com/images/blog/201808/02/0f0f359c6036aebcc6b6adee84129d06.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

u ##撤销 ctrl+r ##恢复

(2)字符的批量处理 ctrl + v ##进入可视化模式,在可视化模式中可以批量选择字符并操作

如何批量添加字符 1)把光标移动到要加入字符所在列

2)ctrl + v 进入可视化模式

3)选中要加字符所在列(用方向键上下选中即灰色)

4)按<I>进入插入模式并写入要加入的字符,<I>此处的i为大写I

5)按<ESC>批量添加结束

6)如何批量修改 :%s/原有字符/修改后字符/g

:1,5s/原有字符/修改后字符/g (1,5)代表一到五行改变

这里s代表行,g代表列,如果不加g,则改变的信息只有每行第一次出现的列改变;

(3) 如何同时编辑多个文件 vim file :sp file1

注意: 光标默认在那个文件中操作的就是那个文件 ctrl+w 按完放开在按上|下可以移动光标所在窗口

![](http://i2.51cto.com/images/blog/201808/02/44b20c478186a2fd521f5b507d8511e2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(4)正常退出方法

	 正常退出方法
  :q	##当文件没有做任何修改是可用
  :q!	##当文件修改但不行保存修改时可用
		
		![](http://i2.51cto.com/images/blog/201808/02/63ca3e9e8fa0058d7fd1c29d4e009520.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
		打开修改的文件
		
		![](http://i2.51cto.com/images/blog/201808/02/e800358ecb7244bd4fe681377b0a32a2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
  :wq	##退出保存
		
		![](http://i2.51cto.com/images/blog/201808/02/2c65bbb80acc890247084a0d8adb7112.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
		打开修改的文件
		
		![](http://i2.51cto.com/images/blog/201808/02/af32d39049eb8099735c26be8219f75d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
  :wq!	##当文件属于自己或用户为root时可用
		
		
(6)异常退出	
	
	当没有正常退出,而是直接点击有上角叉号时,会出现异常退出的情况
	当vim非正常退出会产生.filename.swap文件
	
	当此文件出现,vim工作异常

Found a swap file by the name ".file.swp" <<<异常退出未保存的数据 owned by: root dated: Wed Aug 1 02:59:25 2018 me: ~root/Desktop/file modified: YES user name: root host name: localhost process ID: 2046 h swap file by the name ".file.swp" owned by: root dated: Wed Aug 1 02:59:25 2018 ile opening file "file"

Swap file ".file.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

解决办法:选择选项即可 [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

[O]pen Read-Only 只读打开 (E)dit anyway 放弃未保存数据 进入文件 (R)ecover 恢复 (D)elete it 删除.swp文件 (Q)uit (A)bort 退出

8.文件查看 cat file ##输出文件的所有内容

cat -b file ##输出文件所有内容并加入行号,只是在显示页面会添加序号,不会修改原文件

cat -b file > file1 ##把file文件中的数据添加行号并复制给file1新文件

less file ##分页浏览file文件

<上>|<下> ##向上|向下移动一行 <pgup>|<pgdn> ##向上|向下移动一页

输入/关键字 ##高亮显示关键字,n向下匹配N向上匹配

q ##退出

tail file ##显示文件file的后十行(默认) tail -n file ##显示文件file的后n行

head file ##显示文件file的前十行(默认) head -n file ##显示文件file的前n行

9.文件复制 cp sourcefile destfile ##把原文件复制一份命名为目标文件

此时的桌面

cp sourcefile1 sourcefile2 destdir/ ##复制多个文件到目录中 首先mkdir创建目录!!!!

cp -r sourcedir destdir/ ##复制原目录及内部的文件到目标目录(此处使用了-r,若不加,只能进行空目录的复制)

10.文件的移动 注释: 若将file文件移动到当前目录下file1的话,则为重命名 mv sourcefile destfile ##重名命

file的内容!

file1的内容!

移动后输出y表示yes

最后file1的内容

mv sourcefile destdir ##移动原文件到destdir目录 !!先用mkdir创建目录

mv sourcedir destdir ##移动原目录到destdir目录

mv test/* . ##将当前test目录下的所有文件移动到当面目录下(当前目录为desktop)"."代表当前目录,*代表所有;

11.文件路径 (1)相对路径 文件相对当前系统位置的一个名称简写 文件名称省略了当前路径的值 #例:desktop/hello/file 只有当前在此目录中时可以使用 文件名称不以/开头 文件名称会自动在字符前加入'pwd'显示的路径 #在shell中输入pwd会显示当前所在目录的绝对 路径

(2)绝对路径 是文件在系统中真实的位置 任何时间都可以精确表示一个文件的名称 #例:/root/Desktop 文件名称以/开头

12.关于路径的命令 pwd ##显示当前工作目录

cd ##切换当前工作家目录

cd /mnt ##切换到/mnt目录中

cd - ##进入当前目录之前所在目录中

cd ~student ##进入到student用户家目录

  1. ls显示文件信息

-l 长列表显示文件信息,显示文件元数据(ls -l) -a 显示所有文件包括以“.”开头的('.'表示隐藏文件,并不在桌面显示)(ls -a) -s 显示文件大小 -S 文件大小排序ls -l -d 显示目录 -R 递归显示

下面对目录名为westos1的目录进行操作
 
 westos1里面有名为file,file1的文件;并且有名为rmwestos,westos的目录;而rmwestos里面还有名为rmfile的文件;
 
 进行操作如下图:
 ![](http://i2.51cto.com/images/blog/201808/09/938fcfc52e4f86dd87c20a600d2fbffe.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
 以上命令执行完毕。
  1. 什么是套接字? sockets是保证外界和内部进行交互的窗口。

14.通配符全称通用匹配符号

  •     	表示匹配0~任意字符;
    

? 表示匹配单个字符 rm -fr ????删掉文件名是四个字符的文件 ; 【【:alpha:】】单个字母; 【【:upper:】】单个大写字母; 【【:lower:】】单个小写字母; 【【:digit:】】单个数字; 【【:alnum:】】单个数字或字母; 【【:space:】】单个空格; 【【:punct:】】单个符号; 如果要删除文件名是两个字母组成的,则用两次【【:alpha:】】,即为 rm -fr【【:alpha:】】【【:alpha:】】;便可删除。(一般组合使用)

下图为上面方法的演示: ?的使用前后对比图

【【:lower:】】单个小写字母的使用

【【:upper:】】单个大写字母

【【:alpha:】】单个字母;则部份字母大小写;

?和【【:digit:】】单个数字的联合使用删除文件file1

【【:alnum:】】单个数字或字母,包含着数字或者字母;

?和【【:punct:】】单个符号联合使用删除fi@@le;

若文件名中含有空格,同理操作即可;

  • 的使用前后图像对比;

绝对匹配 {1..3} 1 2 3

{a..c} a b c

[1-3] 1或2或3

模糊匹配 [ac] a或c

[^ac]除了a和c [!ac]除了a和c

[[:alpha:][:punct:]]表示单个符号或字母

[![:alpha:][:punct:]]既不是符号也不是字母(也只针对单个符号,字母)