免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: compare2000
打印 上一主题 下一主题

Linux常用命令及基础知识介绍 [复制链接]

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
31 [报告]
发表于 2011-02-25 12:18 |只看该作者
3.6.3        kill
指令名称:        kill
使用权限:        所有使用者
使用方式:        kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
说    明:        kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
参    数:        -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑, 砍掉, 结束; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号
-l (signal) : 列出所有可用的信号名称
范    例:        将 pid 为 323 的行程砍掉 (kill) :
kill -9 323

将 pid 为 456 的行程重跑 (restart) :
kill -HUP 456

3.7        日期和时间
3.7.1        date
指令名称:        date
使用权限:        所有使用者
使用方式:        date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说    明:        date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
32 [报告]
发表于 2011-02-25 12:18 |只看该作者
参    数:        时间方面 :

% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区

日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
参数 :

-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
33 [报告]
发表于 2011-02-25 13:36 |只看该作者
范    例:        显示时间后跳行,再显示目前日期 :
date '+%T%n%D'

显示月份与日数 :
date '+%B %d'

显示日期与设定时间(12:34:56) :
date --date '12:34:56'

注意 :

当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
3.7.2        cal
指令名称:        cal
使用权限:        所有使用者
使用方式:        cal [-mjy] [month [year]]
说    明:        显示日历。若只有一个参数,则代表年份(1-9999),显示该年的年历。年份必须全部写出:``cal 89'' 将不会是显示 1989 年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。
1752 年 9 月第 3 日起改用西洋新历,因这时大部份的国家都采用新历,有 10 天被去除,所以该月份的月历有些不同。在此之前为西洋旧历。
参    数:        -m : 以星期一为每周的第一天方式显示。
-j : 以凯撒历显示,即以一月一日起的天数显示。
-y : 显示今年年历。
范    例:        cal : 显示本月的月历。
cal 2001 : 显示公元 2001 年年历。
cal 5 2001 : 显示公元 2001 年 5 月月历。
cal -m : 以星期一为每周的第一天方式,显示本月的月历。
cal -jy : 以一月一日起的天数显示今年的年历。
3.7.3        clock
指令名称:        clock
使用权限:        所有使用者
使用方式:        hwclock [function] [options...]
说    明:        查看和设置硬件时钟
参    数:        --hctosys表示Hardware Clock to SYStem clock
--systohc表示SYStem clock to Hardware Clock
范    例:        硬件时钟与系统时钟同步:
clock --hctosys
上面命令中,--

系统时钟和硬件时钟同步:
clock --systohc

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
34 [报告]
发表于 2011-02-25 13:37 |只看该作者
3.8        系统管理
3.8.1        rpm
指令名称:        rpm
使用权限:        所有使用者
使用方式:        rpm options file1.rpm ... fileN.rpm
说    明:        RPM是Redhat Package Manager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上
的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。
RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删
除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置
文件,这样用户就不用重新配置新的软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,
通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、
Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由
使用及传播RPM。
参    数:        RPM共有10种基本的模式:它们是安装、查询、验证、删除等。

安装模式: rpm –i [安装选项]  
查询模式: rpm –q [查询选项]
验证模式: rpm –V 或 –verify [验证选项]
删除模式: rpm –e  

使用RPM的一般选项:
一般选项可以用于所有的模式。
-v:显示信息
-h:用“#”显示完成的进度
--keep-temps:保留临时文件,临时文件通常位于/tmp/rpm-*,这个选项要用于debug。
--quiet:安静工作,只有当出现错误时才给出提示信息

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
35 [报告]
发表于 2011-02-25 13:38 |只看该作者
范    例:        安装一个rpm包
rpm -ivh <rpm package name>

升级一个包
rpm -Uvh <rpm package name>

移走一个RPM包
rpm -e <rpm package name>

查询一个包是否被安装
rpm -q <rpm package name>

得到被安装的包的信息
rpm -qi <rpm package name>

列出该包中有哪些文件
rpm -ql <rpm package name>

列出所有被安装的包
rpm -qa <rpm package name>

列出一个未被安装进系统的RPM包的文件中包含哪些文件
rpm -qilp <rpm package name>

3.8.2        shutdown
指令名称:        shutdown
使用权限:        系统管理者
使用方式:        shutdown [-t seconds] [-rkhncfF] time [message]
说    明:        关机命令
参    数:        -t seconds : 设定在几秒钟之后进行关机程序
-k : 并不会真的关机,只是将警告讯息传送给所有只用者
-r : 关机后重新开机
-h : 关机后停机
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c : 取消目前已经进行中的关机动作
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)
-F : 关机时,强迫进行 fsck 动作
time : 设定关机的时间
message : 传送给所有使用者的警告讯息
范    例:        立即关闭计算机
shutdown –h now

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
36 [报告]
发表于 2011-02-25 13:38 |只看该作者
3.8.3        reboot
指令名称:        reboot
使用权限:        系统管理者
使用方式:        reboot [-n] [-w] [-d] [-f] [-i]
说    明:        若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
参    数:        -n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
范    例:        reboot 重开机。
reboot -w 做个重开机的模拟(只有纪录并不会真的重开机)。

