1、基本介绍
Linux是一种自由和开放源码的类UNIX操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位 和64位硬件。该操作系统的内核由林纳斯·托瓦兹于1991年10月5日首次发布。
Linux最初是作为支持英特尔x86架构的个人计算机的一个自由操作系统,现可运行在服务器和其他大型平台上,如大型计算机和超级计算机。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。
开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面(命令界面,图形界面等),出色的速度性能。
发行版本:是一些厂商将Linux系统内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合,例如RedHat Linux,Ubuntu, CentOS(企业社区版)等。
linux目录结构:
查看目录:
- bin 存放二进制可执行文件(ls,cat,mkdir等)
- boot 存放用于系统引导时使用的各种文件
- dev 用于存放设备文件
- etc 存放系统配置文件
- home 存放所有用户文件的根目录
- lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt 系统管理员安装临时文件系统的安装点
- opt 额外安装的可选应用程序包所放置的位置
- usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
开发人员关注目录:
配置目录:软件安装后配置文件选择放入的地址。
软件安装目录:**
opt目录一般用来安装应用程序。部署的API程序一般放在这个目录。
部署的API放入用户的目录:/home/用户名
注意:Linux系统的文件系统是以斜杠“/”开始,不是windows中的盘符概念。
Linux系统的文件权限
在linux下每个用户都有不同的权限,普通用户只能在自己的主目录下进行写操作.
三种基本权限:R 读权限,W 写权限,X 执行权限
文件介绍:
-rw-r—r—. 1 root root 26 Oct 16 02:55 yhp.log
文档类型与执行权限分为4部分(1,2-4,5-7,8-10),就是一个 - 加上三个 rwx ,如果没有那个权限,那个就是 -
-rw-r—r—文档的类型和权限由4部分内容组成:
操作权限:
chown 是change owner的意思,主要作用就是改变文件或者目录所有者.
chmod 修改文件和文件夹读写执行属性。使用权限 : 所有使用者
chown 修改文件和文件夹的用户和用户组属性。使用权限:root
创建文件:
修改权限的方式:
(1)字符设置法
chmod [who][+ | - | =] 文件名
who (u 用户user ,g用户组group,o其他用户,a所有用户默认)
操作符号:
+添加某个权限
-取消某个权限
=赋予权限
chmod u+x,g+w,o+w test.log //r 读,w 写 x 执行
修改一个权限:
-rw-r—r—. 1 root root 0 9月 1 17:10 java.log
chmod g+w java.log
-rw-rw-r—. 1 root root 0 9月 1 17:10 java.log
(2)数字设定法
0无权限,1表可执行=x,2表写入权限=w,4表可读权限=r
识别:
-rwxr—r—. 1 root root 10 Oct 16 02:55 yhp.log
当前的数字权限:
用户权限=rwx=4+2+1=7
所属组权限=r—=4+0+0=4
其他用户权限=r—=4+0+0=4
组合:744
修改权限:
都加入写入权限:+2
给用户组加入写入权限:+2
给其他用户加入可执行权限:+1
chmod 765 yhp.log
结果:
-rw-rw-r—. 1 root root 0 9月 1 17:10 java.log
chmod 666 java.log
-rw-rw-rw-. 1 root root 0 9月 1 17:10 java.log
2、常用命令
1. 查看目录
ls 查看目录内容
ll 查看详细信息
2. 创建目录
mkdir :创建目录
mkdir -p 创建目录以及子目录,多个目录同时创建
mkdir -p a/b/c
3. 切换目录
cd 切换目录cd .. 要加空格cd ../xxx 进入上一级目录的子目录
4. 创建文件
touch :创建一个空白的普通文件
5. 查看文件内容
cat :查看文件内容
more :分页查看文件内容,按空格键换页
6. 写入内容
echo :把内容重定向到指定的文件中 ,有则打开,无则创建
覆盖模式>: echo “ww”>aa.txt
追加模式>>: echo “ww”>>aa.txt
7. 复制
cp :复制
8. 剪切
mv :剪切、重命名(剪切的文件 放在同一个目录中是重命名)
9. 删除
rm :删除文件或者文件夹 -r :递归删除
rm -fr 直接彻底删除,没有提示。一般用于文件夹内还有子文件夹,它会提示特别多,所以用这个就没有提示了
10. 统计行
wc -l 统计行数
11. 当前路径
pwd :查看当前目录的绝对路径
12. 显示主机
hostname : 显示主机名
13. 系统信息
uname -a :显示完整的系统信息
14. 查看进程耗时与占用
top :显示当前耗时的进程信息 ,每3秒刷新一次 cltr+c 中断
top确认CPU和内存的占用情况
15. 查看进程快照
ps -aux 显示当前进程的快照
不过滤:
查看java进程:
ps -aux |grep java
查看 mysql进程
ps -aux |grep mysql
16. 文件大小
du -sh 显示文件的大小信息
17. 磁盘占用
df -lh磁盘使用情况
18. 网卡
ifconfig :查看或者配置网卡信息(ip addr)
19. 强制结束
kill pid :杀死进程
Kill -9 强制杀死
我直接把xshell杀了。。。
20. 查看端口
netstat
常用参数:
-a或—all:显示所有连线中的Socket;
-l或—listening:显示监控中的服务器的Socket;
-n或—numeric:直接使用ip地址,而不通过域名服务器;
-p或—programs:显示正在使用Socket的程序识别码和程序名称;
-t或—tcp:显示TCP传输协议的连线状况;
netstat -tlnp
找出运行在指定端口的进程:
netstat -tlnp | grep ‘:22’
21. 打包与拆包
tar - cxzjvf <打包后的文件> <欲打包的目录>
1. c :创建的一个归档文件
2. x :拆包
3. z :以gzip 格式压缩 j :以bzip2格式压缩
4. v :显示打包或者拆包的文件信息
5. f : 后面紧接一个 归档文件
6. 打包及压缩:tar -czvf yhp.tar.gz ./yhp/
7. 拆包及解压缩: tar -xzvf yhp.tar.gz
unzip解压:(windows中软件等)
unzip rocketmq.zip -d rocketmq(-d到指定目录可选)
打包:
tar -czvf pictures.tar.gz Pictures/
拆包:
22. 文本编辑器
指令:VIM,vi
操作模式:
一般模式 ,默认方式,该模式不能编辑
按 i(insert) 进入 插入模式
编辑模式
该模式可以编辑文档,按esc 退出插入模式
命令模式
一般模式中按:进入命令模式[在一般模式中,yy复制一行, dd剪切一行, p粘贴]
:q 安全退出,当没有操作该文档
:q!修改了内容,但不想保存,强制退出
:wq 保存退出
:set number 显示行号set nonumber 取消行号显示
行:
3、Vim常用命令
vi 编辑器只是一个文本编辑程序,它没有菜单,只有命令,且命令繁多。虽然学习这些命令比较费时费力,但是一旦你掌握了这些命令,你就会发现 vi 十分高效和强大,丝毫不逊色任何一款 Windows 上的编辑器。
其实,现在的 UNIX/Linux 大都使用 vim 代替了 vi。vim 是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
1、3种编辑模式
vi 编辑器有 3 种基本工作模式,分别是命令模式、文本输入模式和末行模式。
1.1、命令行模式
该模式是进入 vi 编辑器后的默认模式。任何时候,不管用户处于何种模式,按下Esc
键即可进入命令模式。
在命令模式下,用户可以输入 vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。若输入的字符是合法的 vi 命令,则 vi 在接受用户命令之后完成相应的动作。
但需注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是 vi 的合法命令,vi 会响铃报警。
1.2、文本输入模式
在命令模式下输入插入命令i
、附加命令a
、打开命令o
、修改命令c
、取代命令r
或替换命令s
都可以进入文本输入模式。
在该模式下,用户输入的任何字符都被 vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按下Esc
键即可。
1.3、 末行模式
末行模式也称 ex 转义模式。
在命令模式下,用户按:
键即可进入末行模式下,此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:
作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。
2、vi 工作模式之间的切换
如果要从命令模式转换到编辑模式,可以输入命令a
或者i
。
如果需要从文本模式返回,则按下Esc
键即可。
在命令模式下输入:
即可切换到末行模式,然后输入命令。
vi 编辑器的 3 种模式的转换如下图所示。
进入 vi 之后,首先进入的就是命令模式,也就是说等待命令输入而不是文本输入。这时输入的字母都将作为命令来解释。
3、vi/vim 按键说明
除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。
3.1、第一部份:一般模式可用的光标移动、复制粘贴、搜索替换等
移动光标的方法 | |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可! | |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
– | 光标移动到非空格符的上一行 |
n |
那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n |
n 为数字。光标向下移动 n 行(常用) |
搜索替换 | |
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词! | |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用) |
:1,$s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用) |
:1,$s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用) |
删除、复制与贴上 | |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦! | |
. | 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用) |
3.2、第二部份:一般模式切换到编辑模式的可用的按钮说明
进入插入或取代的编辑模式 | |
---|---|
i, I | 进入插入模式(Insert mode): i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用) |
a, A | 进入插入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用) |
o, O | 进入插入模式(Insert mode): 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用) |
r, R | 进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) |
上面这些按键中,在 vi 画面的左下角处会出现『–INSERT–』或『–REPLACE–』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔! | |
[Esc] | 退出编辑模式,回到一般模式中(常用) |
3.3、第三部份:一般模式切换到指令行模式的可用的按钮说明
指令行的储存、离开等指令 | |
---|---|
:w | 将编辑的数据写入硬盘档案中(常用) |
:w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
:q | 离开 vi (常用) |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ | |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
ZZ | 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! |
:w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) |
:r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案。 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! |
vim 环境的变更 | |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。