Linux 学习笔记 六

关于查询命令使用方法的两总命令格式

man passwd

man -5 passwd

man passwd :/usr/bin/passwd 这个执行档的使用方法介绍

man -5 passwd:上参数 5 的时候,就自动的变成去查询 /etc/passwd 这个档案的设定功能了!

 

 

背景执行功能,也就是说后台运行功能 eg:cp  file1  file2  &

fg 叫回来屏幕上执行 eg:fg

[root @test /root ]# fg %number

[root @test /root ]# bg %number

参数说明:

%      :后面接数字,表示 jobs 的工作代号

number :就是工作代号

bg 是将『背景当中的程序由 stopped 变成 Running

 

 

[root @test /root ]# kill -sigal %number

参数说明:

%number :背景工作的代号,可使用 jobs 查询

signal

-1  :重新读取一次参数设定档(类似 reload )

-2  :使用者中断该工作,类似 [Ctrl]+c 来中断一个工作

-9  :立刻杀掉一个工作,不论该工作是否为僵尸程序

-15 :停止一个工作(这是默认值)

uptime 查看系统主机已经开机多久时间,还就是在过去 1 5 15分钟的负荷是多少

 

 

date -s 用于设定linux 主机时间的参数,

—R用于查看系统的时间

%a :星期几

%b:月份名称

%d:日期

%y:年份

eg:

修改日期  date -s 21/07/2013

 

 

关于编译.c文件的时候,当我们写了两个函数的时候,我们就得编译生成.o文件,然后再利用gcc 链接两个.o文件生成binary file 文件

还有当我们要使用系统的函数库时,我们直接编译是通不过的,这时我们需要动态的链接系统自带的库,

#include <stdio.h>

int main(void)

{

float value;

value = sin ( 3.14 / 2 );

printf(“%f\n”,value);

}

eg:

[guest@test guest]# gcc sin.c -lm -L/lib -L/usr/lib

# 特别注意,那个 -lm 可以拆开成两部份来看,

# -l 是『加入某个函式库(library)』的意思,而

# m 则是 libm.so 这个函式库,其中, lib 与附档名(.a 或 .so)不需要写

# 所以 -lm 表示使用 libm.so (或 libm.a) 这个函式库的意思~

# 至于那个 -L 后面接的路径呢?这表示:

#『我要的函式库 libm.so 请到 /lib 或 /usr/lib 里面搜寻!』

 

-I/path 后面接的路径( Path )就是设定要去搜寻相关的 include 档案的目录啦!

 

[root@test root]# md5sum [-bct] filename

[root@test root]# md5sum [–status|–warn] –check filename

参数说明:

-b :使用 binary 的读档方式,预设为 Windows/DOS 档案型态的读取方式;

-c :检验 md5sum 档案指纹;

-t :以文字型态来读取 md5sum 的档案指纹。

 

一般md5sum校验文件的正确性

 

 

RPM 全名是『 RedHat Package Manager 』RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的 Linux 主机的一套管理程序。

 

 

rpm 安装

[root@test root]# rpm -ivh rp-pppoe-3.1-5.i386.rpm

Preparing…     ####################################### [100%]

1:rp-pppoe    ####################################### [100%]

# -i :install 的意思

# -v :察看更细部的安装信息画面

# -h :以安装信息列显示安装进度,例如上面的 # 字符号!

 

 

rpm反安装与重建数据库

[root@test root]# rpm -e logrotate  <==解安装 logrotate 套件

[root@test root]# rpm –rebuilddb   <==重建数据库

 

 

关于系统服务

 

如果你不想让 140.116.44.202 这个地址及 140.116.32.0/255.255.255.0 这个 C class 的网域进入你的主机的话,那么可以这样在 /etc/hosts.deny 里面设定:

[root @test root]# vi /etc/hosts.deny

telnetd:  140.116.44.202 : deny

telnetd:  140.116.32.0/255.255.255.0 : deny

 

如果想让某个IP 进入telnet进入你的主机,则设定/etc/hosts.allow

 

Linux 学习笔记 五

在douban.fm中有一点就是你永远也不会有可能上一曲,这也就是像生活中的我们一样,过了就是过了,你永远也是没有机会后悔后退的,过去了就只能下一曲,继续往前走

那么如果我是两个相关的指令,第一个 command1 如果执行结果有错误,第二个就不被执行,可以这样做吗?当然可以

command1 && command2

command1 || command2

[test @test test]# ls -al 1> list.txt 2> list.err

将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err

[test @test test]# ls -al 1> list.txt 2>&1

将显示的数据,不论正确或错误均输出到 list.txt 当中!

/dev/null 代表空NULL

eg  find / -name testing 1>list_right 2>list_error

last  可以查看这个月的登录数据

tee 可以在查看了数据并把数据送出给下一个管道的时候还显示在屏幕上

 

tr [-ds] SET1

-d:删除SET1这个字符串

-s:   取代掉重复的字符

 

EG: cat list_right|tr -d testing

 

split

-l 以行数来分

eg:split -l 5 /etc/passwd test

会被分成五个

 

正规表示式 ( Regular Expression, 底下简称 RE )

 

grep [-acinv] ‘搜寻字符串’ filename

参数说明:

-a :将 binary 档案以 text 档案的方式搜寻数据

-c :计算找到 ‘搜寻字符串’ 的次数

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!

 

宣告变量内容

[test @test test]# declare [-afirx]

参数说明:

-a  :定义为数组 array

-f  :定义为函数 function

-i  :定义为整数 integer

-r  :定义为『只读』

-x  :定义为透过环境输出变量

eg:

[test @test test]# declare -i a=3

[test @test test]# declare -i b=5

[test @test test]# declare -i c=$a*$b

[test @test test]# echo $c

15

 

myscript opt1 opt2 opt3

 

$0 myscript 也就是代表script这个档案

$1 opt1 代表是第一个附加参数,

$2 opt2  代表是第二个附加参数

也就是说script可以带参数运行

eg:

./sh pa1 pa2

则在sh的script里面取$1则是 pa1 $2则是 pa2 $0则是script本身

 

 

for (( 条件一; 条件二; 条件三 ))

for variable in variable1 variable2 …..

while [ condition1 ] && { || } [ condition2 ] …

until [ condition1 ] && { || } [ condition2 ] …

for 是已经知道有多少个 run 了,即是已经知道要跑几次了,至于 until 与 while 则分别是:

『until:直到条件相同的时候才离开程序』;

『while:当条件相同的时候,就继续做!』

 

记住在使用if 时 条件里面的都要使用空格间隔,不然条件将是无效的。

可以使用以下测试script测试脚本的执行情况

[test @test test]# sh [-nvx] scripts

-n :不要执行 scripts ,查询 scripts 内的语法,若有错误则予以列出!

-v :在执行 scripts 之前,先将 scripts 的内容显示在屏幕上;

-x :将有使用到的 scripts 内容显示在屏幕上,与 -v 稍微不同!

 

at : 这个工作仅执行一次就从 Linux 系统中的排程中取消;

crontab : 这个工作将持续例行性的作下去!

 

只要你编辑完 /etc/crontab 这个档案,并且将他储存之后,呵呵!那么 crontab 的设定就自动的会来执行了!