序言
作为后端开发,我们对Linux肯定是不陌生的,Linux作为服务器的话相较于Windows会有一个安全性的保证,因为大量的木马病毒是无法在Linux上执行的,Linux不支持.exe的文件。
目前Linux主要是发布了两大版本,分别是:
- 一:(redhat,centOS,fedora,turboLinux)
- 二:(ubuntu,debian)
我们一般最常用的还是红帽子的CentOS系列了,今天就记录下CentOS上简单的命令。
工具
vmWare:
使用vmWare工具可以让我们快速方便的使用Linux系统,我们只需要下载一个镜像到vmWare中就可以使用Linux了,不需要再单独的创建一个Linux系统了。
vmWare的两大功能:快照和克隆
- 快照:为当前的虚拟机生成一个快照,常见于马上要执行一些不熟悉的命令的时候,可以提前生成快照,如果命令执行失败导致出现了一些灾难性的问题,我们可以很方便的将Linux恢复到快照时的样子。
- 克隆:克隆可以分为两种方式,分别是:链接克隆和完整克隆,完整客隆的话就是克隆出一份和当前虚拟机一模一样的子虚拟机,所占大小也完全一样,两者互不干扰。链接克隆的话就是克隆出的子虚拟机所占大小比之前小很多,且主虚拟机删除,链接克隆的子虚拟机也会随之删除。
划分硬盘
对于一个新的Linux系统和Windows一样是需要对其的硬盘进行划分的,主要分为以下几个步骤:
分区——>对分区进行格式化(将分区写入文件系统)——>为分区设置分区名——>为每个分区进行挂载(挂载:相当于为每一个分区都设置一个入口文件,类似于Windows当中C,D,E,F盘的作用)
分区的概念
分区的目的就是为了让我们的数据更加方便于管理,且增加可读性,不同的盘存放不同类型的数据。
分区可以分为主分区,扩展分区,逻辑分区,一般扩展分区不允许存放数据但它可以存放逻辑分区,主分区和逻辑分区是可以存放数据的,一个系统主分区+逻辑分区最多只能有4块。
Linux的注意事项
- Linux当中是严格区分大小写的
- Linux当中所有东西都是以文件格式存储的,包括硬件,所以要想修改配置需要到文件内修改,直接在命令行修改只是临时生效的。
- Linux中的文件是不需要写扩展名的,一般文件有扩展名的话目的只是为了让我们更便于区分。
- 在/usr/local下存放第三方软件,在/etc下存放配置文件,在/dev下存放硬件设备文件,在/bin或/usr/bin下存放的系统文件所有用户都可以访问,在/sbin和/usr/sbin下存放的系统文件只有管理员可以访问,/root目录即管理员目录,/home/用户名即普通用户目录,/src:服务数据目录,一些服务启动后在这个目录存放所需的数据,/var:日志目录
文件/目录操作命令
查看文件的命令:
ls(list),ls表查看当前目录下的所有文件/目录,ls -l:打印出详细信息,ls -a:打印出所有文件/目录包括隐藏文件
创建目录:mkdir 目录名
删除目录:rmdir 目录名
注意:要删除的目录必须是空白目录,其目录下不能有其他文件或目录,否则会删除失败。
切换目录:cd 目录名
显示当前所在目录:pwd
复制文件/目录:cp命令:cp 源文件 目标文件
注意:当拷贝的是目录时需要添加-r参数。使用小技巧:复制时修改文件名:cp /tmp/guo.conf /root/rong.conf,复制guo.conf文件并将文件名改为rong.conf
剪切文件/目录:mv命令:mv 源文件 目标文件
注意:剪切时无需考虑是否是目录不需要添加-r,使用小技巧:实现强制改名的效果 :mv /tmp/guo.conf /tmp/hao.conf
删除文件:rm命令:rm 文件名:删除一个文件
要删除的是文件夹时可以添加 -r 参数,rm是支持递归删除的,添加-f参数可实现强制删除,强制删除就是指没有系统的提示直接全部删除掉。
创建文件:touch 文件名
创建链接文件:ln命令
ln 源文件 目标文件:创建硬链接文件,它类似于cp拷贝文件,只不过硬链接文件的内容是动态刷新的,源文件内容发生变化硬链接内容也随之发生变化。
ln -s 源文件 目标文件:创建软链接文件,软链接文件所占的大小比源文件少很多,软链接文件有点类似于Windows中的快捷方式,源文件删除,目标文件也随之删除
它俩的区别:软链接可以跨分区,硬链接不能跨分区,软链接可以链接目录,硬链接不能链接目录
文件浏览命令
cat 文件名
适合浏览内容较少的文件,添加-n参数可在浏览时打印行号
less 文件名
适合浏览内容较多的文件,可以通过page up/page down来实现上下翻页且可以在浏览文件时输入/关键字,来对关键字进行查找,按n表查找下一个关键字,按q退出
head 文件名
简明之意,就是浏览文件前10行的内容,指定-n 3,后可以查看前3行的内容
tail 文件名
简明之意,就是浏览文件后10行的内容,指定 -n 3,可查看后3行的内容,指定-f参数,可实现一个动态变化的效果,文件内容发生变化,浏览时也随之变化。
文件搜索命令
find命令
根据文件名:-name
find 路径 -name /关键字,查找指定路径下文件名包含关键字的文件。-iname表不区分大小写
根据文件大小:-size
find 路径 -size (±=) 大小,+代表大于,-代表小于,=代表等于,Linux当中的文件大小用的单位是数据块,一数据块=0.5KB
根据文件的创建这:-user
find 路径 -user 用户名:查看指定用户创建的所有文件
根据访问时间
find 路径 -admin ±时间:查看指定时间内被访问过的所有文件
find 路径 -cmin ±时间,查看指定时间内被修改过文件属性的所有文件
find 路径 -mmin ±时间:查看指定时间内被修改过文件内容的所有文件
时间单位都是分钟
-a和-o参数
-a参数表两个条件都需要满足,-o参数表满足两个条件中的一个即可
命令搜索
which和whatis可以搜索某一命令所在的目录,eg:which ls:查看ls命令在哪个目录下存放(前面就说过在Linux中所有东西都是以文件的形式存储)
文件内部搜索
grep 关键字 文件名:查看指定文件中包含关键字所在的行内容,-v参数表取反的意思,即查询除关键字所在行外的其他所有行。
权限命令
一个文件包括3种权限,rwx分别是读权限,写权限,执行权限,一个文件所属的用户分为3种,分别是所有人,所属组和其他人。
对于文件的读权限可以是:cat/less/tail/head,对于文件的写权限就是vim,对于文件的执行权限一般就是针对于二进制文件的rpm,yum命令
对于文件夹的读权限可以是:ls,对于文件夹的写权限可以是:touch,mv,mkdir,对于文件的执行权限就是cd。
chmod命令(只有root管理员和文件的所有者可以执行)
chomod 【ugoa】 【±=】 【rwx】 文件名/目录名
ugoa分别代表:文件的所有者即创建者,文件的所属组,文件的其他人,文件的所有人(包括ugo)
±=分别代表:增加权限,减少权限,恒等于权限
rwx分别代表:读权限,写权限和可执行权限
数字表示法:421分别代表rwx,eg:rwx-w—x代表(rwx=7,-w-=2,–x=1)
chmod 763 list:设置list文件中所有者的权限为读写执行,所属组的权限为读写,其他人的权限为写执行,-R参数,即当设置目录时添加-R参数,将其的所有子目录也设置为相同的权限。
chown命令(只有文件的管理员可以执行)
修改文件的所有者,chown wang list,将list文件的所有者设置为wang。
文件解压/压缩命令
gz
gzip 文件名:将文件压缩成.gz格式的文件,gunzip 文件名:将文件进行解压
(gz格式只能压缩文件而不能压缩目录,gz格式在压缩和解压缩后不会保留源文件)
tar
tar -cvf guo.tar guo:将指定目录打包成guo.tar文件,然后就可以通过gzip guo.tar将其压缩成guo.tar.gz压缩文件了
tar -zcvf guo.tar.gz guo:直接将指定目录压缩成guo.tar.gz文件
tar -zxvf guo.tar.gz:将指定文件进行解压
zip
zip guo.zip guo:将guo文件压缩成guo.zip文件,添加-r参数可压缩目录
unzip guo.zip:将guo.zip文件进行解压缩
三者的区别
zip和tar支持压缩目录,gz仅支持压缩文件。gz和tar的压缩效果比zip好。gz会覆盖源文件,tar和zip不会覆盖源文件。
其他常用命令
帮助命令
用于查看某一命令或者配置文件的详细信息及作用,可以帮助我们更好理解命令和配置文件。
man 命令名/配置文件名
命令名 --help
注意:可能存在一种情况当命令名和配置文件名一样的时候,我们可以添加1表示查看的是命令,添加5表示查看的是配置文件。
用户管理命令
useradd 用户名:添加一个用户,passwd 用户名:修改用户的密码(只能root用户执行)
passwd:修改当前用户的密码
who/w:查看当前登录系统的用户
网络命令
wall hello:给当前登录Linux系统的所有用户发送一条hello消息。
ping 地址:可以检测出当前系统的网络是否连接成功。
ifconfig/ip addr:打印出当前的ip地址。
last:查看所有用户的登录退出时间。
lastlog:查看所有用户的最后登录时间。
traceroute 域名:打印出当前网络到达指定域名所要经过的所有节点。
netstat:netstat -tlun:打印出当前机器所监听的端口,netstat -an:打印出当前机器的所有网络连接
setup:修改我们的网络配置,修改后需要重启网络配置才能让配置生效,service netstat restart
关机重启命令
shutdown -h:关机,shutdown -r 重启
文本编辑器
Linux中的文本编辑器vim:
文本编辑器会有三个模式:命令模式,插入模式,编辑模式,vi 文件名进去就是命令模式,按一下a/i/o可进入插入模式,输入:在输入命令就是编辑模式。
aio:a:进入插入模式并定位在光标的后面,i:进入插入模式并定位在光标的前面,o:进入插入模式定位在光标的下一行
行的操作
:set nu:显示行号
:set nonu:取消行号
:n:定位到第n行
$:定位到光标所在行的行尾
0:定位到光标所在行的行首
gg:移动到当前文件的第一行
G:移动到当前文件的最后一行
nG:定位到第n行
删除操作
x:删除当前光标所在的字符
dd:删除当前光标所在行
复制和粘贴命令
yy:复制当前光标所在行
nyy:复制当前光标所在行及以下的n-1行
dd:剪切当前光标所在行
ndd:剪切当前光标所在行及以下的n-1行
p/P:复制到当前光标所在行的上面/下面
取消命令
u:取消上一步的操作,类似于撤销操作
搜索命令
/关键字:进行搜索,按n可查看下一个关键字(查找时是区分大小写的,如果想不区分大小写可以在搜索前输入:set ic然后再进行搜索)
替换命令
:%s/old/new/c(全文替换),%s表全文,old:旧词,new:新词,c表示替换的时候会询问一下。
:start,ends/old/new/g(范围替换),start表开始行,end表结束行,g表示直接替换不会询问。
退出保存命令
:wq:保存并退出,:q!:不保存并退出,:w:保存,:w 文件名:将文件另存为,:wq!强制保存并退出(只有root可用)
其他命令
:r 文件名,将指定文件中的内容插入到当前光标所在行的下面
软件包
Windows当中软件一般就是使用.exe可执行程序直接安装,Linux当中的软件包分为两种,一种是源码包,一种就是二进制包也称为RPM包。
两者的区别:
- 源码包相较于二进制包安装起来比较繁琐容易出错且安装的顺序慢
- 二进制包相较于源码包虽然安装块但是看不到源码内容,并且它会对其他的二进制包有依赖性
RPM包的包全名:包名+版本+软件发布的次数+适合的Linux平台+适合的硬件平台+rpm包扩展名
rpm包的依赖性问题:大体上可分为三种依赖性分别是树形依赖,环形依赖和模块依赖
- 树形依赖:a->b->c:当我们要安装a时a依赖到了b依赖到了c需要先安装b和c最后再安装a
- 环形依赖:a->b->c->a:解决这种依赖问题的话,通过一条命令下载abc的方式来解决
- 模块依赖:这种依赖方式,它不会告诉你具体依赖到那个rpm包,而是只告诉你依赖到rpm包中的具体一个包,这种需要自己找出要依赖的rpm包然后进行下载
rpm命令操作rpm包:
rpm -ivh rpm包全名:根据指定包全名来进行软件的安装
rpm -e rpm包名:根据指定包名来进行软件的卸载
rpm -q rpm包名:查看指定rpm对应的软件是否已下载
rpm -qa:查看所有已经下载好的rpm包
解决rpm包依赖的方式:可以通过yum命令来解决,yum数据源中有百分之99的rpm包,使用yum命令可帮助我们自动下载所需的依赖包。
yum命令操作rpm包:
yum -y install rpm包名:安装软件,-y表示在安装时所有询问都自动回复yes
yum -y update rpm包名:更新软件
yum -y remove rpm包名:卸载软件
yum list:查看yum数据源下的所有rpm包
yum search 关键字:根据关键字来查询rpm包的详细信息
总结
以上就是Linux当中一些基础常用的命令了。