Linux基础命令+Vim
Linux
简介
Unix操作系统 多用户 多任务 支持多线程 多cpu的开源,免费,安全,高效,稳定的操作系统
处理高并发强悍
很多企业级的项目都部署到Linux/unix服务器运行
能运行主要的UNIX工具软件 应用程序和网络协议 Linux继承了Unix以网络为核心的思想
Kali linux:安全渗透测试使用
服务器都是使用命令行的
Linux和Unix的关系
Linux和Windows整理
Linux应用领域
个人桌面应用
服务器领域
linux在服务器领域是最强的
嵌入式领域
安装
之前好奇自己装过各种linux双系统 包括manjaro,deepin等,最终各种由于出现的网络过慢,换了镜像也没有效果问题删除了)以后再把一些教程同步过来 这里暂时只使用虚拟机
虚拟机使用vmware挺方便的 有兴趣的还可以装mac
在vmware 虚拟机上安装centOS 安装操作系统和软件是一样的
linux磁盘分区的时候需要注意分区名
使用xshell ,xftp 在官网可以使用个人免费版
网络链接
- 桥连接。 Linux可以和其它的系统通信。但是可能造成ip冲突
- NAT:网络地址转换方式: linux可以访问外网,不会造成ip冲突
- 主机模式: 你的linux是一个独立的主机,不能访问外网
基本命令
一般来说,用户登录的方式有三种 最高权限是root 可以操作一切
- 命令行
- ssh
- 图形界面登录
解压: tar -zxvf
删除: rm -rf
关机: shutdown
- -h 10 10分钟后关机
重启: reboot
halt: 关闭系统
同步到硬盘: sync
绝对路径 相对路径:
ls: 列出目录 可能是最常被使用的
- -a :all 查看全部文件 包括隐藏文件
- -l : 列出所有的 文件
cd: 切换目录名 相对路径 绝对路径
mkdir: 创建文件夹
mkdirs -p: 创建层级目录
cd ~:回到当前的用户目录
pwd: 显示当前所在目录的文件
rmdir: 删除目录 不能删除不为空的目录 如果文件下有文件 先删里面
rmdir -p: 删除多级目录
cp: 复制文件 cp 原来的地方 新地方
rm : 移除文件或者目录
- -f 忽略不存在的文件 强制删除
- -r 递归删除目录
- -i 互动 删除询问是否删除
rm -rf : 极其危险 删库跑路
mv : 移动文件 重命名文件
- -f 强制移动
- -u 只替换已经更新过的文件
文件基本属性
d:目录
-: 文件
l: 表示为连接文档
rwx 可读 可写 可执行
文件类型 属主属性 属主权限 其他用户权限 0 123 456 789 d rwx r-x r-x 目录文件 读写执行 读写执行 读写执行
修改文件属性
修改文件属组
1 | chgrp [-R] 属组名 文件名 |
更改文件属主,也可以更改文件属组
1 | chown [-R] 属主名 文件名 |
更改文件9个属性
1 | chmod [-R] xyz 文件或目录 |
Linux文件属性有两种设置方法,一种是数字,一种是符号
Linux文件的基本权限就有9个,分别是owner/group/others三种身份各有自己的read/write/execute权限
上面提到的数据: 文件的权限字符为: [-rwxrwxrwx],三个三个一组 可以使用数字代表权限
1 | r:4 w:2 x:1 |
每种身份的个子三个权限需要累加 例如
- owner = rwx = 7
- group = rwx = 7
- others = — = 0
1 | chmod 770 <filename> |
可读可写不可执行 rw- 6
可读可写可执行 chomd 777 文件赋予所有用户 可读可写可执行
文件内容查看
Linux系统中使用以下命令来查看文件的内容
- cat 由第一行开始显示文件内容
- tac 由最后一行开始显示文件内容
- nl 显示的时候 顺道输出行号
- more 一页一页显示文件内容
- head 只看头几行
- tail 只看末尾几行
可以使用 man [命令]
来查看每个命令的使用文档,如 : man cp
网络配置目录: cd/etc/sysconfig/network-scripts
查看网络配置 ifconfig (windows cmd 是ipconfig 查看虚拟机和windows ip地址的时候会用到)
linux 目录结构
一切皆文件
以下是对目录的解释
- /bin: bin是Binary的缩写,这个目录存放着最经常使用的命令
- /boot: 这里存放的是启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /dev: dev是Device的缩写,存放的是Linux的外部设备.在Linux中访问设备的方式和访问文件的方式是相同的
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录
- /home: 用户的主目录, 在linux中,每个用户都有一个自己的目录.一般该目录名是以用户的账号命名的
- /lib: 这个目录里存放着系统最基本的动态链接共享库.其作用类似于Windows里的DLL文件
- /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /media: linux系统会自动识别一些设备.如U盘光驱,识别后,Linux可以把识别的设备挂载到这个目录下
- /mnt: 系统提供该目录是为了用户临时挂载别的文件系统的,我们可以将光挂载在/mnt上,然后进入该目录就可以查看光驱里的内容
- /opt: 这是给主机额外安装软件所摆放的目录.比如你安装一个Oracle数据库就可以放在这个目录下 默认是空的
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
- /root: 该目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
- /sbin:s就是Super User的意思.这里存放的是系统管理员使用的系统管理程序
- /srv: 该目录存放一些服务启动之后需要提取的数据
- /sys: 这是linux2.6内核的一个很大的变化.该目录下安装了2.6内核中芯出现的一个文件系统sysfs
- /tmp: 这个目录是用来存放一些临时文件的
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
- /usr/bin: 系统用户使用的应用程序
拓展:Linux链接的概念 (了解即可)
Linux的链接分为两种:硬链接 软链接
硬链接A–B 假设B是A的硬链接 那么他们两个指向了同一个文件 允许一个文件拥有多个路径 用户可以通过这种机制建立硬链接到一些重要文件上 防止误删
软链接 类似于window下的快捷方式
创建链接 使用 ln命令!
touch 命令创建文件
echo 输入字符串
VIM使用
在不同linux系统下可能会有内置其它的编辑器 manjaro下有nano kate等 使用各不一样 看自己喜好
简介:
Vim是Linux上常用编辑器,在Windows上可以使用记事本来编辑文件内容,Vim也类似于记事本,但是Vim有更加强大的功能。
在Vim中,有命令模式,输入模式 和 末行模式三种模式。按 Esc 进入命令模式, 输入 Shift + ; 进入末行模式,按i进入输入模式。
命令模式操作
(一)进入
- vim filename
(二)退出
- :wq 末行模式,保存退出
- :q 末行模式,直接退出
- :q! 末行模式,不保存,强制退出
(三)输入模式(在命令模式下操作)
- i 从光标所在位置前面开始插入
- I 在当前行首插入
- a 从光标所在位置后面开始输入
- A 在当前行尾插入
- o 在光标所在行下方新增一行并进入输入模式
- O 在当前上面一行插入
(四)移动光标(在命令模式下操作)
- gg 到文件第一行
- G 到文件最后一行 (Shift + g)
- ^ 非空格行首
- 0 行首(数字0)
- $ 行尾
(五)复制和粘贴(在命令模式下操作)
- yy 复制整行内容 如3yy就是复制3行内容
- yw 复制当前光标到单词尾内容
- p 粘贴
(六)删除
- dd 删除光标所在行
- dw 删除一个单词
- x 删除光标所在字符
- u 撤销上一次操作
- s 替换
- ctrl + r 撤销 u
(七)块操作
- v 块选择
- ctrl + v 列块选择
(八)查找
- / 命令模式下输入:/ 向前搜索
- ? 命令模式下输入:? 向后搜索
- n 向下查找
- N 向上查找
输入模式操作
字符按键以及shift组合: 输入字符
Enter: 换行
BACK SPACE: 删除光标前一个字符
DEL: 删除光标后一个字符
方向键: 移动光标
HOME/END: 移动光标到行首/行尾
INSERT: 切换输入模式 (输入/替换)
ESC: 切换到命令模式
Vim 按键说明
除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等
移动光标的方法 | |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n< space> | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊!(常用) |
n< Enter> | n 为数字。光标向下移动 n 行(常用) |
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
删除、复制与粘贴 | |
---|---|
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 | 重做上一个动作。(常用) |
第二部分:一般模式切换到编辑模式的可用的按钮说明
进入输入或取代的编辑模式 | |
---|---|
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 为止;(常用) |
[Esc] | 退出编辑模式,回到一般模式中(常用) |
第三部分:一般模式切换到指令行模式的可用的按钮说明
指令行的储存、离开等指令 | |
---|---|
: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 输出的档案信息! |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
软件安装方式
Linux软件有好多安装方式…具体要看下载的是什么安装包或者在不同发行版本下的安装命令 这里举例三种
Jdk安装(rpm安装)
1、rpm下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、如果有安装openjdk 则卸载
1 | [root@kuangshen ~]# java -version |
3、安装JDK
1 | # 安装java rpm |
Tomcat安装(解压缩安装)
1、安装好了Java环境后我们可以测试下Tomcat!准备好Tomcat的安装包!
2、将文件移动到/usr/tomcat/下,并解压!
1 | [root@kuangshen kuangshen]# mv apache-tomcat-9.0.22.tar.gz /usr |
3、运行Tomcat,进入bin目录,和我们以前在Windows下看的都是一样的
1 | # 执行:startup.sh -->启动tomcat |
4、确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的!
1 | # 查看firewall服务状态 |
安装Docker(yum安装)
基于 CentOS 7 安装
官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/
确定你是CentOS7及以上版本
1
2[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)yum安装gcc相关(需要确保 虚拟机可以上外网 )
1
2yum -y install gcc
yum -y install gcc-c++卸载旧版本
1
2
3
4
5
6
7
8
9
10yum -y remove docker docker-common docker-selinux docker-engine
# 官网版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine安装需要的软件包
1
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
1
2
3
4
5
6
7
8# 错误
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 报错
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新yum软件包索引
1
yum makecache fast
安装Docker CE
1
yum -y install docker-ce docker-ce-cli containerd.io
启动docker
1
systemctl start docker
测试
1
2
3
4
5docker version
docker run hello-world
docker images
资料参考: 狂神说java