3.8.4        fdisk
指令名称:        fdisk
使用权限:        root
使用方式:        fdisk option
说    明:        观察硬盘之实体使用情形与分割硬盘用。
参    数:        m 显示所有命令列示。
p 显示硬盘分割情形。
a 设定硬盘启动区。
n 设定新的硬盘分割区。
e 硬盘为[延伸]分割区(extend)。
p 硬盘为[主要]分割区(primary)。
t 改变硬盘分割区属性。
d 删除硬盘分割区属性。
q 结束不存入硬盘分割区属性。
w 结束并写入硬盘分割区属性。
范    例:        在 console 上输入 fdisk -l /dev/hda1 ,观察硬盘之实体使用情形
在 console 上输入 fdisk /dev/hda,可进入分割硬盘模式

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
37 [报告]
发表于 2011-02-25 13:39 |只看该作者
3.8.5        mount
指令名称:        mount
使用权限:        root
使用方式:        mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
说    明:        将某个档案的内容解读成档案系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我们使用 umnount 将这个档案系统移除为止,这个命令之下的所有档案将暂时无法被调用。

这个命令可以被用来挂上任何的档案系统,你甚至可以用 -o loop 选项将某个一般的档案当成硬盘机分割挂上系统。这个功能对于 ramdisk,romdisk 或是 ISO 9660 的影像档之解读非常实用。
参    数:        -o ro :用只读模式挂上。
-o rw :用可读写模式挂上。
范    例:        将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt

将 /dev/hda1 用唯读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
38 [报告]
发表于 2011-02-25 13:39 |只看该作者
4        GNU C++编程
4.1        g++
指令名称:        g++
使用权限:        所有使用者
使用方式:        g++ [options] file... –o outflle
说    明:        编译,连接源文件后生成可执行文件
参    数:        -g 产生gdb调试时所需要的符号信息
-pg 产生gprof性能分析工具所需的性能采集点信息
-o 生成的目标程序名
范    例:        假设有一个程序,只有一个test.cpp文件,要编译连接该文件后,生成可执行文件demo,可以输入如下命令:
g++ test.cpp -o demo

假设有一个程序,只有一个test.cpp文件,要编译连接该文件后,生成可执行文件demo,并且产生gdb调试时所需要的符号信息,可以输入如下命令:
g++ -g test.cpp -o demo

假设有一个程序,只有一个test.cpp文件,要编译连接该文件后,生成可执行文件demo,并且产生gprof性能分析工具所需要的性能采集点信息,可以输入如下命令:
g++ -pg test.cpp -o demo

假设有一个程序,只有一个test.cpp文件,要编译连接该文件后,生成可执行文件demo,并且既产生gdb调试时所需要的符号信息,又产生gprof性能分析工具所需要的性能采集点信息,可以输入如下命令:
g++ -g -pg test.cpp -o demo

要想运行该可执行文件demo,使用如下命令:
./demo

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
39 [报告]
发表于 2011-02-25 13:40 |只看该作者
4.2        gdb
指令名称:        gdb
使用权限:        所有使用者
使用方式:        gdb <program>
program也就是你的执行文件,一般在当前目录下。

gdb <program> core
用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

gdb <program> <PID>
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。
说    明:        GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具。具体的使用方法请参考相应的手册。
参    数:        请参考相应的手册
范    例:        调试4.1节所编译的demo程序,使用如下命令:
gdb demo

假如demo程序在运行时,产生了致命的错误,比如内存访问违例等异常,并生成了内存转储文件,要想调试该内存转储文件,使用如下命令:
gdb demo core

假如demo程序是服务性质的程序,长驻内存,那么我们可以先使用如下命令查看demo程序的pid:
ps –ef | grep demo
得到该进程的pid后,使用如下命令,attach进该程序,进行调试:
gdb demo [pid]

或者这样使用,先直接输入
gdb
进入gdb调试环境后,输入
attach [pid]
进行调试

【注意】
在Linux下,缺省的设置是不产生内存转储文件,要想程序异常时产生内存转储文件,请使用如下命令:
ulimit -c unlimited
在Windows下要想产生内存转储文件,请先在Dos命令行使用输入命令:
drwtsn32 –i
然后在Dos命令下输入“drwtsn32”命令,在弹出的对话框中,勾选“Create Crash Dump File”,并设置内存转储文件所存放的路径。

还有一点就是如果core文件产生得比较久了,你搞不清楚是哪个文件产生的core文件,可以使用如下命令进行查询:
gdb –core core.filename
该命令会返回如下信息:
Core was generated by `./demo'.
其中“./demo”就是产生该core文件的可执行文件名

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
40 [报告]
发表于 2011-02-25 13:41 |只看该作者
4.3        gprof
指令名称:        gprof
使用权限:        所有使用者
使用方式:        请参考相应的手册
说    明:        使用gprof包括三个步骤:
1、编译你的程序,让它能够使用gprof,参见4.1节所述
2、执行程序,产生一个分析的结果文件。
3、运行gprof,分析结果。
参    数:       
范    例:        假设有一个程序,只有一个test.cpp文件,要编译连接该文件后,生成可执行文件demo,并且产生gprof性能分析工具所需要的性能采集点信息,可以输入如下命令:
g++ -pg test.cpp -o demo

然后运行该可执行文件demo,使用如下命令:
./demo

使用gprof工具分析程序运行的性能采集结果:
gprof demo gmon.out

可以把结果重定向到一个文件中,以便于使用别的软件进行查看和分析:
gprof demo gmon.out > demo.txt

在Windows下,VC自带的性能分析工具为“Profile.Exe”

4.4        addr2line
指令名称:        addr2line
使用权限:        所有使用者
使用方式:        addr2line [option(s)] [addr(s)]
说    明:        将程序的线性地址转换成实际代码中哪一行的命令
参    数:        -e 可执行文件名
-f 显示函数名称
-C 使用用户可识别的名称报名符号信息
范    例:        假设有一个程序名叫demo,要想查看该程序的地址0x080488bc处于哪个源文件的哪一行,函数名称叫什么,可如下使用该命令:

addr2line -e demo -C -f 0x41e4660f
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP