Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1426386
  • 博文数量: 842
  • 博客积分: 12411
  • 博客等级: 上将
  • 技术积分: 5772
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 14:43
文章分类

全部博文(842)

文章存档

2013年(157)

2012年(685)

分类: LINUX

2012-05-16 16:26:10

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}

不允许对位域使用引用。不允许创建引用数组。类型 void &是不允许的。

C++c相比增加的类型有: 布尔类型、类类型

 

C语言中的显示转换类型为:

(类型名)表达式

(类型名)(表达式)

C++中还有另一种方法,便是:

类型名(表达式)

 

指针p ± 整数n  Þ  p地址 ± n * sizeof ( *p )

 

面向对象的最重要的概念是:数据封装、继承、多态。

 

cin输入时系统一直读取字符,直到遇空格回车符(‘\n’)”为止。例如:输入数据     hello worldC数组中内容为hello

 

构造字符串时别忘记在末尾应加'\0'

i=0;

while ((ch=getchar(  ))!='\n')

    str[i++]=ch;

cout<< str;

由于构造的字符串没有加结束标志,当用cout函数输出str时,从str的起始地址开始一个个的输出,输出完读入的字符后,没有遇到'\0',继续输出,这时的内容已不再是字符串中的字符。因此, 在自己构造一个字符串时,一定不要忘记在末尾加上'\0'

i=0;

while ((ch=getchar(  ))!='\0')

    str[i++]=ch;

str[i]='\0';

cout<

 

 

 

 

 

pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。

#pgrep 参数选项 程序名

 

常用参数

-l 列出程序名和进程ID

[root@sz1 init.d]# pgrep -l bash

1839 bash

[root@sz1 init.d]# pgrep bash

1839

 

 

终止一个进程或终止一个正在运行的程序,一般是通过 kill killallpkillxkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

 

ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的;
top
参数:

-b 以批量模式运行,但不能接受命令行输入;
-c
显示命令行,而不仅仅是命令名;
-d N
显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
-i
禁止显示空闲进程或僵尸进程;
-n NUM
显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
-p PID
仅监视指定进程的IDPID是一个数值;
-q
不经任何延时就刷新;
-s
安全模式运行,禁用一些效互指令;
-S
累积模式,输出每个进程的总的CPU时间,包括已死的子进程;

Top运行过程中的交互式命令:

M 按内存占用大小排序,由大到小;
N
以进程ID大小排序,由大到小;
P
CPU占用情况排序,由大到小
S
切换到累积时间模式;
T
按时间/累积时间对任务排序;
W
把当前的配置写到~/.toprc中;

 

计算表达式有三种:

1$(())

2$[]

3let $var=

 

我们修改aa.sh如下:

echo $[$v1<$v2] 计算逻辑表达式(1表示true,0表示false)

 

echo $[($v1<$v2)&&($v1>$v2)] 计算逻辑表达式

 

v3=2

let v3*=$v1+$v2

echo $v3

 

 

Test命令的用法

1判断表达式

if test  表达式为真

if test ! 表达式为假

test 表达式1 –a 表达式2                  两个表达式都为真

test 表达式1 –o 表达式2                  两个表达式有一个为真

2)判断字符串

test –n 字符串                                 字符串的长度非零

test –z 字符串                                 字符串的长度为零

test 字符串1==字符串2                  字符串相等

test 字符串1!=字符串2                  字符串不等

3)判断整数

test 整数1 –eq 整数2                        整数相等

test 整数1 –ge 整数2                        整数1大于等于整数2

test 整数1 –gt 整数2                        整数1大于整数2

test 整数1 –le 整数2                         整数1小于等于整数2

test 整数1 –lt 整数2                         整数1小于整数2

test 整数1 –ne 整数2                        整数1不等于整数2

4)判断文件

test  File1 –ef  File2                            两个文件具有同样的设备号和i结点号

test  File1 –nt  File2                            文件1比文件2

test  File1 –ot  File2                            文件1比文件2

test –b File                                          文件存在并且是块设备文件

test –c File                                          文件存在并且是字符设备文件

test –d File                                          文件存在并且是目录

test –e File                                          文件存在

test –f File                                           文件存在并且是正规文件

test –g File                                           文件存在并且是设置了组ID

test –G File                                           文件存在并且属于有效组ID

