Linux常用命令
序言
目前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 文件夹名
mkdir 文件夹名:将文件夹创建在当前目录下
mkdir /文件夹名:将文件夹创建在根目录下
删除文件夹:rmdir 文件夹名
注意:要删除的文件夹必须是空白文件夹,其目录下不能有其他文件或目录,否则会删除失败。
切换目录:cd 文件夹名
cd 文件夹名:切换到当前所在目录下的指定文件夹
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管理员和文件的所有者可以执行)
chmod 【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:修改当前用户的密码,passwd 用户名:修改用户的密码(只能root用户执行)
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包的详细信息
进阶
sudu命令
在执行命令前添加sudu,表示以root身份运行该命令
管道|
|可以把两个命令连接起来使用,一个命令的输出作为另一个命令的输入。
eg:ps -ef | grep java
第一个命令:ps-ef 打印出现在运行的所有进程
第二个命令:grep java 打印包括java的行
则第一个命令的输出就作为了第二个命令的输入,最终将打印出运行的所有java进程
ps
用于显示当前系统中的进程, ps 命令显示的进程列表不会随时间而更新,是静态的,是运行 ps 命令那个时刻的状态或者说是一个进程快照。
常用参数
-
-ef 列出所有进程;
-
-efH 以乔木状列举出所有进程;
-
-u 列出此用户运行的进程;
-
-aux 通过 CPU 和内存使用来过滤进程 ps -aux | less ;
-
-aux –sort -pcpu 按 CPU 使用降序排列, -aux –sort -pmem 表示按内存使用降序排列;
-
-axjf 以树形结构显示进程, ps -axjf 它和 pstree 效果类似。
kill
kill + PID:结束一个进程
w
帮助我们快速了解系统中目前有哪些用户登录着,以及他们在干什么。
查看整机性能 top
按一下数字键盘的1,可以查看id(cpu空闲率越大越好)和loadaverage(系统负载率越小越好)也可以用Top命令来排查问题,定位到CPU利用率使用高的代码
uptime只能查看loadaverage(系统负载率越小越好)
查看机器其他性能
-
查看内存:free -m
-
查看硬盘:df -h
-
查看cpu:vmstat -n
-
查看io情况:iostat -xdk
-
查看日志:tail -f 文件名(添加-f后内容是动态变化的)
总结
以上就是Linux当中一些基础常用的命令了。
原文始发于微信公众号(GuoCoding):Linux常用命令
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/42969.html