Linux是虚拟机,相对于物理机而言。
os操作系统:windows、ios。andrioid、unix、linux
linux系统:是一个免费,开源的操作系统。支持多线程,多cpu,多用户的操作系统,比windows更稳,是在linux的基础上开发的新系统。
-------------------------------------------------------------------------------
linux发行的版本:
ubuntu(乌班图)
red hat(红帽子)
centos(我们学习使用centos6)
dibian
opensuse
-------------------------------------------------------------------------------
linux操作系统的优点:
1、系统稳定
2、开源作为服务器来使用
为什么学Linux系统?
1、作为服务器,用于部署系统,企业中开发的系统都会部署
在linux系统上
inmp=linux+nginx+mysql+phy(论坛)
lam=linux+apache+mysql+java(项目包)
-------------------------------------------------------------------------------
搭建linux 虚拟机关键命令:halt 关机 reboot 重启 init 0 关 机
查看群文件第三讲
切换登入:输入(other)超级用户root 密码123456
-------------------------------------------------------------------------------
Linux命令
su switch user切换用户 普通用户切换到管理员需要输入密码,管理员切换到普通用户不需要密码
if config 查看IP地址
service iptables stop 关闭防火墙
service iptables start 开启防火墙
service iptables restart重启防火墙
service iptables stop status 查看防火墙状态
ctrl+alt 在windows系统和linux系统之间进行切换
pwd 查看当前操作位置的绝对路径
ping 查看网络是否通
ping www.baidu.com 查看网络是否通
ctrl + c 退出ping命令界面
ls 查看命令
ls -l 等于ll 查看目录下的文件和目录,按时间排序
ls -a 查看目录下的文件的所有文件和目录,包含隐藏文件
cd 进入一个目录
cd / 进入根目录
cd dir 进入指定目录
cd ./ 进入当前目录
cd .. 进入上一级目录
cd ~ 进入家目录
touch 创建空文件
mkdir 创建空目录
mkdir -p 递归创建空目录
rm 删除命令,删除文件前会进行确认,不可删除目录
rm -r 删除目录,删除目录时,会确认是否进入目录, 然后对目录中文件进行删除
rm -rf 强制删除文件或目录
rm -rf* 强制删除当前目录下所有文件目录,不可恢复
cp 复制一个文件
cp a.txt /bb/ 将当前目录下的a.txt文件复制到根目录下的bb目录中
cp a.txt ../bb/ 将当前目录下a.txt文件复制到上级目录的bb目录中,相对路径的写法
cp /aa/a.txt /bb/ 将根目录下的aa目录中的a.txt文件,复制到根目录下的bb目录中
cp a.txt b.txt 用a.txt文件复制出一个b.txt文件,a.txt文件中的内容与b.txt文件中的内容相同
mv 移动
mv a.txt / 将当前目录下的a.txt文件移动到根目录下
mv a.txt cc 将a.txt文件名修改成cc(当前目录下没有cc这个目录的时候,会将aa。Txt重命名为cc)
mv cc.txt dd.txt 将cc.txt文件中的内容覆盖到dd.txt文件中,且cc.txt文件会消失(当当前目录存在相同的文件名时,会进行覆盖)
cp -r tt /bb 将当前目录下的tt目录及目录下的所有文件与目录,复制到根目录下的bb目录中,-r参数表示递归
rz 将Windows文件传入Linux
sz 将Linux文件传入Windows
yum install lrzsz : lrzsz是一个工具
作用:让windows电脑和linux系统进行交互===》数据传输
注意:rz和sz命令,需要在xshell软件中使用
cat 文件名 | grep 关键字
|:叫做管道符 管道符左边命令的输出是管道符右边命令的输入
grep:文本搜索工具 只会显示带有关键字的这行数据
less 文件名 : 查看文件显示部分内容,按space键向下翻页,按b键向上翻页,按enter一行行翻,退出按qless或者ctrl+c
more 文件名:以百分比的形式显示文件中的内容 按enter键百分比增加,按住ctrl+z或者ctrl+c或者q键退出
head tail.txt =====》默认查看tail.txt文件前面10行的数据
tail tail.txt ======》默认查看tail.txt文件后面10行的数据
head -n 5 tail.txt =====》查看tail.txt文件前面5行的数据
tail -n 5 tail.txt ======》查看tail.txt文件后面5行的数据
cat tail.txt | head -n 10 | tail -n 5 =====》查看tail.txt文件6至10行的数据
cat tail.txt | head -n 10 | tail -n +5 ====》查看tail.txt文件5至10行的数据
cat aa.txt > bb.txt ======》将aa.txt文件中的内容覆盖到bb.txt文件中,如果bb.txt文件不存在,则新建一个bb.txt文件,并且把aa.txt文件中的内容复制到新建的bb.txt文件中
cat aa.txt >> bb.txt =====》将aa.txt文件中的内容追加到bb.txt文件的内容后面,如果bb.txt文件不存在,则新建一个bb.txt文件
cat tail.txt | head -n 10 | tail -n +5 > aa.txt ======》将tail.txt文件中5至10行的内容覆盖到aa.txt文件中
cat tail.txt | head -n 10 | tail -n +5 >> aa.txt =====》将tail.txt文件中5至10行的内容追加到aa.txt文件的后面
vim aa.txt 编辑aa.txt文件
编辑文件:
1、vim+文件名
2、在空白界面输入i,当左下角有insert出现,此时进入到编辑模式
3、输入要编辑的内容,按住Ctrl+c,然后再按住Caps lock键+大写的ZZ
4、注意点:千万不要按ctrl+s和ctrcl+z ====》会生成临时文件,导致文件被锁定不能编辑,如果已经按了ctrl+s,需要按ctrl+q退出锁定状态
如果生成了临时文件,需要将临时文件删除以后,再次进入文件
vim和touch创建文件的区别:
1、touch创建文件,文件内容为空
2、vim创建文件,文件内容不能为空,不然不能创建
find / -name aa.txt ======》查找根目录下文件名为aa.txt的绝对路径
find / -name "a*.txt" ======》查找根目录下的所有文件中以a开头任意字符结尾的所有文件的绝对路径,*号表示的是通配符
find / -type d ========》查找根目录下所有类型为目录的绝对路径
find / -type f ========》查找根目下所有类型为文件的绝对路径
grep -A 2 "15" head_tail.txt ======》搜索出head_tail.txt文件中带有关键字“15”的后2行的内容 A:After(在...之后)
grep -B 2 "15" head_tail.txt ======》搜索出head_tail.txt文件中带有关键字“15”的前2行的内容 B:Before(在...之前)
grep -C 2 "15" head_tail.txt ======》搜索出head_tail.txt文件中带有关键字“15”的前后2行的内容,C:center(中心)
grep -C 20 ‘’关键字‘’/Catalina.out 实时查看日志
grep -A 20 ‘’关键字‘’/Catalina.out
grep -B 20 ‘’关键字‘’/Catalina.out
Linux系统中关于权限管理的三剑客:
chmod ====》修改权限
chown ====》修改属主 (chown:change owner)
chgrp ====》修改属组 (chgrp:change group)
drwxr-xr-x. 4 root root 4096 Apr 29 10:46 bb
解释:
文件的创建者root用户对bb这个目录具有读写执行的权限,和在root组里面的用户对bb这个目录具有读和执行的权限,既不在root组中
又不是root用户bb这个目录具有读和执行的权限,没有写的权限
第一个root:代表的是文件的创建者
第二个root:代表的是文件所属的组中的用户
前面的d:表示该文件为一个目录
前面三位rwx:表示属主拥有的权限(读写执行)
中间三位r-x:表示属组拥有的权限(读和执行)
后面三位r-x:表示其他用户拥有的权限(读和执行)
属主:文件的创建者 ======》属主可以用u表示 u:usercat
属组:所属的组中的用户 ====》属组可以用g表示 g:group
其他用户: =========》其他用户可以用o表示 o:other
chmod u+x head_tail.txt ====》帮属主增加执行的权限
chmod g-r head_tail.txt =====》取消属组的读的权限
chmod o+w head_tail.txt =======》帮其他用户增加写的权限
chmod -R 777 bb ======》将bb目录及目录以下的所有文件与目录的权限修改为777权限
chown -R centos7 bb ====》将bb目录及目录以下的所有文件与目录的属主修改为centos7
注意:
r read 读 权限为4 cat less more grep head tail 等命令
w write 写 权限为2 vim vi 追加覆盖
x execute 执行 权限为1 可以执行.sh格式的shell脚本
- 代表没有权限
对于root,超级用户而言不能限制
useradd centos8 =====》增加centos8这么一个用户,创建一个用户,默认会在自己的组里面
passwd centos8 ======》设置centos8用户的密码
userdel centos8 =====》删除centos8这个用户
userdel -rf centos8 ====》强制删除centos8这个用户
===》查看linux系统中所有的用户
0代表的是root超级用户
1-499 :代表为系统用户(无法使用系统进行登录)
500及以上: 代表的为普通用户(自己创建的用户),可以用来登录
groupadd dcs7 =======》创建一个组名为dcs7的组
groupdel dcs7 =======》删除dcs7这个组
cat /etc/group ======》查看linux系统中所有的组
useradd xiaoshen -g dcs7 =====》创建一个xiaoshen用户,然后放入dcs7这个组中
groups xiaoshen ======》查看xiaoshen这个用户属于哪个组
gpasswd -a centos7 dcs7 ======》将已经存在的centos7这个用户添加到dcs7这个组中
gpasswd -d centos7 dcs7 ======》移除dcs7这个组中的centos7这个用户
注意点:
1、创建用户时,会默认在自己的组里面
2、创建一个组时,组中是没有用户的
linux中的打包命令:(tar,tar.gz,zip)
tar包打包命令:tar -cvf test.tar test.sh =====》将test.sh文件打一个test.tar的tar包
tar包解压命令:tar -xvf test.tar ========》将test.tar包进行解压
tar.gz包打包命令:tar -zcvf test.tar.gz test.sh ======》将test.sh文件打一个test.tar.gz的tar.gz包
tar.gz包解压命令:tar -zxvf test.tar.gz ========》将test.tar.gz包进行解压
zip包打包命令:zip test.zip test.sh =======》将test.sh文件打一个test.zip的zip包
zip包解压命令:unzip test.zip ==========》将test.zip包进行解压
gz包打包命令:gzip test.sh =========》将test.sh打一个test.sh.gz包
gz包解压命令:gunzip test.sh.gz ========》将test.sh.gz包进行解压
注意点:
1、打包完成后源文件不存在,解压包之后,之前的压缩包不存在
2、gzip命令不能对目录进行打包操作,只能对文件进行打包
rpm -ivh 包名 ========》安装rpm包
rpm -qa|grep jdk =====》查看jdk安装后的包名
rpm -e 安装后的包名 =====》卸载rpm包
rpm -e --nodeps 安装后的包名====》强力卸载rpm包
lrzsz工具只适用于1-500M之间的文件传输
xftp工具适合大于500M文件的传输
scp test.tar.gz root@192.168.124.64:/usr =======》将本地test.tar.gz的文件传输到192.168.124.64服务器的/usr目录下
scp root@192.168.124.64:/dd.txt /usr ==========》将192.168.124.64服务器的根目录下的dd.txt文件传输到本地/usr目录下
service network restart =======》重启网卡
top =====》实时刷新服务器的性能指标(默认3秒刷新一次)
top -d 10 ======》每10秒刷新一次
free =======》查看linux系统的运行内存
free -m =====》查看linux系统的运行内存(以MB为单位显示)
ps -ef ======》查看linux系统中所有正在运行的进程
ps -ef|grep vim =======》查看vim的进程
ps aux ==========》查看linux系统中所有用户所使用的进程
ps -ef |grep -v grep ========》反向过滤grep进程
UID: user id 用户id
PID:process id 进程id
CMD:command 进程名称
kill -9 4439 =====》将进程id为4439的进程强制kill掉
kill 4439 =======》将进程id为4439的进程kill掉
netstat -tpln ====》查看所有已经开启的端口号
netstat -tpln | grep 22 ======》查看22端口的信息
lsof -i:22 ==========》查看22端口号所使用的进程
/etc/init.d/sshd start =====》启动ssh服务(ssh服务:远程连接服务)
who =======》查看当前的用户
whoami ========》查看当前操作用户
hostname =======》查看当前主机名称
getconf LONG_BIT ======》查看当前系统的内核信息
df =======》查看磁盘大小
df -h =======》查看磁盘大小,显示单位GB
du -sh /usr========》查看根目录下的usr目录的大小
reboot ======》重启
shutdown now =====》关机
init 0 =========》关机
date 显示当前时间
date -s 修改系统时间
history 显示历史操作记录
history -c 删除历史操作记录
halt 关机
reboot 重启
init 0 关机
init 6 重启
host name 查看主机名称
whoami 查看当前操作用户
who 查看在线登录用户
getconf LONG_BIT 查看系统位数
alias 创建别名
unalias 取消别名
lsof -i:端口号 查看占用端口的服务
top 查看动态进程
free 查看内存使用情况
ps 查看当前进程命令
ps -aux 查看所有用户的进程
a表示all u 表示用户 x 与a参数一起使用,可列出完整的信息
ps -ef|grep 服务名称 查看一个服务状态 (重点)
alias if='ifconfig ' ========》给ifconfig指令取个别名为if
unalias if ========》取消if的别名
history ======》查看历史指令
clear ========》清屏
reset ========》重置屏幕
ln -s /test.sh /usr/local/te.sh ===》在/usr/local目录下给根目录的test.sh文件创建一个te.sh的软链接,操作te.sh本质上就是操作test.sh
软链接:相当于创建一个桌面快捷方式,删除源文件,软链会失效
ln -d /test.sh /usr/local/tt.sh ====》在/usr/local目录下给根目录的test.sh文件创建一个tt.sh的硬链接
硬链接:相当于备份,删除源文件不影响备份后的文件
-------------------------------------------------------------------------------
vim命令
一、 vi/vim 编辑器共分为三种模式:
命令模式(Command mode),“ESC”
输入模式(Insert mode)
底线命令模式(Last line mode)
命令模式——>末行模式:如“:/ ?用于搜索)
一、命令模式:
常用的几个命令:
i :切换到输入模式,以输入字符。
x 删除当前光标所在处的字符
: 切换到底线命令模式,以在最底一行输入命令
二、输入模式:(进入编辑模式按i 键)
ENTER, 回车键,换行
BACK SPACE退格键,删除光标前一个字符
DEL, 删除键,删除光标所在一个字符
方向键, 在文本中移动光标
HOME/END, 移动光标到行首/行尾
Page Up/Page Down,上/下翻页ESC,退出输入模式,切换到命令模式
三、底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
跳转到第n行:“:n”set nu 显示行号set nonu 取消行号
指令 含义 表现形式
i 在当前光标所在处,转换为输入模式 Ctrl+c,再按i
I 在当前光标所在行行首,转换为输入模式 Ctrl+c,再按I
a append, 在当前光标所在处字符后方,转换为输入模式 Ctrl+c,再按a
A 在当前光标所在行行尾,转换为输入模式 Ctrl+c,再按A
o 在当前光标所在行的下方新建一个空白行,并转换为输入模式 Ctrl+c,再按o
O 在当前光标所在行的上方新建一个空白行,并转换为输入模式 Ctrl+c,再按O
dd 删除光标所在行 Ctrl+c,再按dd
u 撤回上一操作 Ctrl+c,再按u
yy+p yy复制 Ctrl+c,yy复制再按p
wp 保存修改并退出 Ctrl+c,按:wp
:q! 强制退出,放弃修改 Ctrl+c,按:q!
x 删除当前字符 Ctrl+c,按x
X 删除前面一个字符 Ctrl+c,按X
D 删除光标后所有内容 Ctrl+c,按D 10,20y 复制第10行至第20行之间的内容 Ctrl+c,输入:10,20y,
执行命令后按p0跳转至光标绝对行首 Ctrl+c,按0
$ 跳转至光标绝对行尾 Ctrl+c,按$
H 移动光标到当前屏幕最上边一行 Ctrl+c,按H
M 移动光标到当前屏幕上中间的一行 Ctrl+c,按M
L 移动光标到当前屏幕上最下边的一行 Ctrl+c,按L
:/ks 根据字符查找(查找ks,查找到的字符会标记颜色) Ctrl+c,输入:/ks
nohl 取消标记 Ctrl+c,输入:nohl
J 将下一行和当前行连接为一行 Ctrl+c,按J
c 删除当前行,并进入编辑模式 Ctrl+c,按c
c$ 删除光标处后方内容,并进入编辑模式 Ctrl+c,按c$
s 删除当前字符,并进入编辑模式 Ctrl+c,按s
S 删除当前行,并进入编辑模式: Ctrl+c,按S
:10,20w /k1 将10行到20行的内容单独创建到根目录下新建的k1文件 Ctrl+c,输入:10,20w /k1
:setnu 显示行数 Ctrl+c,输入:set nu
:setnonu 不显示行数 Ctrl+c,输入:set nonu
:%s/ddfj/aaaa/g 将每一行中的ddfj替换为aaaa Ctrl+c,输入:%s/ddfj/aaaa/g
:%s/a/m 替换每一行第一个匹配的字符,(将a替换为m) Ctrl+c,输入:%s/a/m
:1,4s/w/f/g 替换1到4所有匹配上的字符(将w替换为f) Ctrl+c,输入:1,4s/w/f/g
:1,4s/w/f 替换1到4第一个匹配上的字符(将w替换为f) Ctrl+c,输入:1,4s/w/f
Ctrl+c 结束当前进程
Ctrl+z 退出当前页面,进程在后台运行
批量注释。
使用下面命令在指定的行首添加注释。
使用名命令格式: :起始行号,结束行号s/^/注释符/g(注意冒号)。
取消注释:
使用名命令格式: :起始行号,结束行号s/^注释符//g(注意冒号)。
注释:方法一:ctrl+v 进入VISUAL BLOCK模式---按上,下方向键选择要注释的行数-------按下大写(i)----按注释符号---在按esc键 比如# ---取消注释:方法一:ctrl+v 进入VISUAL BLOCK模式---按上,下方向键选择要注释的行数-------按下大写(x)