LINUX教程

image.png

一、Linux 简介

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1.Linux 的发行版

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

image.png

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。


image.png

2.Linux vs Windows

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。主要区别如下


image.png

3.Linux

Linux是一种操作系统

字符界面来进行操作管理的一种系统

类似于dos,使用命令的形式来操作管理系统

Dos命令行:磁盘操作系统的命令

4.Windows

Windows也是一种操作系统

例如:win7,win8,win10,winxp,win2000

窗口化图形化界面化操作管理系统

字符界面的优势:

1.字符页面占用的系统资源较少

2.字符页面减少了出错率

3.被攻击的可能性低,更加安全

image.png

在企业里通常使用linux系统作为服务器的操作系统

5.Linux特点:

1.Linux 严格的区分大小写

2.Linux 中所有的内容都是以文件形式保存

3.Linux 不靠扩展名区分文件类型

约定俗称:

大部分Linux下的扩展名,命名规则和windows系统保持一致

压缩包 *.gz *.bz2 *.tar.bz2 *.tgz

网页文件 *.html *.php

脚本文件 *.sh

配置文件 *.conf

注意!

windows下的程序不能直接在linux中安装和运行

测试工程师,使用linux做什么?

主要是查看日志,辅助开发定位问题

6.Xshell

连接远程Linux服务器的工具

Linux是允许多人同时连接或者操作的

Linux里输入命令后没有任何反应就代表是成功的。如果输错了,会给你报错

连接Linux服务器的必须参数:

服务器IP地址,端口号,登录的用户名,密码

root@localhost:~/a/b$

ubuntu@VM-0-16-ubuntu:~$

Root Ubuntu是用户名

LocalHost VM-0-16-ubuntu是主机名

~代表home目录(根目录)

~/a代表是根目录下的a文件

~/a/b代表是根目录下a文件夹下的b文件

$普通用户的提示符

#超级用户的提示符

7.linux的文件权限说明:

rwx rwx rwx

所有者 所属组 其他人

r读 w写 x执行 r读 w写 x执行 r读 w写 x执行

4 2 1 4 2 1 4 2 1

最高权限:777

常见权限:755 644

例如:Rwx rwx r_x 775

说明这个文件,它的所有者对它可读可写可执行

说明它的所属组的成员对它可读可写可执行

说明其他人,对它,可读可执行,不可写

8.小技巧:

上下箭头可以选择历史的命令

tab键可以自动补全文件名

二、Linux常用命令

1.pwd

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

查看当前所在位置,显示的是绝对路径

image.png

2.ls

查询目录中的内容

颜色说明:蓝色的为文件夹 白色为文件

红色为压缩文件 绿色代表该文件拥有最高权限(777)

image.png

ls 【选项】 【文件或者目录】

选项:

-a 显示所有文件,包括隐藏文件

image.png

-l 显示详细信息

-d 查看目录属性

3.ll

以行形式查看文件详细内容,包括隐藏文件

image.png

3.ctrl+L

清屏

Ctrl+C

强制退出

4.cd

cd是Change Directory的缩写,这是用来变换工作目录的命令。

移动到某个位置

cd 【选项】 【文件或者目录】

.. 返回到上一级目录

image.png

/ 返回到根目录

Cd /home/ubuntu/chenyukeji/05

相对路径:参照当前所在目录进行查询

路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!

绝对路径:从根目录开始指定,一级一级的递归查找,在任何目录下都可以进入指定目录 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

5.date

查看当前服务器时间

image.png

6.ifconfig

查看自己的ip地址

image.png

7.ping

检测网络连通

ping 【主机名/域名】

ping www.baidu.com

image.png
image.png

8.mkdir(make directory)

创建单独目录

mkdir 文件名

image.png

touch

创建文件

touch 文件名

image.png

9.rm(remove)

【选项】 【文件】

选项:

-r 删除目录

-f 强制

rmdir (remove directory)

删除空目录

rmdir 【目录名】

image.png

rm -rf 【文件名】

强制删除文件夹或者目录

禁术!慎重使用!

10.cp(copy)

复制

cp 【原文件的目录】 【目标文件的目录】

image.png
image.png
image.png

Cp -r【原文件的目录】 【目标文件的目录】

image.png

11.mv

剪切或者改名

mv 【目标文件目录】

注意:原文件目录和目标目录不在同一目录下为剪切,否则为改名

剪切:

image.png

改名

image.png

