一、Linux 简介
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.Linux 的发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
2.Linux vs Windows
目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。主要区别如下
3.Linux
Linux是一种操作系统
字符界面来进行操作管理的一种系统
类似于dos,使用命令的形式来操作管理系统
Dos命令行:磁盘操作系统的命令
4.Windows
Windows也是一种操作系统
例如:win7,win8,win10,winxp,win2000
窗口化图形化界面化操作管理系统
字符界面的优势:
1.字符页面占用的系统资源较少
2.字符页面减少了出错率
3.被攻击的可能性低,更加安全
在企业里通常使用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 的缩写,也就是显示目前所在目录的命令。
查看当前所在位置,显示的是绝对路径
2.ls
查询目录中的内容
颜色说明:蓝色的为文件夹 白色为文件
红色为压缩文件 绿色代表该文件拥有最高权限(777)
ls 【选项】 【文件或者目录】
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
3.ll
以行形式查看文件详细内容,包括隐藏文件
3.ctrl+L
清屏
Ctrl+C
强制退出
4.cd
cd是Change Directory的缩写,这是用来变换工作目录的命令。
移动到某个位置
cd 【选项】 【文件或者目录】
.. 返回到上一级目录
/ 返回到根目录
Cd /home/ubuntu/chenyukeji/05
相对路径:参照当前所在目录进行查询
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦!
绝对路径:从根目录开始指定,一级一级的递归查找,在任何目录下都可以进入指定目录 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
5.date
查看当前服务器时间
6.ifconfig
查看自己的ip地址
7.ping
检测网络连通
ping 【主机名/域名】
ping www.baidu.com
8.mkdir(make directory)
创建单独目录
mkdir 文件名
touch
创建文件
touch 文件名
9.rm(remove)
【选项】 【文件】
选项:
-r 删除目录
-f 强制
rmdir (remove directory)
删除空目录
rmdir 【目录名】
rm -rf 【文件名】
强制删除文件夹或者目录
禁术!慎重使用!
10.cp(copy)
复制
cp 【原文件的目录】 【目标文件的目录】
Cp -r【原文件的目录】 【目标文件的目录】
11.mv
剪切或者改名
mv 【目标文件目录】
注意:原文件目录和目标目录不在同一目录下为剪切,否则为改名
剪切:
改名
12.vim
什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim 键盘图:
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! 保存并退出
13.cat
查看文件内容
cat 【文件名】
more 【文件名】
14.chmod
赋权
Chmod 【赋权级别】 【文件名】
Chmod 664 a.txt
Chmod -R 777 abc
加R是递归,对该文件和其为子文件统一赋权
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 压缩文件名 源文件 备注:压缩文件
压缩并指定目录
举例:zip /home/testchenyu/abc/xx.zip /home/testchenyu/aaa/
zip -r 压缩文件名 源目录 备注:压缩目录
压缩并指定目录
zip -r /home/testchenyu/abc/ddd.zip /home/testchenyu/aaa/ddd
24.UNZIP
unzip 压缩文件 备注:解压缩.zip文件
Unzip -d /指定文件名 压缩文件
把文件解压到指定目录下。需要用到参数-d
unzip -d ../ xxx.zip 解压到上一级
unzip -d /home/testchenyu/abc/ xxx.zip(解压到指定目录)
unzip -n test.zip unzip -n -d /temp test.zip
解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数
25.tar-zcvf/tar -zxvf
tar -zcvf 压缩包名.tar.gz 源文件 备注:压缩为-tar.gz格式的文件
压缩.tar.gz格式到指定目录下
命令格式:tar -zcvf 【目录】/ 【压缩包文件名.tar.gz】【源文件】
例如: tar -zcvf /home/testchenyu/abc/xxx.tar.gz xxx
tar -zxvf 压缩包名.tar.gz 备注:解压缩-tar.gz格式的文件
tar -zxvf 压缩包名.tar.gz -C 指定目录 将tar.gz文件解压到指定文件夹。 tar -zxvf xxx.tar.gz -C /home/testchenyu/abc/
从绝对路径压缩文件到指定目录
tar -zxvf /home/testchenyu/aaa/xxx.tar.gz -C /home/testchenyu/abc/