Linux常用命令

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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!