网站建设资讯

NEWS

网站建设资讯

linux预编命令 linux中编译命令

Linux编程中 #define _XOPEN_SOURCE的作用是什么

[误解]

在新郑等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站建设 网站设计制作按需网站建设,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销,成都外贸网站建设,新郑网站建设费用合理。

#define _XOPEN_SOURCE

决不是简单的宏定义

它是使程序符合系统环境的不可缺少的部分

[概念]

Glibc 所实现全部或部分规范下的功能有:

1.ISO C: C语言国际标准.

2.POSIX: 操作系统的 ISO/IEC 9945 (aka IEEE 1003) 标准.

3.Berkeley Unix: BSD 和 SunOS.

4.SVID: V 系统接口描述.

5.XPG: The X/Open Portability Guide.

程序中,为了实现上述功能需要定义对应的宏。如第二个功能POSIX,应定义 _POSIX_SOURCE。类似的有 _BSD_SOURCE、_SVID_SOURCE、_XOPEN_SOURCE。

也就是说:

#define _XOPEN_SOURCE

是为了可以使用 5. The X/Open Portability Guide 的功能。

[实用方法]

使用上述五种功能的方法有两种:

1)在cc命令中指定,如:cc -D _POSIX_SOURCE file.c

2)将源程序的第一行设置为:#define _POSIX_SOURCE 1

[_XOPEN_SOURCE是什么?]

翻译成汉语表达很蹩脚,英文原版解释如下:

Macro: _XOPEN_SOURCE

If you define this macro, functionality described in the X/Open Portability Guide is included. This is a superset of the POSIX.1 and POSIX.2 functionality and in fact _POSIX_SOURCE and _POSIX_C_SOURCE are automatically defined.

As the unification of all Unices, functionality only available in BSD and SVID is also included.

If the macro _XOPEN_SOURCE_EXTENDED is also defined, even more functionality is available. The exa functions will make all functions available which are necessary for the X/Open Unix brand.

[参考资料]

悉雨辰寂

linux 常用命令要具体例子

命令很多的,一下子学了也会忘记的,只能慢慢积累,很多一般都用不上的1、文件查看和连接命令

将文件连接到一起,用“”操作将几个文件组合成一个新的文件,或者是用“”把文件追加到已存文件的后面。

语法:

cat[参数]filelist

-n或--number:由1开始对所有输出的行数进行编号

-b或--number-nonblank:和n相似,但对空行不编号

-s:遇到两行空白,替换为一行空白

-v:显示不可打印的字符

filelist:用于结合文件的可选列表。2、分屏显示命令

类似于cat,但它是每次显示一页,按空格显示下一页,按q键退出,按h〉键给出帮助信息。该命令还有搜索字符的功能。

语法

more [选项] file...

-num:指定每屏显示的行数

-d:在屏幕下面提示信息

-l:more默认遇到送纸符^L会暂停,使用该选项可以取消该功能

-f:计算实际行数

-p:不是以卷动的方式显示每页,而是先清屏再显示

-s:遇到两行空白,替换为一行空白

-u:不显示下划线

+/string:在文件中搜索字符串string,并显示字符串所在页的内容

+/num:从第num行开始显示

file用于显示的文件

3、按页显示文件。类似于more,但允许在文件中前后移动。

语法:

less [参数]文件名

-i:查询时忽略大小写。

-num:指定每页显示的行数

-pstring:在文件中搜索字符串string,并从第一个符合条件的地方开始显示

-S:当某列的内容超过显示画面的宽度时,直接将超出的部分截断舍弃,默认情况下会把超出的部分折回来显示复制、删除和移动命令

1、拷贝文件。

语法:

cp[选项]sourcedest

cp[选项]source....directory

-r递归拷贝目录

-f删除已存在的目标文件再复制

-a在备份中尽可能的保留源文件的结构和属性。

2、删除

rm [选项] name....

