分享

Linux 常用命令收藏版

 剩矿空钱 2018-05-27

概述

本篇博文讲述系统内核、Bash解释器的关系与作用,如何正确的执行Linux命令以及常见排错方法。

经验丰富的运维人员可以恰当的组合命令与参数,使Linux字符命令更加的灵活且相对减少消耗系统资源。

强大好用的SHELL

计算机硬件是由运算器、控制器、存储器、输入/输出设备等设备组成的,而能够让机箱内各种设备各司其职东西就叫做——系统内核。内核负责驱动硬件、管理活动和分配/管理硬件资源,如此说来系统内核对计算机来讲可真的是太重要了,所以它不能直接让用户操作。

因为用户不能直接控制硬件也不能直接操作内核,于是便需要基于“系统调用接口”开发出的程序/服务来满足用户日常工作了。

Linux 常用命令收藏版

首先承认在红帽RHEL7中有些诸如逻辑卷管理器(LVM)的图形化工具非常好用,也减少了运维人员操作出错的几率,值得称赞,但一直以来Linux运维人员更多的倾向于用命令写脚本程序,因为图形化的工具不灵活而且相比来说更加消耗系统资源。

其实很多图形工具也是调用脚本来工作的,但功能却被“阉割”了,更缺乏了灵活性,所以有些运维人员甚至都不会给Linux系统安装图形界面,需要工作了直接远程连接过去,不得不说这样做真的挺高效的。

Linux 常用命令收藏版

“Shell“——也可称为“壳”,充当的是人与内核(硬件)的翻译官,用户将一些命令“告诉”Shell,它就会调用相应的程序服务执行工作啦~~现在包括红帽系统在内的许多热门Linux系统主流默认字符Shell是Bash(Bourne-Again SHell)。

bash作为大多数linux系统的默认字符解释器,必须得学好!Bash的优势:

  • 1.默认保存历史命令(可用上下键翻看)

  • 2.命令仅需输入前几位就可以用tab键补全(RHEL7更牛的是参数补全)

  • 3.强大的批处理脚本

  • 4.实用的环境变量


执行命令与查看帮助 man

既然有了如此好用的“翻译官”,那么接下来就有必要好好学习下如何更高效的和它沟通了~

要想准确的、高效的完成工作,不能够光靠命令本身,还应该根据实际情况来组合各种命令选择和命令参数:

命令名称 [命令参数] [命令对象]11

注意:命令名称、命令参数、命令对象之间请用空格键分隔。

比较好理解的是命令对象,命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),而命令参数对于新手来讲比较麻烦,因为这个值会随命令的不同和环境情况的不同而异,所以在参数选择搭配上需要长时间的经验积累才可以。

命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分别用”—“与”–“做前缀。

长格式如:man —help

当遇到了一个陌生命令后如何知道它有那些可用的参数?这时就可以用man命令了。

man命令的可用帮助文档分类有:

Linux 常用命令收藏版

一般来讲帮助文件都很长很多,如果你想翻看的话,就要理解帮助文档的目录结构与操作方法:

Linux 常用命令收藏版

常用系统工作命令

echo

echo命令用于在终端显示字符串或变量,

格式为:echo [字符串 | 变量]

将echo命令的字符串输出到终端:

[root@xgj~]# echo xgjxgj1212

用echo命令查看SHELL变量的值(前面有$符号):

[root@xgj~]# echo $SHELL/bin/bash1212

查看本机主机名:

[root@xgj~]# echo $HOSTNAMExgj1212

date

date命令用于显示/设置系统的时间或日期,

格式为:date [选项] [ 指定的格式]

强大的date命令能够按照指定格式显示系统的时间或日期,只需键入” ”号开头的字符串指定其格式.

详细格式如下:

Linux 常用命令收藏版

查看当前的系统时间:

[root@xgj ~]# dateMon Aug 24 16:11:23 CST 20161212

按照”年-月-日 小时:分钟:秒”的格式:

[root@xgj ~]# date ' %Y-%m-%d %H:%M:%S'

设置系统时间为2017年5月1日8点半:

[root@xgj ~]# date -s '20170501 8:30:00'Mon May 1 08:30:00 CST 20151212

