第一章 Linux基础篇 Linux入门
Linux介绍
Linux的读法 [李纽克斯 利尼克斯]
Linux特点: 免费,开源,安全,高效稳定,处理高并发强悍
创始人: 林纳斯-托瓦斯
吉祥物:企鹅
主要的发行版: centos ubuntu redhat 红旗 U麒麟 deepin
目前主要的操作系统有
Windows Linux Mac 安卓 苹果 车载系统
Unix的演化
Unix产生在贝尔实验室 又凯-汤姆逊和詹姆斯-古道为玩游戏用B语言二次开发
后来又用C语言重新编译了系统.
Linux特点和缺点
- 特点:Linux是一种自由和开放源码的类UNIX操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。并且开源就大部分软件免费,内核可定制。
- 缺点:对一些机器的兼容性差,软件教少
由于它的特点被运用于 服务器操作系统,嵌入式操作系统,移动设备操作系统 特别广泛。
虚拟机安装
见安装文档 Linux安装
第二章 Linux目录介绍
目录 | 作用 |
---|---|
/bin | 二进制命令所在的目录 |
/boot | 系统引导程序所需要的文件目录 |
/dev | 设备软件目录,磁盘,光驱, |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录 |
/mnt | 临时挂载储存设备的挂载点 |
/opt | 额外的应用软件包 |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录 |
/var | 存放系统日志的目录 |
[root@node01 ~]# cd /
[root@node01 /]# ll
total 24
# 是binary的缩写这个目录存放着最长使用的指令
lrwxrwxrwx. 1 root root 7 二月 26 18:56 bin -> usr/bin
# 存放Linux启动时使用的一些核心文件包括镜像
dr-xr-xr-x. 5 root root 4096 二月 26 19:04 boot
# 类似于Windows的设备管理器,把所有硬件以文件形式储存
drwxr-xr-x. 20 root root 3320 二月 26 19:07 dev
# 系统配置,启动程序
drwxr-xr-x. 132 root root 8192 二月 26 19:07 etc
# 普通用户的家,目录默认数据存放目录
drwxr-xr-x. 3 root root 16 二月 26 19:02 home
# 共享库文件和内核模块存放目录
lrwxrwxrwx. 1 root root 7 二月 26 18:56 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 二月 26 18:56 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 十一 5 2016 media
# 临时挂载储存设备的挂载点
drwxr-xr-x. 2 root root 6 十一 5 2016 mnt
# 额外的应用软件包
drwxr-xr-x. 3 root root 16 二月 26 19:00 opt
# 操作系统运行时,进程信息和内核信息存放在这里
dr-xr-xr-x. 230 root root 0 二月 26 19:07 proc
# Linux超级权限用户root的家目录
dr-xr-x---. 14 root root 4096 二月 26 19:10 root
drwxr-xr-x. 39 root root 1220 二月 26 19:10 run
# 和管理系统相关的命令,【超级管理员用】
lrwxrwxrwx. 1 root root 8 二月 26 18:56 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 十一 5 2016 srv
dr-xr-xr-x. 13 root root 0 二月 26 19:07 sys
# 临时文件目录,这个目录被当作回收站使用
drwxrwxrwt. 18 root root 4096 二月 26 20:17 tmp
# 用户或系统软件应用程序目录
drwxr-xr-x. 13 root root 155 二月 26 18:56 usr
# 存放系统日志的目录
drwxr-xr-x. 20 root root 282 二月 26 19:04 var
4.1 Linux 目录总结一下
-
linux 的目录中有且只要一个根目录 /
-
linux 的各个目录存放的内容是规划好,不用乱放文件。
-
linux 是以文件的形式管理我们的设备,因此 linux 系统,一切皆为文件。
-
linux 的各个文件目录下存放什么内容,大家必须有一个认识。
-
linux 目录是一颗树
4.2 学习Linux终端命令的原因
-
Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
-
在职场中,大量的服务器维护工作都是在远程通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成
第三章 Linux命令
ls 命令
参数 | 含义 |
---|---|
ls -a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
ls -l | 以列表方式显示文件的详细信息 |
ls -h | 配合 -l 以人性化的方式显示文件大小 |
ll | ls -l 的缩写 |
cd命令
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
相对路径和绝对路径
- 相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
- 绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
mkdir
命令 | 含义 |
---|---|
mkdir test | 创建目录 |
mkdir -p /root/aaa/bbb | 递归创建 |
rm命令
命令 | 含义 |
---|---|
rm -r test | 递归地删除目录下的内容, 删除目录时必须加此参数 |
rm -fr test | 直接删除目录(不管有没有内容) |
touch命令
命令 | 含义 |
---|---|
touch a.txt | 在当前目录创建a.txt文件 |
touch /root/a.txt | 在/root目录创建a.txt文件 |
mv命令
命令 | 含义 |
---|---|
mv a.tx dir/ | 将文件移动另一个目录中 |
mv a.txt b.txt | 重命名文件 |
mv dir1 dir2 | 重命名目录 |
cp命令
命令 | 含义 |
---|---|
cp a.txt dir1 | 将a.txt复制到dir1目录 |
cp a.txt b.txt | 将a.txt复制为b.txt |
压缩和解压命令
参数 | 解释 |
---|---|
-c | 创建一个新tar文件 |
-v | 显示运行过程的信息 |
-f | 指定文件名 |
-z | 调用gzip压缩命令进行压缩 |
-t | 查看压缩文件的内容 |
-x | 解开tar文件 |
命令 | 含义 |
---|---|
tar -zxvf redis-3.2.8.tar.gz | 将文件解压到当前目录 |
tar -zxvf redis-3.2.8.tar.gz -C /root/dir | 将文件解压到指定目录 |
tar -cvf test.tar /root/test | 打包 |
tar -czvf test.tar.gz /root/test | 打包并压缩 |
find指令
命令 | 含义 |
---|---|
find / -name ‘ins*’ | 查找/目录下以文件名ins开头的文件 |
find / -type f -size +100M | 查找/目录下文件大小大于100M的文件 |
grep命令
命令 | 含义 |
---|---|
grep a anaconda-ks.cfg | 在文件中查找a |
grep a anaconda-ks.cfg --color | 在文件中查找a,高亮显示 |
which命令
命令 | 含义 |
---|---|
which pwd | 查找pwd命令的路径 |
whoami命令
命令 | 含义 |
---|---|
whoami | 返回当前用户 |
who am i | 返回当前用户详细显示 |
下载命令
命令 | 含义 |
---|---|
wget http://download.redis.io/releases/redis-4.0.2.tar.gz | 进行相关文件的下载 |
系统管理命令
命令 | 含义 |
---|---|
ps -ef | 查看所有进程 |
kill -9 12345 | 杀死pid为12345的进程 |
管道命令
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
命令 | 含义 |
---|---|
ps -ef | grep java | 查询名称中包含java的进程 |
用户管理
命令 | 含义 |
---|---|
useradd wp | 创建新用户itheima |
passwd 123456 | 设置用户itheima密码 |
userdel -r wp | 删除用户itheima |
权限管理
- 文件权限概述
Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
r: 对文件是指可读取内容 对目录是可以ls
w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)
x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录.chmod命令
chmod命令用来变更文件或目录的权限。
chmod 666 a.txt
chmod u+x a.txt
chmod u=rwx,g=rw,o=x a.txt
ln命令
ln命令可以用来创建软连接,类似于创建快捷方式
命令格式:
ln [参数][源文件或目录][目标文件或目录]
实例:
ln -s 2.txt 1.txt
clear命令
清屏命令,还可以使用快捷方式:ctrl + l
第四章vi 和 vim 编辑器
1. vi编辑器的三种模式
入门案例
## 在root用户的家目录查看当前目录下的文件和文件夹
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1326 2月 26 21:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 1374 2月 26 21:37 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 2月 26 21:37 公共
drwxr-xr-x. 2 root root 6 2月 26 21:37 模板
drwxr-xr-x. 2 root root 6 2月 26 21:37 视频
drwxr-xr-x. 2 root root 6 2月 26 21:37 图片
drwxr-xr-x. 2 root root 6 2月 26 21:37 文档
drwxr-xr-x. 2 root root 6 2月 26 21:37 下载
drwxr-xr-x. 2 root root 6 2月 26 21:37 音乐
drwxr-xr-x. 2 root root 6 2月 26 21:37 桌面
# 进入桌面这个文件夹下
[root@localhost ~]# cd 桌面
# 使用vim编辑器编辑一个叫HelloWorld.java
[root@localhost 桌面]# vim HelloWorld.java
#输入i进入编辑模式
public class HelloWorld{
public void main(String[],args){
Systom.out.println("Hello World");
}
}
~
~
~ # 输入Esc退出编辑模式
进入:模式保存并退出
:wq
vim复制黏贴
#yy复制当前行
public class HelloWorld{
#p粘贴当前行
#5yy复制光标及以下5行
public class HelloWorld{
public void main(String[],args){
Systom.out.println("Hello World");
}
}
#黏贴
public class HelloWorld{
public void main(String[],args){
Systom.out.println("Hello World");
}
}
命令 | 功能 |
---|---|
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置向下连续删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置向下连续复制n行 |
p | 粘贴 |
u | 撤销上一次命令 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str | 查找str |
vim删除
public class HelloWorld{
public class HelloWorld{
public void main(String[],args){
Systom.out.println("Hello World");
}
#dd删除当前行
public class HelloWorld{
public void main(String[],args){
#x删除当前字母
ystom.out.println("Hello World");
#2dd 删除下面两行
vim插入
o 在当前行后面插入一空行
O 在当前行前面插入一空行
i 在当前行插入
命令 | 功能 |
---|---|
:w 文件 | 另存为 |
:w | 保存(ctrl + s) |
:q | 退出, 如果没有保存,不允许退出 |
:q! | 强行退出, 不保存退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
:set nu | 设置行号 |
:%s/旧文本/新文本/g | 文本替换 |
移动光标的方法
命令 | 功能 |
---|---|
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 则光标会向后面移动 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 。 |
删除、复制与贴贴
命令 | 功能 |
---|---|
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 | 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦! |
. | 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用) |
关机重启
shutdown
shutdown -h now : 表示立即关机shutdown -h 1 : 表示 1 分钟后关机shutdown -r now: 立即重启
halt
就是直接使用,效果等价于关机
reboot
就是重启系统。
syn : 把内存的数据同步到磁盘
文件上传
第一种上传方式: 基于CRT 的 alt + p
在此窗口下, 可以通过cd 切换到想要上传的目录下
第二种上传方式: 使用linux的上传工具进行上传
- 安装上传工具 : 使用yum进行联网下载软件并安装
yum -y install lrzsz - 使用方式:
2.1) 输入上传命令: rz 弹出上传框
2.2) 选择对应文件, 点击ok进行上传
上传后文件存储在什么位置上?
答: 在那个目录下输入的rz, 就会将文件存储到那个目录下