linux系统命令总结(推荐11篇)
1、sync
sync:flush file system buffers,
sync命令作用:刷新文件系统的缓存,将数据同步写入硬盘。
执行sync命令的必要性:在计算机中,CPU所处理的数据首先要被读入内存中,而这些数据又经常要写回到硬盘上,但是硬盘的速度相对于内存来说太慢,如果数据频繁在内存与硬盘间交换,系统性能将大打折扣,所以为了加快数据的读取速度,默认情况下,某些已经加载在内存中的数据将不会直接被写回硬盘,而是先暂存在内存当中,这时如果关机或重启电脑,暂存在内存中的数据将可能丢失,正确的做法是先执行sync命令,多执行几次也无妨,以保证数据写入硬盘,事实上一些关机命令默认也执行了sync操作。
2、shutdown
shutdown命令用于安全关闭Linux系统。有些用户会使用直接断掉电源的方式来关闭Linux,这是十分危险的。因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至会损坏硬件设备。
执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录系统。使用shutdown命令可以直接关闭系统,也可以延迟指定的时间再关闭系统,还可以重新启动。延迟指定的时间再关闭系统,可以让用户有时间储存当前正在处理的文件和关闭已经打开的程序。
shutdown:bring the system down。
语法格式如下:
代码如下:shutdown [OPTIONS]… TIME [MESSAGE]
几个参数——
-k:不是真的关机,而是发送警告信息,此时不再允许登录。
-c:取消已经在进行的shutdown指令,此时TIME参数不必选择,MESSAGE为第一个参数,这个参数可选。
-r:将系统服务停掉之后reboot。
-h:将系统服务停掉之后halt或者powweroff。
-H:将系统服务关掉之后halt。
-P:将系统服务关掉之后poweroff。
注意:shutdown命令的TIME是必选参数,有多种格式,now表示立刻执行等同于参数为0的情况,形如20:20表示命令执行的具体时间,形如20表示20分钟后执行命令。
shutdown命令的工作实质是给init程序发送信号(signal),要求其切换系统的运行级别(Runlevel)。系统的运行级别包括:
0:关闭系统
1:单用户模式,如果没有为shutdown命令指定-h或-r参数而直接执行,则默认将切换到此运行级别
2:多用户模式(不支持NFS)
3:多用户模式(支持NFS),一般常用此种运行级别
5:多用户模式(GUI模式)
6:重新启动系统
3、reboot、halt、poweroff
语法格式如下:
reboot [OPTIONS]… [REBOOTCOMMAND]
halt [OPTIONS]…
poweroff [OPTIONS]…
几个参数——
-f:同上面的描述,不会调用shutdown(8),
-p:指定为halt命令,效果同poweroff一样。
-w:不调用shutdown(8)和reboot(2),只是把shutdown时间记录写入/var/log/wtmp中。
–verbose:输出详细的命令执行信息。
reboot(8)、halt(8)、poweroff(8):reboot or stop the system,这三个命令类似,查找man时,它们在同一个page8。当执行命令时使用了参数“-f”或者处于0~6的runlevel时,将会激活系统调用reboot(2) (REBOOTCOMMAND参数会传过去)并直接重启系统,否则调用的是shutdown(8),此时REBOOTCOMMAND参数不会传过去。在调用reboot(2)之前,shutdown时间记录会首先写入/var/log/wtmp中。
halt 关机命令
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启
[-i] 关机或重新启动之前,关掉所有的网络接口
[-p] 关机时调用poweroff,此选项为缺省选项
reboot linux重启命令
reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。
poweroff
部分泛UNIX/LINUX系统才支持,红旗LINUX亦适用。
4、init
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。
Linux的执行等级共有七种,即run level从0到6,其中run level 0表示关机,run level 6表示重启,切换run level的命令是init,如下:
代码如下:$ init 0
$ init 6
学习Linux系统环境下的关机命令首先就要先了解Linux的运行级别, Linux系统有7个运行级别:
#0系统停机, 这个千万不能设置为系统默认的运行级别, 如设为系统默认运行级别, 系统就不能正常启动, 机器关闭。
#1单用户工作状态, 这是root权限, 用于系统维护, 禁止远程登陆。
#2多用户状态, 没有NFS支持。
#3完整的多用户模式, 有NFS, 登陆后进入控制台命令行模式。
#4系统保留一般不用, 在一些特殊情况下可以用它来做一些事情。
#5 X11控制台, 登陆后进入图形GUI模式, X Window系统。
#6系统正常关闭并重启, 不能设为默认运行级别, 否则不能正常启动。
Linux是一种网络操作系统, 所以在其中包含有许多服务器脚本程序, 它们存储于目录/etc/rc.d/init.d中, 我们统称为service。其中有7个以rc N.d为名的目录, 与系统的7个运行级别一一对应。在rc N.d目录中存储的都是指向存储于init.d目录中的service的符号链接文件, 以K+nn+服务名或S+nn+服务名为文件名, nn为两位数字。
Linux操作系统在登录系统或者关闭系统时都要调用系统设置的运行级别, 才能进行相关的操作。Linux系统中有三个与关机相关的命令, 它们分别是shutdown, halt和reboot, 下面我们就分别详细说明一下:
Shutdown:
作用:关闭计算机系统, 并切断计算机电源关机。只有超级用户才能使用。
格式:shutdown[-h][-t][-k][-i][-m]
主要参数:
-h:关机后关闭电源。
-t:在系统运行级别改变以前, 通知init系统关机时间。
-k:只是给每位登录用户送出关机警告信号, 但并不真正关机。
-i:关闭操作系统时显示系统信息。
-time:设定关机前的时间。
-c:取消当前正在执行的关机操作程序。因此这个选项不带时间参数, 但是可以输入信息, 而输入的信息就会送达每位登录者。
-F:强迫系统在重启计算机时进行fsck。
-m:把系统改为单用户模式。
在这里我们需要说明的是Linux操作系统需要安全的关闭, 使用shutdown命令就可以安全地关闭Linux系统。但在实际中, 有些新人会用直接切断电源的方法关闭Linux系统, 长期使用这种方法对Linux系统来讲是十分危险的。因为Linux与Windows不同, 在其运行时后台运行着许多进程, 当关机时这些进程都要把数据回写到硬盘中, 所以切断电源关机就可能会导致进程的数据丢失, 使系统处于崩溃的边缘, 更甚者会直接损坏硬盘。
与shutdown命令作用相似的命令还有halt。
halt
作用:系统关闭命令。只有超级用户能使用
格式:halt[-n][-i][-f][-w][-p][-d]
主要参数
-n:只有在使用fsck程序修补过根分区之后才能用到这个参数, 主要作用就是防止内核用修补之前的超级块覆盖已修补过的超级块。
-i:关机 (或重启) 前, 关掉所有的网络接口。
-f:强迫关机或重启。
-w:并不是真正的重启或关机, 只是往/var/log/wtmp写纪录。
-p:执行关机操作时顺便切断机器电源。
-d:关闭系统时不留下纪录。
其实halt命令执行的操作就是shutdown-h。halt命令执行时, 会杀死应用进程, 执行sync系统调用, 把buffer中的数据强制写入硬盘, 当检测到文件系统写操作完成后就会停止内核。如果这时系统的运行级别为0或6, 就关闭系统;否则就会执行shutdown指令 (加上-h参数) 。
在Linux中的第三个与关机有关的命令就是reboot
Reboot
作用:重新启动计算机。只有超级用户才能使用。
格式:reboot[-n][-w][-d][-i]
主要参数:
-n:在重启计算机时不把内存中的数据写回硬盘。
-w:不是真的重启计算机, 只是把系统重启记录写入/var/log/wtmp文件里。
-d:不把重启记录写入/var/log/wtmp文件里, 其实已经包含在-n这个参数里了。
-i:在重启计算机之前把所有与网络有关的设备停止。
参考文献
代码如下复制代码
#!/bin/bash
#Data is written to the disk cache
sync
#Clean Page Cache
echo 1 > /proc/sys/vm/drop_caches
sync
#Clean All Cache
echo 3 > /proc/sys/vm/drop_caches
其中/proc/sys/vm/drop_caches中的值有4个,分别为0-3:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
编写脚本并赋予脚本可执行权限放入crontab里面定期执行:
使用腾讯云到现在已经快两个月,如今,此Linux Web服务器上的环境瓶颈大概就在MariaDB数据库中,
其他性能都优化到差不多了。
补充:手工释放内存方法
代码如下复制代码
sudo sh -c ”echo 1 > /proc/sys/vm/drop_caches“
sudo sh -c ”echo 2 > /proc/sys/vm/drop_caches“
‘configure’脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。带上’–help’选项执行’configure’脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。下面对每一个选项进行简略的介绍:
–cache-file=FILE
‘configure’会在你的系统上测试存在的特性(或者bug!)。为了加速随后进行的配置,测试的结果会存储在一个cache file里。当configure一个每个子树里都有’configure’脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助。
–help
输出帮助信息。即使是有经验的用户也偶尔需要使用使用’–help’选项,因为一个复杂的项目会包含附加的选项。例如,GCC包里的’configure’脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项。
–no-create
‘configure’中的一个主要函数会制作输出文件。此选项阻止’configure’生成这个文件。你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了。
–quiet
–silent
当’configure’进行他的测试时,会输出简要的信息来告诉用户正在作什么。这样作是因为’configure’可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么,使用这两个选项中的任何一个都会把你扔到一旁。(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)
–version
打印用来产生’configure’脚本的Autoconf的版本号。
–prefix=PEWFIX
‘–prefix’是最常用的选项。制作出的’Makefile’会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分。举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到”/opt/gnu/share”:
$ ./configure –prefix=/opt/gnu
–exec-prefix=EPREFIX
与’–prefix’选项类似,但是他是用来设置结构倚赖的文件的安装位置,编译好的’emacs’二进制文件就是这样一个问件。如果没有设置这个选项的话,默认使用的选项值将被设为和’–prefix’选项值一样。
–bindir=DIR
指定二进制文件的安装位置,这里的二进制文件定义为可以被用户直接执行的程序。
–sbindir=DIR
指定超级二进制文件的安装位置。这是一些通常只能由超级用户执行的程序。
–libexecdir=DIR
指定可执行支持文件的安装位置。与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行。
–datadir=DIR
指定通用数据文件的安装位置。
–sysconfdir=DIR
指定在单个机器上使用的只读数据的安装位置。
–sharedstatedir=DIR
指定可以在多个机器上共享的可写数据的安装位置。
–localstatedir=DIR
指定只能单机使用的可写数据的安装位置。
–libdir=DIR
指定库文件的安装位置。
–includedir=DIR
指定C头文件的安装位置。其他语言如C++的头文件也可以使用此选项。
–oldincludedir=DIR
指定为除GCC外编译器安装的C头文件的安装位置。
–infodir=DIR
指定Info格式文档的安装位置.Info是被GNU工程所使用的文档格式。
–mandir=DIR
指定手册页的安装位置。
–srcdir=DIR
这个选项对安装没有作用,他会告诉’configure’源码的位置。一般来说不用指定此选项,因为’configure’脚本一般和源码文件在同一个目录下。
–program-prefix=PREFIX
指定将被加到所安装程序的名字上的前缀。例如,使用’–program-prefix=g’来configure一个名为’tar’的程序将会使安装的程序被命名为’gtar’。当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in’文件使用时才会工作。
–program-suffix=SUFFIX
指定将被加到所安装程序的名字上的后缀。
–program-transform-name=PROGRAM
这里的PROGRAM是一个sed脚本。当一个程序被安装时,他的名字将经过`sed -e PROGRAM’来产生安装的名字,
–build=BUILD
指定软件包安装的系统平台。如果没有指定,默认值将是’–host’选项的值。
–host=HOST
指定软件运行的系统平台。如果没有指定。将会运行`config.guess’来检测。
–target=GARGET
指定软件面向(target to)的系统平台。这主要在程序语言工具如编译器和汇编器上下文中起作用。如果没有指定,默认将使用’–host’选项的值。
–disable-FEATURE
一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置。如果默认是提供这些特性,可以使用’–disable-FEATURE’来禁用它,这里’FEATURE’是特性的名字,例如:
$ ./configure –disable-gui
-enable-FEATURE[=ARG]
相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用’–enable-FEATURE’来起用它。这里’FEATURE’是特性的名字。一个特性可能会接受一个可选的参数。例如:
$ ./configure –enable-buffers=128
`–enable-FEATURE=no’与上面提到的’–disable-FEATURE’是同义的。
–with-PACKAGE[=ARG]
在自由软件社区里,有使用已有软件包和库的优秀传统。当用’configure’来配置一个源码树时,可以提供其他已经安装的软件包的信息。例如,倚赖于Tcl和Tk的BLT器件工具包。要配置BLT,可能需要给’configure’提供一些关于我们把Tcl和Tk装的何处的信息:
$ ./configure –with-tcl=/usr/local –with-tk=/usr/local
‘–with-PACKAGE=no’与下面将提到的’–without-PACKAGE’是同义的。
–without-PACKAGE
有时候你可能不想让你的软件包与系统已有的软件包交互。例如,你可能不想让你的新编译器使用GNU ld。通过使用这个选项可以做到这一点:
$ ./configure –without-gnu-ld
–x-includes=DIR
这个选项是’–with-PACKAGE’选项的一个特例。在Autoconf最初被开发出来时,流行使用’configure’来作为Imake的一个变通方法来制作运行于X的软件。’–x-includes’选项提供了向’configure’脚本指明包含X11头文件的目录的方法。
–x-libraries=DIR
类似的,’–x-libraries’选项提供了向’configure’脚本指明包含X11库的目录的方法。
在源码树中运行’configure’是不必要的同时也是不好的。一个由’configure’产生的良好的’Makefile’可以构筑源码属于另一棵树的软件包。在一个独立于源码的树中构筑派生的文件的好处是很明显的:派生的文件,如目标文件,会凌乱的散布于源码树。这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难。建议使用三棵树:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree)。这里有一个很接近的例子,是使用这种方法来构筑GNU malloc包:
$ gtar zxf mmalloc-1.0.tar.gz
$ mkdir build && cd build
$ ../mmalloc-1.0/configure
creating cache ./config.cache
checking for gcc… gcc
checking whether the C compiler (gcc ) works… yes
checking whether the C compiler (gcc ) is a cross-compiler… no
checking whether we are using GNU C… yes
checking whether gcc accepts -g… yes
checking for a BSD compatible install… /usr/bin/install -c
checking host system type… i586-pc-linux-gnu
checking build system type… i586-pc-linux-gnu
checking for ar… ar
checking for ranlib… ranlib
checking how to run the C preprocessor… gcc -E
checking for unistd.h… yes
checking for getpagesize… yes
checking for working mmap… yes
checking for limits.h… yes
checking for stddef.h… yes
updating cache ../config.cache
creating ./config.status
这样这棵构筑树就被配置了,下面可以继续构筑和安装这个包到默认的位置’/usr/local’:
问题如题,解决方法:
# 假设要解压的分卷文件是file.zip file.z01, file.z03 file.z04,(其他情况可类推)
cat file.z01, file.z03 file.z04 file.zip >hana.zip
unziphana.zip
将分卷文件合成一个完整的压缩文件hana.zip,然后在使用unzip解压file.zip即可,
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
以下是代码片段:
代码如下复制代码[yayug@yayu ~]$ df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda13.9G300M3.4G8% /
/dev/sda7100G188M95G1% /data0
/dev/sdb1133G80G47G64% /data1
/dev/sda67.8G218M7.2G3% /var
/dev/sda57.8G166M7.2G3% /tmp
/dev/sda39.7G2.5G6.8G27% /usr
tmpfs2.0G02.0G0% /dev/shm
Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:
代码如下复制代码df -hl
显示格式为:
文件系统容量 已用 可用 已用% 挂载点
代码如下复制代码FilesystemSize Used Avail Use% Mounted on
/dev/hda245G19G24G 44% /
/dev/hda1494M19M 450M4% /boot
/dev/hda64.9G 2.2G 2.5G 47% /home
/dev/hda59.7G 2.9G 6.4G 31% /opt
none1009M0 1009M0% /dev/shm
/dev/hda39.7G 7.2G 2.1G 78% /usr/local
/dev/hdb275G75G0 100% /
/dev/hdb275G75G0 100% /
以上面的输出为例,表示的意思为:
HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/),
下面是相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
更多功能可以输入一下命令查看:
df --help
du --help
du:查询文件或文件夹的磁盘使用空间
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
以下是代码片段:
代码如下复制代码
[root@bsso yayu]# du -h --max-depth=1 work/testing
27Mwork/testing/logs
35Mwork/testing
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
8.0Kwork/testing/func.php
27Mwork/testing/logs
8.1Mwork/testing/nohup.out
8.0Kwork/testing/testing_c.php
12Kwork/testing/testing_func_reg.php
8.0Kwork/testing/testing_get.php
8.0Kwork/testing/testing_g.php
8.0Kwork/testing/var.php
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
27Mwork/testing/logs/
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
24Kwork/testing/logs/errdate.log_show.log
8.0Kwork/testing/logs/pertime_show.log
文件及目录操作:
进入某目录:cd /目录名
返回上级目录:cd ..
返回上上级目录:cd ../..
删除文件: rm 文件名
删除目录:rmdir 目录名
移动或重命名文件:mv 旧路径 新路径
复制文件:cp 源文件路径 复制到的新文件路径
查找文件:find 文件名
查看目录内文件:ls 目录名
更改site文件夹目录所有者
chown -R www site
文件解压操作
tar.gz压缩与解压
解压filename.tar.gz
tar zxvf filename.tar.gz
解压filename.tar.gz到site目录
tar zxvf filename.tar.gz site
压缩site目录为filename.tar.gz
tar -zcvf filename.tar.gz site
压缩多个目录(site1 site2)为filename.tar.gz
tar -zcvf filename.tar.gz site site1 site2
zip压缩与解压
解压filename.zip
unzip filename.zip
解压filename.zip到site目录
unzip filename.zip site
删除操作
创建权限为755的demo文件夹
mkdir 755 demo
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
Llinux没有回收站,使用rm -rf的时候一定要格外小心
删除/home/site/文件夹(该目录以及其下所有文件、文件夹)
rm -rf /home/site/
删除filename.tar.gz文件
rm -f filename.tar.gz
这里介绍Linux下统计目录/文件夹大小的命令:du
如果想查看当前目录下,各个子目录的大小:
du -sh ./*
得到如下回显:
root@vm:/var# du -sh ./*
424K ./backups
8.2M ./cache
50M ./lib
4.0K ./local
8.0K ./lock
14M ./log
4.0K ./mail
4.0K ./opt
96K ./run
60K ./spool
4.0K ./tmp
8.0K ./www
上述结果表明lib目录占用了50M的磁盘空间,其次是log目录,占用了14M空间;
如果磁盘有多个分区,想查看每个分区的使用情况,则使用df命令:
df -hl
得到如下显示:
/dev/sda1 16G 662M 15G 5% /
tmpfs 252M 0 252M 0% /lib/init/rw
udev 247M 124K 247M 1% /dev
tmpfs 252M 0 252M 0% /dev/shm
说明sda1磁盘一共15G,使用了662M,只用了5%
再附一些函数
文件和目录操作的基本
命令有:cat、chgrp、xgnod、c
hown、clear、cmp、cp、cut、
diff、 du、emacs、 f
mkdir、 mikdir、 more、
grep、 file、 fmc、 grep、 h
ead、 ln、 less、 locate、 ls、
mv、 pico、 pwd、 rm
、 whatis、 whereis
、 sort、 stat、 strings、 t
free 命令是什么
free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。
如何运行 free
想要运行,只需在控制台输入free 即可。不带选项运行会显示一个以KB为单位的默认输出。
$ free
从上面的截图我们看到:
内存 (以KB计)
■Total(全部) : 1026740
■Used(已用) : 843396
■Free(可用) : 183344
■Shared(共享) : 0
■Buffers(块设备缓存区) : 52704
■Cached(文件缓存) : 376384
buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached是用来给文件做缓冲。
那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件
Swap (以KB计)
■Total(全部) : 1045500
■Used(已用) : 3376
■Free(可用) : 1042124
当你看见 buffer/cache 的空闲空间低或者 swap 的空闲空间低,说明内存需要升级了。这意味这内存利用率很高。请注意 shared(共享)内存列应该被忽略 ,因为它已经被废弃了,
以其它单元显示内存信息
如我们先前提到的,默认 free 会以 KB 为单位显示信息。free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位。要显示我们想要的单位,只要选择一个并在 free 后面跟上。下面一个是以 MB 为单位的输出样例。
$ free -m
这个技巧同样适用于-b, -k, -g 以及 –tera 选项。
以适于人类可读方式显示内存信息
free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。
$ free -h
如我们一起看到的,在1,0数字后这里是G(GB)字母。当数字并没有达到GB时,free足够聪明来知道并在每个数字后面跟上合适的单位。后面的M - 数字929告诉我们它有929MB(译注: 原文为929 number tell us its 969 Megabytes,这里应该为输入错误)。
间隔显示 free
作为一个状态检查工具,最好的统计内存利用率的方法是使用延迟间隔。这么做的话,我们可以使用-s选项后面跟上我们想要间隔的N秒数。我们可以在后面合并几个选项来使输出满足我们的需求。假如我们想要每3秒统计一次内存利用率并且适于人类可读,那么就像这样做:
$ free -hs 3
显示高低内存利用率
如果我们想要知道高低内存统计,我们可以使用-l选项。下面是一个例子。
$ free -l
显示 Linux 全部内存
如果我们需要每列的总计信息,我们可以在 free 命令后面跟上 -t 选项。这会在字底部额外加入一行显示。
$ free -t
总结
在Linux系统中使用cp命令对文件夹或者目录进行复制操作时,有时候会出现cp:omitting directiory的错误提示。这是怎么回事呢,下面简单来解释一下,并给出解决方法。
问题图:cp:omitting directiory。 如: cp /TEST/test1 /TEST/test2.
这是因为test1目录下还有目录,不能直接进行拷贝,
我们先找下cp 的命令帮助,输入cp --h .
其中一个-r,能解决这个问题。
解决方法
1、在cp命令后,加一个选项 -r .
cp -r /TEST/test1 /TEST/test2.
2、这样就可以成功的解决了。
1.命令格 式;
tail[必要参数][选择参数][文件]
2.命令功能:
用 于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日 志文件。
3.命令参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉 之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
4. 使用实例:
实例1:显示文件末尾内容
命令:
tail -n 5 log.log
输出:
[root@localhost test]# tail -n 5 log2014.log
2014-09
2014-10
2014-11
2014- 12
==============================[root@localhost test]#
说 明:
显示文件最后5行内容
实例2:循环查看文件内容
命 令:
tail -f test.log
输出:
[root@localhost ~]# ping 192.168.120.204 > test.log &
[1] 11891 [root@localhost ~]# tail -f test.log
PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data.
64 bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms
64 bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms
64 bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms
64 bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms
64 bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms
64 bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms
64 bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms
64 bytes from 192.168.120.204: icmp_seq=10 ttl=64 time=0.033 ms
64 bytes from 192.168.120.204: icmp_seq=11 ttl=64 time=0.027 ms
[root@localhost ~]#
说明:
ping 192.168.120.204 > test.log & //在后台ping远程主机,
并输出文件到test.log;这种做法也 使用于一个以上的档案监视。用Ctrl+c来终止。
实例3:从第5行开始显 示文件
命令:
tail -n +5 log2014.log
输出:
[root@localhost test]# cat log2014.log
2014-01
2014- 02
2014-03
2014-04
2014-05
2014-06
2014 -07
2014-08
2014-09
2014-10
2014- 11
2014-12
==============================
[root@localhost test]# tail -n +5 log2014.log
2014- 05
2014-06
2014-07
2014-08
2014-09
2014 -10
2014-11
2014- 12
让命令“说话”
几乎每个Linux命令都有很多选项,允许使用者根据需要灵活地定制。但这给初学者带来诸多不便,一是学起来麻烦,二是容易遗忘,需要时不得不重新再来。
那么有没有办法让命令自己“说话”呢?通过Shell脚本语言可以给命令加上友好的“面孔”。示例如下:
::::::::::::::
cname.sh
::::::::::::::
echo “Please input file name:”
read old
echo “Please input new name: ”
read new
mv $old $new
上面代码中,mv的命令格式为:
mv 原名字 新名字
echo命令格式为:
echo 字符串
read从标准输入中读入一个字符串,并存入后边的变量中,其命令格式为:
read 变量名
程序执行时显示帮助信息,提示输入相应的参数,最后通过简单的变量替换,完成改名任务这个程序。虽然只有5行,却改变了命令的行为方式,大大地增强了mv的易用性。在实际应用中,读者可根据需要替换这个小程序的命令,
处理多个文件
在前面的基础上,如果想给一批文件改名的话,那么下面这个例子就更有实用价值了。
::::::::::::::
mvs.sh
::::::::::::::
for s in $*; do
echo “File: $s”
echo “Please input new name: ”
read t
mv $s $t
if [ $? -eq 0 ]; then
echo “OK!^o^”
else
echo “Error!”
fi
done
通过for循环,“命令序列”依次处理文件列表中的所有文件。$*代表所有命令行参数,这样文件列表就可以通过命令参数指定。后面的if语句测试命令的执行状态,0代表执行成功。简单部署1之后,键入“mvs .jpg”就可以轻松地批量给文件改名了。
部署方案
程序编制完成,需要仔细部署,以使安装和使用方便。
◆在用户主目录下新建bin目录(如果已建立就跳过):
mkdir ~/bin
◆把~/bin添加到PATH变量,在用户主目录下的.bashrc文件中添加下面几行:
PATH=~/bin:$PATH
export PATH
◆把测试好的程序移至bin目录,更改成简单易记的名字,并设置文件属性:
cp mvs.sh ~/bin/mvs
chmod 755 ~/bin/mvs
以后,就可以直接使用mvs给一批文件改名字了。
mvs *.jpg
【linux系统命令总结】推荐阅读:
linux命令总结12-22
linux常用命令总结01-29
linux基础命令 head命令02-15
网络通信命令详解Windows系统02-21
Linux 中 RPM 命令参数使用详解Linux12-06
菜单命令总结11-04
h3c配置命令总结07-11
电脑运行命令10-03
命令公文范文11-04
部队任职命令01-17