查看本地系统时区:

[root@xgj ~]# date ' %Z'CST1212

查看星期几:

[root@xgj ~]# date ' %A'Tuesday1212

输入当前是上午还是下午:

[root@xgj Desktop]# date ' %p'AM1212

判断今天是一年中的第几天:

[root@xgj ~]# date ' %j'2441212

reboot

reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”。

重启计算机:

[root@xgj ~]# reboot11

wget

wget命令用于使用命令行下载网络文件,

格式为:wget [参数] 下载地址

Linux 常用命令收藏版

系统状态检测命令

合格的运维人员必需具备快速查看系统状态的能力.

ifconfig

ifconfig用于获取网卡配置与网络状态等信息:格式为ifconfig [网络设备] [参数]

查看本机当前的网卡配置与网络状态等信息:

[root@xgj ~]# ifconfig......

uname

uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”。

查看系统的内核名称、内核发行版、内核版本、节点名、硬件名称、硬件平台、处理器类型、操作系统等信息:

[root@xgj ~]# uname -a11

顺便说下,如果您想查看系统详细版本信息就看redhat-release文件:

[root@xgj ~]# cat /etc/redhat-release11

uptime 查看系统的负载情况

uptime命令用于查看系统的负载情况,格式为:“uptime”。

我也经常用”watch -n 1 uptime“来每秒刷新一次获得当前的系统负载情况,输出内容分别为系统当前时间、系统已运行时间、当前在线用户以及平均负载值。

而平均负载分为最近1分钟、5分钟、15分钟的系统负载情况,负载值越低越好(小于1是正常)。

获取当前系统状态信息:

[root@xgj ~]# uptime22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.181212

free

free命令用于显示当前系统中内存的使用量情况,格式为:free [-m/-g]

以m为单位显示当前系统中内存的使用量情况:

[root@xgj ~]# free -m11

Linux 常用命令收藏版

who

[root@xgj ~]# who11

Linux 常用命令收藏版

last

last命令用于查看所有系统的登入记录,格式为:”last [参数]”。

[root@xgj ~]# lastroot pts/0 :0 Mon Aug 24 17:52 still logged inroot :0 :0 Mon Aug 24 17:52 still logged in(unknown :0 :0 Mon Aug 24 17:50 - 17:52 (00:02)

history

history命令用于显示历史执行过的命令,格式为:“history [-c]”。

历史命令会被保存到用户家目录中的”.bash_history“文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。

清空该用户在本机中执行过命令的历史记录:

[root@xgj ~]# history -c11

history默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。

sosreport

sosreport命令用于收集系统系统配置并诊断信息后输出结论文档,格式为:“sosreport”。

当我们的红帽系统出现故障需要联系红帽厂商或其他技术支持时,大多数情况都需要提供使用到这个命令。

收集系统本地配置信息并诊断:

[root@xgj ~]# sosreport11

工作目录切换命令

pwd

pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。

Linux 常用命令收藏版

cd

cd命令用于切换工作路径,格式为:“cd [目录名称]”

Linux 常用命令收藏版

切换进/etc目录中:

[root@xgj ~]# cd /etc11

切换进/bin目录中:

[root@xgj etc]# cd /bin11

返回上级目录(即/etc目录):

[root@xgj bin]# cd -/etc1212

返回用户自己的家目录:

[root@xgj etc]# cd ~[root@xgj ~]#1212

ls

ls命令用于查看目录中有那些文件,格式为:ls [选项] [文件]

查看当前目录下有那些文件(长格式):

Linux 常用命令收藏版

查看/etc目录中有那些文件:

[root@xgj ~]# ls /etc………省略部分文件………1212

查看/etc目录的权限与属性:

[root@xgj ~]# ls -ld /etcdrwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc1212

追加-h参数,以K/M/G为单位显示容量:

[root@xgj ~]# ls -ldh /etcdrwxr-xr-x. 132 root root 8.0K Jul 10 10:48 /etc123123

文本文件编辑命令

cat

cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。

查看文本文件:

[root@xgj ~]# cat 文件名11

Linux 常用命令收藏版

more

more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。

查看文本文件:

[root@xgj ~]# more 文件名11