该命令用于逐个删除指定的文件或目录。默认清苦下,name为文件名,rm命令不删除目录,只有指定-d选项时候,才能删除目录

语法:

-f强制删除,包括只读文件,并且不给用户任何提示

-i在删除每个文件时提示用户

-r递归删除目录下的内容移动或更名文件和目录

语法:

mv  [参数]源文件目标文件

-f强制复盖已有文件。

-i在复盖已有文件前提示用户。

-u在目标文件的时间比原文件新时不复盖目标文件。

-v在移动文件时输出相关信息。创建和删除目录命令

1、创建目录命令

mkdir[参数]目录名

-p如果父目录不存在,创建所有的父目录。2、删除空目录。

语法:

rmdir[参数]目录列表

-p 表示删除指定目录后,如果该目录的父目录为空,则将一并删除切换工作目录和显示目录命令

1、改变当前工作目录。

语法:

cd 目录名

如果后面不加目录名,则返回用户的根目录,此外用户必须拥有进入该目录的权限。另外cd ~ 指切换到自己的主目录,cd ../.. 可以切换到单前目录的上上目录2、显示正在工作或当前的目录名。

pwd [参数]3、列出目录中的内容。

语法:

ls [参数][目录]

-A  显示所有文件,包括隐藏文件(以“.”开头的文件,但不列出当前目录“.”和上级目录“..”

-a  显示所有文件,包括“.”和“..”目录。

-d  只列出目录名;不列出它的内容。

-l  给出文件的长列表。包括权限、所有权、大小、文件名、最后修改时间等等。

-t 按时间顺序显示

-F 在列出的文件名后以符号表示文件类型,一般文件不加符号,可执行文件“*”,目录加“/”

-R 若目录下有文件,则递归地列出目录下的文件查找与定位命令

1、查找文件或目录命令

格式

find [path....] [expression]

该命令在目录树层次中从path开始向下查找文件,将符合expression要求的文件列出来。输入命令中第一个以-、(、)、,、!开始的参数作为expression的部分,在这些符号之前的参数都被认为是要搜索的路径,在这些符号之后的才被认为是expression的部分,如果不给出path,则使用当前工作的目录,如果不给出expression,则使用-print作为预设expression

expression的参数有二三十个之多,这里只提几个常用的

-aminn 在过去n分钟内被访问过的文件

-anewerfile 比文件file更晚被访问过的文件

-atimen 在过去n天被访问过的文件

-cminn 在过去n分钟内修改过的文件

-cnewerfile 比文件file更新的文件

-ctimen 在过去n天内修改过的文件

-empty 内容为空的文件

-gidn或-groupname gid是n或是group名是name的文件

-ipathp,-pathp 路径名称符合p的文件,ipath表示忽略大小写

-namename,-inamename 文件名称符合name的文件,iname表示忽略大小写

-sizen单位 文件大小是n个单位

-type文件类型〉文件类型的含义与名利ls的选型一样

-pidn 进程id是n的文件

exp1 exp2 或者exp1 -a exp2 或者exp1 -and exp2 含义相同,表示同时满足这两个条件

!expr或者-not expr 表示expr的否定

exp1 -o exp2 或者exp1 -or exp2 表示满足其中一个条件就可以2、文件定位命令

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的distribution 之中,资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用locate [选项] search string-u 建立资料库,-u 会由根目录开始

-U 建立资料库,-U 则可以指定开始的位置。-e 将排除在寻找的范围之外。-l 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。-q 安静模式,不会显示任何错误讯息。-n 至多显示 个输出。-r 使用正规运算式 做寻找的条件。-o 指定资料库存的名称。-d 指定资料库的路径-h 显示辅助讯息-v 显示更多的讯息-V 显示程式的版本讯息连接命令

ln [选项] source dest

Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。 ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。-f : 链结时先将与 dist 同档名的档案删除

-d : 允许系统管理者硬链结自己的目录

-i : 在删除与 dist 同档名的档案时先进行询问

-n : 在进行软连结时,将 dist 视为一般的档案

-s : 进行软链结(symbolic link)

-v : 在连结之前显示其档名

-b : 将在链结时会被覆写或删除的档案进行备份

改变文件或目录的时间命令

touch [选项] file1 [file2....]

-a 改变档案的读取时间记录。

-m 改变档案的修改时间记录。

-c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

-f 不使用,是为了与其他 unix 系统的相容性而保留。

-r 使用参考档的时间记录,与 --file 的效果一样。

-d 设定时间与日期,可以使用各种不同的格式。

-t 设定档案的时间记录,格式与 date 指令相同。

--no-create 不会建立新档案。

备份命令

tar 主选项 [辅选项] 文件或目录

tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。

主选项:

c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

t 列出档案文件的内容,查看已经备份了哪些文件。

u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

x 从档案文件中释放文件。

辅选项:

b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。

f 使用档案文件或设备,这个选项通常是必选的。

k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。

m 在还原文件时,把所有文件的修改时间设定为现在。

M 创建多卷的档案文件,以便在几个磁盘中存放。

v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。

w 每一步都要求确认。

z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

tar的最基本的用法举例

tar -cf all.tar *.jpg

这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

tar -rf all.tar *.gif

这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

tar -uf all.tar logo.gif

这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

tar -tf all.tar

这条命令是列出all.tar包中所有文件,-t是列出文件的意思

tar -tvf all.tar |more

这条命令是列出all.tar包中所有文件,并以分屏方式压缩和解压命令

gzip命令是用来压缩文件的。它不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

gzip [选项] [文件名]

-c 输出并保留原文件

-d 将压缩文件解压,默认情况下为压缩

-l 显示压缩文件的压缩的提示信息

-r 递归的压缩或解压

-t,可以用来测试压缩文件的完整性。如果文件正常,gzip不会给出任何显示。如果想看到OK这两个字母,可以在测试某个文件时使用-tv参数。

-v 对每个操作的文件,显示文件名和压缩比例

unzip 命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。

unzip [选项] [压缩文件名]

-d目录 知道解压的某个目录下,默认为当前目录

-n:解压缩时不要覆盖原有的文件。

-o:不必先询问用户,unzip执行后覆盖原有文件

-j:不处理压缩文件中原有的目录路径,把所有文件解压到同一目录

-v:察看压缩文件的内容,但不解压

-t:检查压缩文件是否正确,但不解压显示文字命令

echo [-n] 字符串〉

在屏幕上显示字符串,-n表示不换行显示日立命令

cal [选项] [[月]年]

- j 显示出给定月中的每一天是一年中的第几天(从1月1日算起)。

- y 显示出整年的日历。

-1 显示当月的日历

-3显示前一月,本月,下月的日历

-s以星期天作为一周的第一天

-m以星期一作为一周的第一天如cal 5 2006

显示2006年5月份的日历

日期时间命令

date [选项] [+FormatString] 显示日期时间

date setstring 设置日期时间

它的选项比较多,一凡在此就不一一列出来了清屏命令clear软件包管理

RPM全称是 Red Hat Package Manager(Red Hat包管理器)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。

01、安装

rpm -i ( or --install) options file1.rpm ... fileN.rpm

-h (or --hash) 安装时输出hash记号 (``#'')

--test 只对安装进行测试,并不实际安装。

--percent 以百分比的形式输出安装的进度。

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件

--force 忽略软件包及文件的冲突

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为02、删除

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

参数

pkg1 ... pkgN :要删除的软件包

详细选项

--test 只执行删除的测试

--noscripts 不运行预安装和后安装脚本程序

--nodeps 不检查依赖性

03、升级

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

参数

file1.rpm ... fileN.rpm 软件包的名字

详细选项

-h (or --hash) 安装时输出hash记号 (``#'')

--oldpackage 允许"升级"到一个老版本

--test 只进行升级测试

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件

--force 忽略软件包及文件的冲突

--percent 以百分比的形式输出安装的进度。

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为04、查询

命令格式:

rpm -q ( or --query) options

参数:

pkg1 ... pkgN :查询已安装的软件包

详细选项

-p (or ``-'') 查询软件包的文件

-f 查询属于哪个软件包

-a 查询所有安装的软件包

--whatprovides 查询提供了 功能的软件包

-g 查询属于 组的软件包

--whatrequires 查询所有需要 功能的软件包

信息选项

示软件包的全部标识

-i 显示软件包的概要信息

-l 显示软件包中的文件列表

-c 显示配置文件列表

-d 显示文档文件列表

-s 显示软件包中文件列表并显示每个文件的状态

--scripts 显示安装、卸载、校验脚本

--queryformat (or --qf) 以用户指定的方式显示查询信息

--dump 显示每个文件的所有已校验信息

--provides 显示软件包提供的功能

--requires (or -R) 显示软件包所需的功能

05、校验已安装的软件包

命令格式:

rpm -V ( or --verify, or -y) options

参数

pkg1 ... pkgN 将要校验的软件包名

软件包选项

-p Verify against package file

-f 校验所属的软件包

-a Verify 校验所有的软件包

-g 校验所有属于组 的软件包

详细选项

--noscripts 不运行校验脚本

--nodeps 不校验依赖性

--nofiles 不校验文件属性

06、校验软件包中的文件

语法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 软件包的文件名连接帮助命令

man command

info command 该功能比man强大,但目前只在Linux中有,其他的UNIX中没有该命令

help command

linux--5、文本文件编辑命令

cat命令用于查看纯文本文件(较短的):

$ cat [选项] 文件

以下是cat命令常用的3个选项:

(1) $ cat -n 文件

-n 表示显示行号。

(2) $ cat -b 文件

-b 表示显示行号,但是不包括空行。

(3) $ cat -A 文件

-A 表示显示出不可见的符号,如空格、tab键等。

more命令用于查看纯文本文件(较长的):

$ more [选项] 文件

more命令常用的一个参数是"- 数字",表示预先显示的行数,默认是一页:

$ more -10 文件

head命令用于查看纯文本文档的前N行:

$ head [选项] 文件

(1) $ head -n 10 文件

这个命令表示显示文件的前10行。

(2) $ head -n -10 文件

这个命令表示正常输出,但是不显示最后的10行。

tail命令用于查看纯文本文档的后N行:

$ tail [选项] [文件]

例如,显示文件/etc/passwd的后10行:

$ tail -n 10 /etc/passwd

wc命令用于统计指定文本的行数、字数、字节数:

$ wc [参数] 文本

(1) $ wc -l 文本

-l 参数表示只显示行数。

(2) $ wc -w 文本

-w 参数表示只显示单词数。

(3) $ wc -c 文本

-c 参数表示只显示字节数。

linux常用命令

Linux常用基本命令主要包括目录操作命令、文件操作命令、文件查看命令、磁盘管理命令、用户管理命令、系统管理命令等。

目录操作命令:cd、ls、mkdir、pwd、rmdir。

文件操作命令:cp、mv、touch、rm、grep、find、chmod、chown、chgrp、tar、split、gzip、tee、touch、unzip、zip、unrar、scp。

文件查看命令:cat、head、tail、more、nl、diff。

用户管理命令:useradd、usermod、userdel、passwd、su、groupadd、groupdel。

网络通信命令:netstat、route、ftp、sftp、ping、scp、telnet。

系统管理命令:who、uname、top、ps、kill、ifconfig、free、df、du、time、shutdown、reboot、man、last、halt、date、crontab、getconf。

磁盘管理命令:fdisk、mount、umount、sync。


网站名称:linux预编命令 linux中编译命令
分享地址:http://cdweb.net/article/ddceohh.html