4linux基础命令详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4linux基础命令详解相关的知识,希望对你有一定的参考价值。

linux基础命令

Linux图形界面和命令行界面的切换

进入Linux桌面环境后,可以使用键盘上的”Ctrl+Alt+F1~F6”组合键来切换不同的tty界面,Linux默认提供了6个命令行界面(F1-F6),比如”Ctrl+Alt+F1”就是切换到tty1:


在命令行模式下,想要切换回图形界面可以使用组合键”Ctrl+Alt+F7”;另外,如果不是从图形界面切换到tty模式,而是系统启动时候直接进入了命令行模式,在登陆后可以使用”startx”这条命令来启动图形界面(前提是图形界面有安装)。

date 显示时间

date命令用于显示及设置系统的时间或日期,格式为:”date [选项] [+指定的格式]”。 
按照默认的格式查看当前的系统时间:

[[email protected] ~]# date
Fri Sep  2 07:15:49 CST 2016

按照”年-月-日 小时:分钟:秒”的格式查看当前的系统时间:

[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S"
2016-09-02 07:16:17

设置当前的系统时间为2016年9月1日8点30分:

[[email protected] ~]# date -s "20160902 8:30:00"
Fri Sep  2 08:30:00 CST 2016
[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S"
2016-09-02 08:30:06

查看今天是一年中的第几天:

[root@localhost ~]#  date "+%j"
246

reboot 重启机器

reboot命令用于重启系统,格式为:”reboot”。 
重启计算机这种操作会涉及到对硬件资源的管理权限,因此默认只能使用root用户来重启您的电脑:

[root@localhost ~]# reboot   #注意重启后,没有配置到配置文件的临时生效的将失效

poweroff 关闭机器

poweroff命令用于关闭系统,格式为:”poweroff”。 
关机命令也同理,默认只有root用户才可以关闭您的电脑:

[root@localhost ~]# poweroff

wget 下载命令

wget命令用于在终端中下载网络文件,格式为:“wget [参数] 下载地址”。

[[email protected] ~]# wget ftp://10.1.0.1/pub/Books/Docs/awk.png
--2016-09-02 08:35:16--  ftp://10.1.0.1/pub/Books/Docs/awk.png
          => ‘awk.png’
Connecting to 10.1.0.1:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/Books/Docs ... done.
==> SIZE awk.png ... 1586288

递归下载,下载完成后会自动保存到当前目录中名字为/10.1.0.1/pub/Books/Docs/

[[email protected] ~]# wget -r -p ftp://10.1.0.1/pub/Books/Docs/

ps 进程状态

ps命令用于查看系统中的进程状态,格式为:“ps [参数]”,同样搭配的参数如下:

当您第一次执行这个命令时估计要惊呆下,这么多输出值怎么看的过来?其实平常我们会将ps命令与管道符来结合使用,用于来抓取到某个指定服务进程所对应的PID号码,而常见的ps命令参数包括有:

参数 作用 
-a 显示所有的进程(包括其他用户的) 
-u 用户以及其他详细信息 
-x 显示没有控制终端的进程

Linux系统中时刻运行着许许多多的进程,如果能够合理的管理它们,绝对有益于系统的性能优化,Linux系统中进程最常见的5种不同的状态是运行、中断、不可中断、僵死与停止,它们的特性分别是:

R(运行):正在运行或在运行队列中等待。 
S(中断):休眠中, 在等待某个条件的形成或接受到信号。 
D(不可中断):收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。 
Z:(僵死):进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。 
T:(停止):进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行。

[root@localhost ~]# ps -aux

技术分享

top 动态监视

top命令用于动态的监视进程活动与系统负载等信息,格式为:“top” 
这个top命令可真的是太厉害了,完全可以比喻成是“强化版的Windows任务管理器”

技术分享前面的五行为系统整体的统计信息,下面我们来逐行的讲解:

1行:系统时间,运行时间,登陆用户数,系统负载(分别为1分钟、5分钟、15分钟的平值)。
2行:进程总数,运行中的,睡眠中的,停止的,僵死的。
3行:用户占用资源,系统内核占用资源,改变过优先级的进程,空闲的资源,等待输入输出的时间。此行数据均为CPU数据并以百分比格式显示,例如"99.2 id"意味着有99.2%的CPU资源正在空闲中。
4行:物理内存总量,使用量,空闲量,作为内核缓存的内存量。
5行:虚拟内存总量,使用量,空闲量,已被提前加载的内存数据。

pidof 查看进程pid

pidof命令用于查询某个指定服务的进程PID号码值,格式为:“pidof [参数] [服务名称]”。

[[email protected] ~]# pidof sshd
3236 1263 1161 1043

kill 进程杀死

kill命令用于终止某个指定PID号码的进程,格式为:“kill [参数] [进程PID号]”。 
我们来动手将上面pidof命令查询到的PID号码给终止掉吧,这边作用等同于将sshd服务强制停止。

[[email protected] ~]# kill -9 1263

技术分享killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数] [进程名称]”。

一般大型软件的服务程序通常都会有数个进程协同为其提供服务,那么如果逐个去结束PID号码又实在麻烦,因此便可以使用killall命令来批量结束某个服务程序带有的全部进程,例如结束掉网络服务的全部进程,下面我们以httpd服务程序为例,默认您的RHEL7系统未安装它,所以此时只需看操作过程和结果即可:

[[email protected] ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[[email protected] ~]# killall httpd
[[email protected] ~]# pidof httpd

平时在系统终端中执行一个命令后如果想立即的停止它,您可以同时按下系统组合键”Ctrl+c”,这样命令的进程将会立即被终止,是比较常用的方法之一。或者有些命令在执行时会不断的在屏幕上输出信息,影响到我们继续输入命令了,此时便可以在执行这条命令前,将这段命令的最后面添加个”&”符号,那么从一开始执行该命令就会是在后台执行。

系统状态检测命令

作为一名合格的运维人员,为了更好的了解我们的Linux服务器,您必须具备快速查看系统状态的能力,所以接下来我们会逐个来学习下对于网卡网络、系统内核、系统负载、内存使用情况、当前登陆用户、历史登陆记录、命令执行记录以及救援诊断命令的使用方法,都是超级实用的。

ifconfig c查看网卡信息

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

查看本机当前的网卡配置与网络状态等信息,我们主要就是看每段开头的网卡名称、inet参数后面的IP地址、ether参数后面的物理mac地址以及RX、TX的接收与发送数据包的大小:

[[email protected] ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.1.252.96  netmask 255.255.0.0  broadcast 10.1.255.255
       inet6 fe80::20c:29ff:fe7e:80d1  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:7e:80:d1  txqueuelen 1000  (Ethernet)
       RX packets 391063  bytes 81126940 (77.3 MiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 11929  bytes 1600019 (1.5 MiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       loop  txqueuelen 0  (Local Loopback)
       RX packets 4  bytes 340 (340.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 4  bytes 340 (340.0 B)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uname查看系统内核版本信息

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

一般我们会固定搭配上-a参数来完整查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息:

[[email protected]lhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

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

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)
[[email protected] ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

uptime 查看系统负载信息

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

这个命令真的很棒,它可以为您显示当前系统时间、系统已运行时间、当前在线用户以及平均负载值等信息数据。平均负载值指的是最近1分钟、5分钟、15分钟的系统压力情况,负载值越低越好,尽量不要长期超过1。另外您还可以结合搭配用”watch -n 1 uptime”命令来每秒刷新一次来获得当前的系统负载情况。

[[email protected] ~]# uptime
08:55:14 up  6:34,  4 users,  load average: 0.00, 0.01, 0.05

free查看内存信息

free命令用于显示当前系统中内存的使用量信息,格式为:“free [-h]”。

为了保证Linux系统不会突然卡住宕机,因此内存使用量应该是运维人员时刻要关注的数据啦,我们可以使用-h参数来以更人性化的样式为我们展示出内存的实时使用量信息

技术分享

who查看当前登入主机用户

who命令用于查看当前登入主机的用户终端信息,格式为:”who [参数]”。

技术分享

last查看登录记录

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

下面使用last命令看到的本机登陆信息,其实仅仅是调取了过往保存到系统中的日志文件罢了,篡改里面的文字其实也很简单,因此对于做“黑客”入侵行为审计时其实并不牢靠,只能仅供我们参考而已:

[[email protected] ~]# last
root     pts/2        10.1.250.64      Fri Sep  2 07:06   still logged in  
root     tty5                          Fri Sep  2 07:05   still logged in  
root     pts/1        10.1.250.64      Fri Sep  2 01:12    gone - no logout
root     pts/0        10.1.250.64      Fri Sep  2 01:07    gone - no logout
reboot   system boot  3.10.0-327.el7.x Fri Sep  2 09:07 - 08:58  (00:-8)    
root     pts/0        10.1.250.64      Mon Jul 25 08:49 - crash (39+00:17)  
root     tty1                          Mon Jul 25 08:48 - crash (39+00:18)  
reboot   system boot  3.10.0-327.el7.x Mon Jul 25 16:47 - 08:58 (38+16:11)

history 历史命令查看

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

这条命令应该是我最喜欢的了,history命令默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。它能显示出当前用户在本地计算机中执行过的所有命令记录,您可以使用-c参数来清空里面的历史数据,还可以使用“!编码数字”的方式来重复执行某一次的命令:

[[email protected] ~]# history 
   1  ls
   2  history
[[email protected] ~]# !1
ls
10.1.0.1  aa.txt  anaconda-ks.cfg  awk.png  awk.txt  grep  sed  sed1  sed2

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

[root@localhost ~]# cat .bash_history 

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

[root@localhost ~]# history -c

sosreport收集系统配置并诊断

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

当我们的Linux系统出现故障需要联系红帽厂商或其他技术支持时,大多数时候都要先使用这个SOS功能来简单收集计算机的状态和配置信息,以便让技术支持公司能够通过远程就解决了一些小问题,又或者让他们能对复杂问题能提前有些了解:

[[email protected] ~]# sosreport 

sosreport (version 3.2)

This command will collect diagnostic and configuration information from
this CentOS Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp and may be provided to a CentOS support representative.

Any information provided to CentOS will be treated in accordance with
the published support policies at:

 https://www.centos.org/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit.  //此处敲击回车来确认收集信息

Please enter your first initial and last name [localhost.localdomain]:  //此处敲击回车,来确认主机名称。
Please enter the case id that you are generating this report for []:

Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...

 Running 90/90: yum...                      
Creating compressed archive...

Your sosreport has been generated and saved in:
 /var/tmp/sosreport-localhost.localdomain-20160902090311.tar.xz

The checksum is: 3bd4e419e6f3783fbee0220e9991b27e

Please send this file to your support representative.

[[email protected] ~]# cd /var/tmp/
[[email protected] tmp]# ls
abrt
sosreport-localhost.localdomain-20160902090311.tar.xz
sosreport-localhost.localdomain-20160902090311.tar.xz.md5
//此压缩包文件和这段校验值就是要发送给对方的内容。
systemd-private-0f7710d6f092472cb9d8314f97fc9a5e-cups.service-80xLZs
[[email protected] tmp]#

工作目录切换命令

工作目录指的是我们当前在系统中所处的“位置”,而这会牵涉到系统存储结构的知识,将会在第六章为您详细讲解,因此下面的操作实验您只需简单看下就好,如果不能完全掌握也不用自责,这是因为Linux系统庞大的知识体系造成的结果,每个初学者都会经过这么一段时期。

pwd显示当前所在目录

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

[root@localhost tmp]# pwd
/var/tmp

cd 切换目录

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

这个命令应该是最最常用的Linux命令之一了,您可以通过cd命令来便捷的切换不同的工作目录,除了常见的切换目录的方式,我们还可以使用“cd -”命令来返回到上一次所处的目录,使用“cd ~”命令来切换到当前用户的家目录,而使用“cd ~username”则可以切换到其他用户的家目录了~

使用“cd 路径”的方式切换进/etc目录中:

[root@localhost tmp]# cd /etc/
[root@localhost etc]# pwd
/etc

ls 显示目录的文件信息

ls命令用于显示目录中的文件信息,格式为:“ls [选项] [文件] ”。

当我们处在不同的工作目录下时,能够直接看到的文件也会发生变化,便可以通过ls命令的“-a”参数来看到全部文件(包括隐藏文件),再结合“-l”参数来查看文件的属性、大小等详细信息,整合之后的命令效果是这样的:

[root@localhost etc]# ls -al

如果需要看目录文件信息的话,需要额外添加一个-d参数才可以,例如查看/etc目录中文件的权限与属性:

[[email protected] etc]# ls -dl /etc/
drwxr-xr-x. 119 root root 8192 Sep  2 01:07 /etc/

文本文件编辑命令

cat查看文本

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

Linux系统中有需要用于查看文本内容的命令,但其中每个命令又都有自己的特色特点,比如这个cat命令就是用于查看比较精简的文本内容的,这个其实是最好记的命令之一,因为cat在英语中是猫的意思,小猫咪是不是总给你一种娇小、可爱的感觉呢?如果您想看文本内容时还顺便显示行号的话,不妨再追加一个“-n”参数吧:

[root@localhost etc]# cat -n /etc/passwd
    1  root:x:0:0:root:/root:/bin/bash
    2  bin:x:1:1:bin:/bin:/sbin/nologin
    3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4  adm:x:3:4:adm:/var/adm:/sbin/nologin
    5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    6  sync:x:5:0:sync:/sbin:/bin/sync
    7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

more查看文本(长)

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

[root@localhost etc]# more /etc/passwd

技术分享//此处会提示您已经阅读了百分之多少,可以使用空格和回车往下翻页。

head查看前N行

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

[root@localhost etc]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost etc]#

tail 查看后N行

tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为:“tail [选项] [文件]”。

[root@localhost etc]# tail -2 /etc/passwd
basher:x:1004:1004::/home/basher:/bin/bash
nologin:x:1005:1005::/home/nologin:/sbin/nologin

tail命令最强悍的功能是用于持续刷新一个文件的内容,尤其是对于想要实时看到最新日志文件的时候特别有用:

[root@localhost ~]# tail -f /var/log/messages

技术分享

tr 替换文本中的字符

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

很多时候我们想要快速的替换文本内容中的一些词汇,又或者将整个文本内容都进行替换,手工逐个替换真的太累了,而且对于处理大批量的内容非常不现实。此时我们便可以先使用cat命令读取待处理的文本内容,然后通过管道符,将这些数据传递给tr命令做替换操作即可,例如我们试试将文本内容完整替换成大写英文吧:

[root@localhost ~]# cat aa.txt | tr [a-z] [A-Z]
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN

wc 统计文本行数

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。 
参数 作用 
-l 只显示行数 
-w 只显示单词数 
-c 只显示字节数

我们使用“-l”参数来统计行数,而passwd是用于保存系统帐户信息的文件,因此下面的命令就是用于统计当前系统中有多少个用户的作用。

[root@localhost ~]# wc -l /etc/passwd
43 /etc/passwd

stat 查看文本的具体存储信息和时间

stat命令用于查看文件的具体存储信息和时间等信息,格式“stat 文件名称”。 
使用stat命令可以看到文件的存储信息和时间等信息,下面会显示出文件的三种时间状态:Access、Modify、Change,我们将在下面的touch命令中单独为您讲解:

[[email protected] ~]# stat aa.txt 
 File: ‘aa.txt’
 Size: 142         Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 201443251   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-09-02 09:17:51.591814082 +0800
Modify: 2016-07-25 20:16:59.827937141 +0800
Change: 2016-07-25 20:16:59.827937141 +0800
Birth: -

cut提取文本字符

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

只需要设置好匹配项目和行数即可,但是按列搜索的话不仅要使用“-f”参数来设置需要看的列数,还必须使用“-d”参数来设置间隔符号,因为passwd是用于保存用户信息数据的文件,而每一项值都是通过冒号来间隔(见下面head命令的输出演示),因此我们来尝试下提取出passwd文件中的用户名信息吧:

[root@localhost ~]# head -2 /etc/passwd | cut -d: -f1
root
bin

diff 对比文件差异

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

[[email protected] ~]# diff aa.txt bb.txt 
4a5
> zabbix

使用详细的上下文输出格式来描述文件内容具体的不同:

[root@localhost ~]# diff -c aa.txt bb.txt 
*** aa.txt  2016-07-25 20:16:59.827937141 +0800
--- bb.txt  2016-09-02 09:23:50.882790820 +0800
***************
*** 2,4 ****
--- 2,5 ----
 bin:x:1:1:bin:/bin:/sbin/nologin
 daemon:x:2:2:daemon:/sbin:/sbin/nologin
 adm:x:3:4:adm:/var/adm:/sbin/nologin
+ zabbix

文件目录管理命令

touch 创建空白文件

touch命令用于创建空白文件与设置文件的各种时间,格式为:“touch [选项] [文件]”。

它能够为我们创建出空白的文本文件,但这实在太简单不需要去讲,例如“touch aa”这样就可以创建出一个空白的名为aa的文本文件,而有难度的操作主要是用于设置文件的修改时间、更改时间与读取时间。

更改时间(mtime):内容修改时间(不包括权限的)
更改权限(ctime):更改权限与属性的时间
读取时间(atime):读取文件内容的时间

我们可以在修改一个文件前先查看下文件的修改时间,然后再通过touch命令将修改后的文件时间设置伪装成自己没有动过的一样,很多黑客就会这么做呢:

参数 作用 
-a 仅修改“访问时间”(atime) 
-m 仅修改“更改时间”(mtime) 
-d同时修改atime与mtime

mkdir 创建空白目录

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

在Linux系统中文件夹应该是最常见的文件类型之一,除了一般的创建单个目录操作外,我们还可以使用“-p”参数来递归创建出具有嵌套叠层关系的文件目录。

[root@localhost ~]# mkdir zabbix
[root@localhost ~]# cd zabbix/
[root@localhost zabbix]# mkdir -p /a/b/c{1,2}

cp 复制文件目录

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

在Linux系统中的复制操作其实具体还分为3种情况,第一种情况是如果目标文件是个目录,则会将源文件复制到该目录中,第二种情况是如果目标文件也是个普通文件,则会提示是否要覆盖它,最后是第三种的情况了,如果目标文件是不存在的,则会将源文件修改成目标文件的名称,类似于是重命名的操作。

参数 作用 
-p 保留原始文件的属性 
-d 若对象为”链接文件”,则保留该”链接文件”的属性 
-r 递归持续复制(用于目录) 
-i若目标文件存在则询问是否覆盖 
-a 相当于-pdr(p,d,r为上述的参数) 
首先创建一个名为install.log的文件,然后将其复制出来一份名为x.log的备份文件:

[root@localhost zabbix]# touch install.log
[root@localhost zabbix]# cp install.log x.log
[root@localhost zabbix]# ls
a  install.log  x.log

mv 移动文件或改名

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

剪切操作不同于复制操作,因为它会默认将源文件删除掉,用户就只有剪切后的文件了,并且如果对一个文件在同一个目录中进行剪切操作,其实也是重命名的作用:

[root@localhost zabbix]# mv x.log linux.log
[root@localhost zabbix]# ls
a  install.log  linux.log

rm 删除文件或目录

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

在Linux系统中删除文件时会默认再向您询问是否要执行删除操作,如果不想总看到这种反复的确认信息,您可以使用“-f”参数来直接强制删除,另外还要删除于目录文件夹的话,必需追加一个“-r”参数才可以,否则是删除不掉的,例如我们来尝试删除下刚刚那两个文件吧:

[[email protected] zabbix]# rm -r install.log 
rm: remove regular empty file ‘install.log’? y
[[email protected] zabbix]# rm -rf linux.log
[[email protected] zabbix]#

dd 指定大小的拷贝或转换文件

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

dd命令是个比较重要且具有特色的一个命令,它能够让用户指定数据块的大小和个数来复制一个文件的内容,当然如果您愿意的话还可以在复制过程中转换其中的数据。Linux系统中有一个叫做/dev/zero的设备文件,因为它不会占用您的系统存储空间,但里面却可以保存有无穷无尽的数据,一般用来搭配dd命令来生成出来一个指定大小的文件是再好不过的了。

参数 作用 
if输入的文件名称。 
of 输出的文件名称。 
bs 设置每个“块”的大小。 
count 设置要拷贝“块”的个数。

[[email protected] zabbix]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 10.7488 s, 54.6 MB/s

dd命令也绝对不仅限于复制文件这么简单,如果您想把一个光盘设备只做成iso格式的镜像文件,在Windows系统中一定免不了要用到第三方的很多软件才可以,但我们可以直接使用这个dd命令来复制并压制光盘设备变成一个可立即使用的iso镜像哦:

[[email protected] zabbix]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

打包压缩与搜索命令

tar 打包压缩

tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。 
"-c”参数是用于创建压缩文件的, 
“-x”参数是用于解压文件的,因此这两个不能同时放一起使用 
“-z”参数是指定使用Gzip格式来压缩解压文件, 
“-j”参数是指定使用bzip2参数来压缩解压文件 
“-v”参数来不断显示压缩或解压的过程给用户, 
“-C”参数用于指定要解压到的那个指定的目录, 
“-f”参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。 
“tar -czvf 压缩包名称.tar.gz 要打包的目录”命令来将指定的文件来打包, 
解压的话则是“tar -xzvf 压缩包名称.tar.gz”命令,

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

将刚刚打包的压缩包文件指定解压到/root/etc目录中:

[root@localhost ~]# mkdir /root/etc
[root@localhost ~]# tar xzvf etc.tar.gz -C /root/etc

grep 搜索匹配关键词

grep命令用于对文本内容进行关键词的搜索匹配,格式为:“grep [选项] [文件]”。

find 查找文件

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

在Linux系统中的搜索工作一般都是通过find命令来完成的,它可以根据不同的文件特性来做为匹配项(如文件名、大小、修改时间、权限等信息),一旦匹配到了则会默认为用户显示到屏幕上来,基础的匹配项目请见下表即可,“–exec”参数重要的作用,这个参数是用于将find命令搜索到的结果交由给后面的命令再进一步做处理

参数 作用

-name   匹配名称
-perm   匹配权限(mode为完全匹配,-mode为包含即可)
-user   匹配所有者
-group  匹配所有组
-mtime -n +n    匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n    匹配访问文件的时间-n指n天以内,+n指n天以前
-ctime -n +n    匹配修改权限的时间-n指n天以内,+n指n天以前
-nouser 匹配无所有者的文件
-nogroup    匹配无所有组的文件
-newer f1 !f2   匹配比文件f1新却比f2旧的文件
--type b/d/c/p/l/f  匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)
-size   匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)
-prune  忽略某个目录
-exec {} \; 后面可接对搜索到结果进一步处理的命令(下面会有演示)

Linux系统中的配置文件根据FHS协议会被保存到/etc目录中,如果我们要想获取到该目录中所有以host开头的文件就可以这样做:

[[email protected] ~]# find /etc -name "host*" -print
/etc/host.conf
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/hostname


本文出自 “家住海边喜欢浪” 博客,请务必保留此出处http://zhang789.blog.51cto.com/11045979/1845708

以上是关于4linux基础命令详解的主要内容,如果未能解决你的问题,请参考以下文章

4Linux基础

正点原子I.MX6U-MINI驱动篇4Linux设备树详解

day4Linux基础题目

Linux用户及权限详解

DOM探索之基础详解——学习笔记

Note4Linux环境,Linux命令,vi命令,正则,Hash,iNode,文件查找与读取,Linux开机自启动,Linux系统启动过程