Linux 常用命令收藏版

head

head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。

查看文本文件前20行:

[root@xgj ~]# head -n 20 文件名11

Linux 常用命令收藏版

tail

tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”

查看文本文件后20行:

[root@xgj ~]# tail -n 20 文件名11

Linux 常用命令收藏版

od

od命令用于对查看特殊格式的文件,格式为:“od [选项] [文件]”

Linux 常用命令收藏版

tr

tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”。

将tr.txt文件的内容转换成大写

| —管道命令符

[root@xgj ~]# cat tr.txt | tr [a-z] [A-Z]RED HAT CERTIFIEDFREE LINUX LESSONSPROFESSIONAL GUIDANCELINUX COURSE1234512345

wc

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。

Linux 常用命令收藏版

统计当前系统中的用户个数:

[root@xgj ~]# wc -l /etc/passwd38 /etc/passwd1212

cut

cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”。

Linux 常用命令收藏版

获取当前系统中所有用户的名称:

参数作用:-d以”:”来做分隔符,-f参数代表只看第一列的内容。

[root@xgj ~]# cut -d: -f1 /etc/passwd11

获取root用户的默认SHELL解释器:

[root@xgj ~]# grep ^root /etc/passwd | cut -d: -f 7/bin/bash1212

diff

diff命令用于比较多个文本文件的差异,格式为:”diff [参数] 文件”。

Linux 常用命令收藏版

比较两个文件的差异:

[root@xgj ~]# diff diff_A.txt diff_B.txt

仅显示比较后的结果,即相同或不相同:

[root@xgj ~]# diff --brief diff_A.txt diff_B.txtFiles diff_A.txt and diff_B.txt differ1212

使用上下文输出的格式:

[root@xgj ~]# diff -c diff_A.txt diff_B.txt*** diff_A.txt 2015-08-30 18:07:45.230864626 0800--- diff_B.txt 2015-08-30 18:08:52.203860389 0800****************** 1,5 ****! Welcome to xgj.comRed Hat certified! Free Linux LessonsProfessional guidance

文件目录管理命令

touch

touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”。

我们可以用“touch test”轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。

对于在Linux中的文件有三种时间:

- 更改时间(mtime):内容修改时间(不包括权限的)

- 更改权限(ctime):更改权限与属性的时间

- 读取时间(atime):读取文件内容的时间

如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。

Linux 常用命令收藏版

mkdir

mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。

创建文件夹:

[root@xgj ~]# mkdir 文件夹名11

Linux 常用命令收藏版

创建一个名字叫xgj的目录:

[root@xgj ~]# mkdir xgj11

使用ls命令查看该目录的权限属性等信息:

[root@xgj ~]# ls -ld xgj/drwxr-xr-x. 2 root root 6 Aug 24 19:25 xgj/1212

还记得刚刚用cd命令进入xgj目录吗?这里是个小技巧,变量!$或(键盘按键)代表上一条命令的参数。

[root@xgj ~]# cd !$cd xgj1212

pwd命令用于显示当前的工作路径。

[root@xgj xgj]# pwd/root/Desktop/xgj1212

一次创建5个目录a/b/c/d/e:

[root@xgj xgj]# mkdir -p a/b/c/d/e11

查看目录的属性,验证是否成功:

[root@xgj xgj]# ls -ld a/b/c/d/e/drwxr-xr-x. 2 root root 6 Aug 29 10:16 a/b/c/d/e/1212

cp

cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。

复制命令的三种情况:

- 目标文件是一个目录,会将源文件复制到该目录中。

- 目标文件是一个文件,会将源文件覆盖该文件。

- 目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)

Linux 常用命令收藏版

创建一个名为install.log的文件:

[root@xgj ~]# touch install.log11

将install.log复制为x.log:

[root@xgj ~]# cp install.log x.log11

查看到确实出现了文件x.log

[root@xgj ~]# lsinstall.log x.log1212

mv

mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。

将文件aaa重命名为bbb:

[root@xgj ~]# mv aaa bbb11

rm

rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。

删除普通文件并提示确认信息:“rm 文件名”

删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”

Linux 常用命令收藏版

查看当前目录下的文件:

