在写这篇随笔时,翻看了一下上一篇随笔的写作日期,发现已经是4月8号了,时间已经过了11天了!!!过了这么久没有更新Linux学习系列的随笔了,是因为我又松懈了Linux的学习了吗?不是的!!!是因为最近这段日子真的是发生了很多事。。。。
造成许久没有更新Linux学习系列随笔的原因:
①4.15-5.3这段时间报名参加了广交会的实习,一共分为三期,基本每期都是工作4天,然后休息4天。。。所以基本只能在放假那几天挤出时间来学习了
②电脑用的太久,里面囤下了太多的灰尘,导致电脑散热非常差,基本上每天开机后不怎么用都会在1小时左右自动关机,不过今天已经将笔记本整个清洁了一次,电脑也终于正常工作了
③最近腾讯开始招聘2013实习生岗位,自己也投递了简历,参加了笔试以及今天上午进行的一面。。。总结一点,自己还真的差很多啊!!!
综合上述原因,使得自己这段时间没有系统的学习Linux,所以Linux学习系列的随笔也就没有更新了,不过现在已经空下来了时间,趁着广交会第一期放假这几天,自己得抓紧时间多学一下,不能松懈了Linux的学习!!!!
纵观之前的14篇Linux学习系列随笔,基本上是学习了Linux的一些常用命令,以及如何在Linux下进行j2ee环境搭建等知识,应该说并没有深入到Linux的学习当中,也没有找一本Linux的书籍来细看,所以从这篇随笔开始,自己准备好好地跟着Linux的书籍或者其他资料来深入的了解、学习Linux。为此,特地从图书馆借来了一本书,这本书应该也是Linux学习的入门书籍了--《鸟哥的Linux私房菜--基础学习篇》,现在就先从基础学习篇开始学习啦,后续还会继续学习服务器篇。。。
所以从本随笔开始,基本上就是通过细读《鸟哥的Linux私房菜--基础学习篇》这本书,来记录下自己学习的一些点点滴滴以及一些心得,如有错误或者好的学习建议,还希望大家能够指出来。。。
这篇随笔主要记录下Linux下的bc、man、shutdown等一些命令的用法及含义
一、bc (Linux系统下的一个简单计算器)
在windows系统里,里面自带了一个计算器的工具,我们可以用其进行各种计算,在Linux系统下也有一个简单的计算器功能,我们通过 bc 命令就可以用其来进行一些简单的计算。
[root@xiaoluo ~]# bcbc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
-->>> 这这里输入我们要进行的一些运算
此时我们就已经进入到了bc这个简单计算器的工作环境中了,在这个简单的计算器下我们可以进行如下的一些简单运算:
+ 加法、- 减法、* 乘法、/ 除法、^ 指数、% 余数
例如:
12+15+12 39 12*5 60 10^2 100 10%3 1 10/3 3 -->> 为什么这里只是显示3呢?那是因为bc默认输出的是整数,如果我们要输出小数,还需要执行一个scale命令,例如scale=3,则表示输出三位小数。
scale=310/3 3.333 quit -> 退出当前的bc计算器命令
这个简单的计算器功能就是这样,通过bc这个命令,我们就可以在Linux系统下进行一些简单的数据运算了。
二、man命令
Linux系统的命令非常非常的多,我们可以在bash下连续按两次[Tab]键,就可以查看当前Linux中所拥有的命令条数,如:
[root@xiaoluo ~]# Display all 4221 possibilities? (y or n)
我们看到,在我安装的CentOS6.4系统下,一共存在了4221条命令,所以这么多的命令我们都需要记住吗?当然不能这么傻了,就像java的API一样,那么多的类和方法,咱们不可能去每个都记住吧,所以我们如果需要使用某个命令时只需要google一下就行了。至于当我们拿到一个命令后,要如何使用它,这就需要问"男人"(man)了。我们在Linux里面流行了这样一句话,如果不清楚一个命令的具体用法,就要找男人(man)。当然这个man是manual(操作说明)的简写,比如说我们要查看date这个命令的用法,就可以输入 man date 这个命令来进行查看:
[root@xiaoluo ~]# ) User Commands DATE( - print or set the system and [OPTION]... [+ [-u|--utc|-- the given FORMAT, or set the system -d, --=-f, --=-- once -r, --reference= modification -R, --rfc- and RFC format. Example: Mon, --=STRING is a mostly format human readable or . A may contain items indicating cal-, of day, zone, day of week, relative , rela-, and numbers. An empty format is the -/etc/ bugs to bug-<http: General help using GNU software: <http: Report translation bugs to <http: Free Software Foundation, Inc. License GPLv3+ or later <http: This is software: you are and coreutils June DATE(
这样的话我们就马上可以知道date命令的具体用法了,而且也知道了date这个命令可以添加的一些参数,以及这些参数的信息,对于这个界面,我们将其称作是man page(帮助页)。我们可以看到在输入 man date这个命令后第一行出现了 "DATE(1)",这里的DATE就是命令的名称,(1)在这里表示的是"一般用户可以使用的命令"。对于这个数字,在某些场合对我们还是很有帮助的,Linux的常见数字的含义如下:
常见数字的含义
代号 | 代表内容 |
1 | 使用者在shell环境中可以操作的命令或可运行文件 |
2 | 系统核心可呼叫的函数与工具等 |
3 | 一些常用的函数(function)与函式库(library),大部分为C的函式库(libc) |
4 | 装置文件的说明,通常在/dev下的文件 |
5 | 配置文件或者是某些文件的格式 |
6 | 游戏(games) |
7 | 惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明 |
8 | 系统管理员可用的管理命令 |
9 | 跟kernel有关的文件 |
在通过输入 man date 命令后,我们发现其输出信息有很多的字段,那么组成man page 的这些字段的含义又是代表什么意思呢?
man page 的组成部分
代号 | 内容说明 |
NAME | 简短的命令、数据名称说明 |
SYNOPSIS | 简短的命令下达语法(syntax)简介 |
DESCRIPTION | 较为完整的说明,这部分最好仔细看看! |
OPTIONS | 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明 |
COMMANDS | 当这个程序(软件)在运行的时候,可以在此程序(软件)中下达的命令 |
FILES | 这个程序或数据所使用或参考或连结到的某些文件 |
SEE ALSO | 可以参考的,跟这个命令或数据有相关的其他说明! |
EXAMPLE | 一些可以参考的范例 |
BUGS | 是否有相关的错误! |
我们通常需要关注的就是NAME、DESCRIPTION这两个字段,NAME就是代表了该命令的名称,DESCRIPTION就是该命令的一些常见参数及其所代表的意思。我们在man page这个页面进行命令的查询时,通常也有一些常用的按键可以帮助我们:
man page 常用的按键
按键 | 进行工作 |
空格键 | 向下翻一页 |
[Page Down] | 向下翻一页 |
[Page Up] | 向上翻一页 |
[Home] | 去到第一页 |
[End] | 去到最后一页 |
/string | 向『下』搜寻 string 这个字符串,如果要搜寻 date 的话,就输入 /date |
?string | 向『上』搜寻 string 这个字符串 |
n, N | 利 用 / 或 ? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) ,可以利用 N 来进行『反向』搜寻。举例来说,我如果以 /date 搜寻 date 字符串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?date 向上查询 date 字符串, 那我可以用 n 继续『向上』查询,用 N 反向查询。 |
q | 结束这次的 man page |
注意:这些常用的按键只能是在man page 这个页面下才能使用。
三、shutdown命令
在之前的随笔中就有记录下Linux系统的关机命令可以是 shutdown -h now ,重启命令可以是 shutdown -r now 或者 reboot,而且关机命令、重启命令只能是root才有权力执行。那么shutdown这个命令的具体语法规则是什么呢?shutdown命令可以实现什么呢?没错,咱们不知道就问 man
[root@xiaoluo ~]# man shutdown shutdown(8) //8就表示该命令是管理员才能执行的命令 shutdown(8) NAME shutdown - bring the system down SYNOPSIS shutdown [OPTION]... TIME [MESSAGE] OPTIONS -r Requests that the system be rebooted after it has been brought down. -h Requests that the system be either halted or powered off after it has been brought down, with the choice as to which left up to the system. -H Requests that the system be halted after it has been brought down. -P Requests that the system be powered off after it has been brought down. -c Cancels a running shutdown. TIME is not specified with this option, the first argument is MESSAGE. -k Only send out the warning messages and disable logins, do not actually bring the system down.
shutdown命令的语法规则为:
[root@xiaoluo ~]# shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告信息出去! -r : 在将系统的服务停掉之后就重新启动(常用) -h : 将系统的服务停掉后,立即关机。 (常用) -n : 不经过 init 程序,直接以 shutdown 的功能来关机 -f : 关机并启动之后,强制略过 fsck 的磁盘检查 -F : 系统重新启动之后,强制进行 fsck 的磁盘检查 -c : 取消已经在进行的 shutdown 命令内容。 时间 : 这是一定要加入的参数!指定系统关机的时间!时间的范例底下会说明。 范例: [root@xiaoluo ~]# shutdown -h 10 'I will shutdown after 10 mins' # 告诉大家,这部机器会在十分钟后关机!并且会显示在目前登陆者的屏幕前方!
如果我们需要关机时,比如设定某个时间关机,就必须要加入时间参数,否则此时会自动跳到1级运行级别(就是单用户登陆情况)。
[root@xiaoluo ~]# shutdown -~]# shutdown -h ::~]# shutdown -h +~]# shutdown -~]# shutdown -r + ~]# shutdown -k now
shutdown命令有什么用呢?或者说shutdown命令可以做什么?
可以自由选择关机模式:是要关机、重新启动或进入单用户操作模式均可;
可以配置关机时间: 可以配置成现在立刻关机, 也可以配置某一个特定的时间才关机。
可以自定义关机信息:在关机之前,可以将自己配置的信息传送给在线 user 。
可以仅发出警告信息:有时有可能你要进行一些测试,而不想让其他的使用者干扰, 或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但却不是真的要关机啦!
可以选择是否要 fsck 检查文件系统 。
如果我们需要重启的话,就直接使用 reboot 命令或者 shutdown -r now 即可。
四、sync 命令
这个命令虽然简单,但是还是不得不记录一下。sync命令是将数据同步到磁盘上。
在Linux系统中,为了加快数据的读取速度,在默认的情况中, 某些已经加载内存中的数据将不会直接被写回硬盘,而是先缓存在内存当中,如此一来, 如果一个数据被你重复的改写,那么由于他尚未被写入硬盘中,因此可以直接由内存当中读取出来, 在速度上一定是快上相当多的!
不过,如此一来也造成些许的困扰,那就是万一你的系统因为某些特殊情况造成不正常关机 (例如停电或者是不小心踢到power)时,由于数据尚未被写入硬盘当中,哇!所以就会造成数据的升级不正常啦! 那要怎么办呢?这个时候就需要sync这个命令来进行数据的写入动作啦! 直接在文字接口下输入sync,那么在内存中尚未被升级的数据,就会被写入硬盘中!所以,这个命令在系统关机或重新启动之前, 很重要喔!最好多运行几次!该命令如下:
[root@xiaoluo ~]# sync
所以为了保险起见,我们在进行系统关机或者重启之前,最好先多运行几次sync命令,将内存中的数据同步到硬盘中:
[root@xiaoluo ~]# sync[root@xiaoluo ~]# sync[root@xiaoluo ~]# sync[root@xiaoluo ~]# shutdown -h now
本篇随笔主要记录了自己深入学习Linux的一些心得以及体会,后续学习中将会继续记录下自己的学习心得!!!