test –h File                                           文件存在并且是一个符号链接(同-L

test –k File                                           文件存在并且设置了sticky

test –b File                                           文件存在并且是块设备文件

test –L File                                          文件存在并且是一个符号链接(同-h

test –o File                                          文件存在并且属于有效用户ID

test –p File                                         文件存在并且是一个命名管道

test –r File                                           文件存在并且可读

test –s File                                           文件存在并且是一个套接字

test –t File                                        文件描述符是在一个终端打开的

test –u File                                        文件存在并且设置了它的set-user-id

test –w File                                          文件存在并且可写

test –x File                                           文件存在并且可执行

 

 

for x in /var/log/*

do

   echo `basename $x` is a file living in /var/log

done

 

myvar=0

until [ $myvar -eq 10 ]

do

  echo $myvar

  myvar=$(($myvar+1))

done

 

 

myvar=0

while [ $myvar -ne 10 ]

do

  echo $myvar

  myvar=$(($myvar+1))

done

 

 

shell函数

定义函数有两种格式,分别为:
                
函数名()
                { 
                     
命令
                     ... ... 
                }
                function
函数名()
                { 
                     ... ... 
                }

function hello()

{

   echo "Hello,$1 today is `date`“

   return 11

}

echo "now going to the function hello"

hello chinaitlab   #调用函数

echo "back from the function“

Echo $?

 

l  什么是shell

¡  命令解释程序:是用户与操作系统之间的接口

¡  高级程序设计语言:它有变量,关键字,有各种控制语句,如ifcasewhilefor等语句,支持函数模块,有自己的语法结构

 

l  顺序执行:以分号隔开的各条命令从左到右依次执行

       pwd ;  who;  cd  /usr/bin

 

l  逻辑与:命令1 && 命令2

       先执行命令1,如果执行成功,才执行命令2;否则,若命令1执行不成功,则不执行命令2

 

l  逻辑或:命令1 || 命令2

       先执行命令1,如果执行不成功,则执行命令2;否则,若命令1执行成功,则不执行命令2

 

l  用花括号括起来的成组命令只是在本shell内执行命令表,不产生新的进程;

l  而用圆括号括起来的成组命令是在新的子shell内执行,要建立新的子进程。

 

l  命令替换:`命令表`

l   $(命令表)   dir=$(pwd) 或者dir=`pwd`

l  可以用declare命令显式声明一个数组,一般形式是:

l               declare  -a  数组名

l  读取数组元素值的一般格式是:

l               ${数组名[下标]}

l  定义一个数组并为其赋初值的一般形式是:

l              数组名=(1  2    n)

l       其中,各个值之间以空格分开。

l  若没有给出数组元素的下标,则数组名表示下标为0的数组元素 ${name[n]}表示数组变量name中第n个元素的值

l  表达式${#name[i]},该表达式的值是数组namei个元素值的长度(字符个数)

l  表达式${#nane[*]}${#name[@]},它们的值都是数组name中已经设置的元素的个数

 

 

 

l  bash的环境文件包括.bash_profile文件、.bashrc文件、.bash_logout文件等。

l  .bash_profile中,设置了环境变量和文件掩码(umask

l  名为.bashrc的脚本,每次启动bash时便会执行它。它只含有针对bash的命令,可以用来设置别名。.bashrc.bash_profile之后执行

l  .bash_logout,它仅在退出注册的时候运行

 

函数模板强调的是模板。它不是一个具体实在的函数。它具体化之后就是模板函数。所以,模板函数是对函数模板的具体化。而模板函数的抽象就是函数模板。同样,类模板强调的是模板,它不是一个实实在在的类。类模板的实例化就是模板类。类模板是对模板类的抽象。

 

 

 

 

 

 

用法:cut -cnum1-num2 filename

说明:显示每行从开头算起 num1 num2 的文字。

范例:

        shell>> cat example
        test2
        this is test1
    shell>> cut -c0-6 example   #
显示开头算起前 6 个字元
        test2
        this i

cut -d: -f 1 /etc/passwd > /tmp/users

-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段

 

locate 是用来通过文件名搜索文件的工具,它的用法也比较简单。locate 的应用,首先要通过updatedb建立索引数据库,然后才能应用;如果您新安装了软件或者存放了新的文件,也要先运行updatedb命令,以生成最新索引库。

用法:

 

locate 文件名

 

要寻找 profile文件都位于哪个位置

[root@localhost ~]# locate profile

可以再搜索之前先运行updatedb,更新索引数据库,保证数据准确

[root@localhost ~]# updatedb

 

不知道fdisk工具放在哪里,就可以用whereis fdisk 来查找;

[root@localhost ~]# whereis fdisk

fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz

 

如果寻找grub在哪里,应该用如下命令,说明grub位于/sbin目录,

他的帮助文件是grub.8.gz ,也就是man grub

[root@localhost ~]# whereis grub

grub: /sbin/grub /etc/grub.conf /usr/share/grub

 /usr/share/man/man8/grub.8.gz

 

 whereis 命令找到指定文件的源、二进制文件和手册等各部分

 

阅读(446) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~