12.vim

什么是 vim?

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

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

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

vim 键盘图:

image.png

vi/vim 的使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。

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

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

vim 中批量添加注释

方法一 :块选择模式

批量注释:

Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。

取消注释:

Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。

方法二: 替换命令

批量注释。

使用下面命令在指定的行首添加注释。

使用名命令格式: :起始行号,结束行号s/^/注释符/g(注意冒号)。

取消注释:

使用名命令格式: :起始行号,结束行号s/^注释符//g(注意冒号)。

例子:

1、在 10 - 20 行添加 // 注释

:10,20s#^#//#g

2、在 10 - 20 行删除 // 注释

:10,20s#^//##g

3、在 10 - 20 行添加 # 注释

:10,20s/^/#/g

4、在 10 - 20 行删除 # 注释

:10,20s/#//g

q 退出程序

w 保存文件

编辑文件内容

vim 【文件名】

Vi 【文件名】

输入i进入到insert状态,不想输入时按ESC键退出编辑状态

输入:进入到命令页面,可以输入q! 不保存退出,

wq! 保存并退出

image.png

13.cat

查看文件内容

cat 【文件名】

more 【文件名】

image.png

14.chmod

赋权

Chmod 【赋权级别】 【文件名】

Chmod 664 a.txt

Chmod -R 777 abc

加R是递归,对该文件和其为子文件统一赋权

image.png

15.netstat

查看当前端口号

Netstat -an //查看当前所有的端口号

netstat -ntlp //查看当前所有TCP端口

netstat -nulp //查看当前所有UDP端口

netstat -ntulp |grep 80 //查看所有80端口使用情况·

netstat -an | grep 3306 //查看所有3306端口使用情况·

16.ps -ef

查看进程号

Pid:进程号

Kill -9 进程号

强制杀死某个进程

17.Su

切换为超级用户

Exit 退出超级用户

18.Top

动态查看系统资源占有率

19.Find

根据文件名查找指定文件

Find 【搜索目录】【搜索类型】 【搜索文件名】

Find / -name aaa

20.less

查看静态日志文件

less [文件名]

q 退出

/ 搜索

空格 向下翻页

Page up 向上翻页

Page down 向下翻页

Enter 向下一行

y 向上一行

21.tail

查看动态日志文件

tail -100f [文件名]

22.grep过滤

一般grep前面要加一个管道符“|”

netstat -ntulp |grep 80 //查看所有80端口使用情况·

netstat -an | grep 3306 //查看所有3306端口使用情况·

Tail -100f abc.txt | grep xxx

less abc.txt | grep xxx

23.zip压缩文件

zip 压缩文件名 源文件 备注:压缩文件

image.png

压缩并指定目录
举例:zip /home/testchenyu/abc/xx.zip /home/testchenyu/aaa/

image.png

zip -r 压缩文件名 源目录 备注:压缩目录

image.png

压缩并指定目录

zip -r /home/testchenyu/abc/ddd.zip /home/testchenyu/aaa/ddd

image.png

24.UNZIP

unzip 压缩文件 备注:解压缩.zip文件

image.png

Unzip -d /指定文件名 压缩文件

把文件解压到指定目录下。需要用到参数-d

unzip -d ../ xxx.zip 解压到上一级

image.png

unzip -d /home/testchenyu/abc/ xxx.zip(解压到指定目录)

image.png

unzip -n test.zip unzip -n -d /temp test.zip

解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数

image.png

25.tar-zcvf/tar -zxvf

tar -zcvf 压缩包名.tar.gz 源文件 备注:压缩为-tar.gz格式的文件

image.png

压缩.tar.gz格式到指定目录下

命令格式:tar -zcvf 【目录】/ 【压缩包文件名.tar.gz】【源文件】

例如: tar -zcvf /home/testchenyu/abc/xxx.tar.gz xxx

image.png

tar -zxvf 压缩包名.tar.gz 备注:解压缩-tar.gz格式的文件

image.png

tar -zxvf 压缩包名.tar.gz -C 指定目录 将tar.gz文件解压到指定文件夹。 tar -zxvf xxx.tar.gz -C /home/testchenyu/abc/

image.png

从绝对路径压缩文件到指定目录

tar -zxvf /home/testchenyu/aaa/xxx.tar.gz -C /home/testchenyu/abc/

image.png

sz 文件名 下载

image.png

rz 上传

你可能感兴趣的:(LINUX教程)