[root@xgj ~]# lsinstall.log x.log1212

删除install.log文件,输入”y”即确认:

[root@xgj ~]# rm install.logrm: remove regular empty file ‘install.log’? y1212

删除x.log文件而无需确认:

[root@xgj ~]# rm -rf x.log11

Linux系统中还有一个rmdir命令,它不同于rm -rf命令会删除一切,而是仅删除空目录,遇到目录内有文件时则报错。

dd

dd命令用于指定大小的拷贝的文件或指定转换文件,格式为:“dd [参数]”。

Linux 常用命令收藏版

将光驱设备拷贝成镜像文件:

[root@xgj ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-xgj.Com.iso7311360 0 records in7311360 0 records out3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s12341234

生成一个560m的空白文件:

[root@xgj ~]# dd if=/dev/zero of=560_file count=1 bs=560M1 0 records in1 0 records out587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s12341234

将硬盘的MBR信息拷贝出来:

[root@xgj ~]# dd if=/dev/sda of=sda_image count=1 bs=512K1 0 records in1 0 records out524288 bytes (524 kB) copied, 0.0449481 s, 11.7 MB/s12341234

用户与组管理命令

useradd

useradd命令用于创建新的用户,格式为:“useradd [选项] 用户名”。

Linux 常用命令收藏版

创建名为xgj的用户,并定义家目录路径、UID以及登陆解释器(不允许登陆):

[root@xgj ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin xgj11

查看xgj用户的基本信息:

[root@xgj ~]# id xgjuid=8888(xgj) gid=8888(xgj) groups=8888(xgj)1212

passwd

passwd命令用于修改用户的密码,格式为:“passwd [选项] [用户名]”。

- 修改当前用户的密码:“passwd”

- 修改其他用户的密码:“passwd 其他用户名”

Linux 常用命令收藏版

userdel

userdel命令用于删除用户所有表格,格式为:“userdel [选项] 用户名”。

删除用户与其家目录:

[root@xgj ~]# userdel -d 用户名11

Linux 常用命令收藏版

usermod

usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。

Linux 常用命令收藏版

groupadd

groupadd命令用于创建群组,格式为:”groupadd [选项] 群组名”。

创建名称为xgj的用户群组:

[root@xgj ~]# groupadd xgj11

打包压缩文件命令

tar

tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。

  • 打包并压缩文件:“tar -czvf 压缩包名.tar.gz 文件名”

  • 解压并展开压缩包:“tar -xzvf 压缩包名.tar.gz”

Linux 常用命令收藏版

将/etc目录内文件打包并通过gzip格式压缩:

[root@xgj ~]# tar czvf etc.tar.gz /etc

将etc.tar.gz解压到/root/etc目录中:

[root@xgj ost ~]# mkdir /root/etc开始解压etc.tar.gz文件:

文件查询搜索命令

grep

grep命令用于对文本进行搜索,格式为:“grep [选项] [文件]”。

搜索某个关键词:“grep 关键词 文本文件”

Linux 常用命令收藏版

搜索在/etc/passwd中”/sbin/nologin”出现的行,找出系统中不允许登陆的用户。

[root@xgj ~]# grep /sbin/nologin /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologin………………………………1234567812345678

找出文件“/usr/share/gedit/plugins/snippets/docbook.xml”中所有包含entry的行并输出到/root/lines:

grep entry /usr/share/gedit/plugins/snippets/docbook.xml >> /root/lines11

find

find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”。

这里需要注意下find命令非常灵活导致参数非常复杂,这里不要求大家记住,用时来查即可。

对于常用搜索路径有几个小窍门:“~”代表用户的家目录,“.”代表当前目录,“/”代表根目录。

Linux 常用命令收藏版

搜索整个系统中所有包含SUID的文件(因SUID的数字表示法是4,而减号表示只要包含即可)。

[root@xgj ~]# find / -perm -4000 -print/usr/bin/fusermount

找出用户xgj的文件并复制到/root/findresults目录。

重点是”-exec {} \;”其中的{}代表find命令搜索出的文件,记住结尾必须是\;

[root@xgj ~]# find / -user xgj -exec cp -arf {} /root/findresults/ \;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多