Linux的介绍和使用

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)

上一篇:数组、单链表冒泡排序 C语言实现


下一篇:解密QQ号——队列