UNIX常用系统函数

合集下载

UNIX系统常用命令

UNIX系统常用命令

UNIX系统常用命令UNIX系统常用命令格式:command [flags] [argument1] [argument2] ...其中flags以-开始,多个flags可用一个-连起来,如ls -l -a 与ls -la相同。

根据命令的不同,参数分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在标准输出,而错误信息则显示在标准错误输出设备。

可使用重定向功能对这些设备进行重定向。

命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回一个非零值(在shell中可用变量$?查看). 在shell script中可用此返回值作为控制逻辑的一部分。

注:不同的UNIX版本的flags可能有所不同。

1、与用户相关的命令1.1 login(在LINUX Redhat下此命令功能与Solaris/BSD不同,执行login会退出当前任务).login:Password:相关文件:在下面的这些文件中设定shell运行时必要的路径,终端类型,其他变量或特殊程序.$HOME/.profile (Bourne shell, sh, bash)$HOME/.cshrc (csh, tcsh)$HOME/.tcshrc (tcsh)/etc/passwd文件中列出每个用户的shell/etc/csh.cshrc/etc/csh.login/etc/profile (Bourne shell, bash)/etc/login (Bourne shell, bash)csh: /etc/csh.cshrc和$HOME/.cshrc每次执行都会读取,而/etc/csh.login和$HOME/.login只有注册shell才执行修改相应文件后使用 source .cshrc使能相关修改,如果修改了path则还需使用rehash刷新可执行文件hash表。

tcsh: $HOME/.tcshrc, 没有些文件读取.cshrcsh: /etc/profile和$HOME/.profile注册shellbash: /etc/profile和$HOME/.bash_profile注册shell读取.bashrc交互式非注册shell才读取。

unx常用命令介绍

unx常用命令介绍

1.1帮助命令man (2)1.1.1按章节寻找帮助 (2)1.1.2按照关键字寻找帮助 (2)1.2环境变量 (2)1.3目录操作命令 (3)1.4文件操作命令 (3)1.4.1链接命令ln (3)1.4.2显示文件 (3)1.4.3拷贝文件和文件改名、文件移动 (4)1.4.4删除文件 (4)1.4.5改变文件和目录的属主和访问权限 (5)1.4.6查找文件命令find (5)1.4.7文件压缩工具tar (6)1.5文件内容查询命令grep (6)1.6文件内容查看和编辑 (6)1.7重定向和管道 (7)1.8网络命令 (8)1.9其它常用命令 (8)1.10编译程序cc (8)UNIX常用命令介绍1.1帮助命令manunix的帮助手册分为多个章节,常用的有第1、2、3节,分别包括用户命令、系统调用、和C 库函数。

在一些版本的unix中,又分了一些小的章节,比如:1B、3C这样的标题,把帮助的分类进一步的细化,在unix中,帮助文件存放在/usr/share/man下,按章节存放。

下面介绍命令man通常的用法:1.1.1按章节寻找帮助寻找用户命令time的帮助和寻找系统调用time的帮助分别为(在不同的unix版本,命令的用法不一样,下面是在Solaris上的用法):$ man –s 1 time$ man –s 2 time如果不带章节参数的话,系统会显示找到的第一个命令的帮助(按章节的先后)。

有的系统支持-a参数,显示所有章节的帮助,比如显示time在所有章节中的帮助:$ man –a time1.1.2按照关键字寻找帮助下面的命令列出所有跟time相关的帮助信息:$man –k time1.2环境变量在unix中,shell可以维护一些变量,在变量中存放一些数据供以后使用。

显示当前的环境变量:$ env给变量赋值:$ MYHOME=/export/home/xubr; export MYHOME$ MYPATH=$PATH:/export/home/xubr; export MYPA TH查看变量的值:$ echo $MYPATH1.3目录操作命令类似windows,在unix中,某目录中的一个点表示当前目录、两个点表示上级目录,同样支持绝对路径和相对路径。

UNIX基础

UNIX基础

rwxr-x--x 方
111101001
法 一
75 1
方 法 二
作用 用于非正常中断程序的运行 用于系统通信的中断 用来告诉终端,停止接受输入 告诉终端重新接受输入
# stty -a 显示所有的终端选项
UNIX的基本操作
清除屏幕命令
$ clear
UNIX的基本操作
系统帮助
$ man find
UNIX的基本操作
UNIX系统的关闭
# shutdown –hy 0
UNIX的基本操作 目录操作类命令 文件浏览类命令 文件管理类命令
滤通类命令 系统资源类命令 网络操作类命令
vi的常用命令 系统维护类命令
UNIX的基本操作
内容
UNIX的登录与退出 UNIX用户的切换 UNIX命令行的使用 UNIX控主制机键的的开使机用与关机
清除屏幕 UNIX系统的在线帮助 UNIX系统的重启与关闭
UNIX操作-目录
目录操作命令
ls:显示目录内容 格式:ls [option] [path]
[path]:绝对路径、相对路径
[optin]: -l:显示文件所有属性 -a:显示所有文件含隐含文件 如.profile -s:显示文件占用的block数
UNIX操作-文件的类型与权限
$ ls -l sort -rwxr-x--x 1 myname mygroup 120 Jul 26 10:20 sort
UNIX基础
集成产品部
内容
UNIX操作系统概述 UNIX常用操作命令使用
UNIX简介
内容
UNIX流派与标准 UNIX的特点 UNIX系统组成
UNIX的shell程序 UNIX的用户

UNIX操作系统常用功能操作系统常用命令

UNIX操作系统常用功能操作系统常用命令

UNIX操作系统常用功能ls功能:显示指定工作目录下之内容语法:ls [参数选项][目录名]说明:显示指定工作目录下的内容参数选项:如下图选项选项说明-a 显示所有文档及目录,包括隐藏文件-l 将文档名、文档类型、权限、拥有者、大小等信息详细列出-r 将文档以相反次序显示(原定按英文字母次序)-t 将文档依修改时间之先后次序列出-A 同 -a ,但不列出“.” (当前目录) 及 ".." (父目录)-F 在列出的文档名称后加一符号;例如可执行文档则加“*”,目录则加“/”,符号链接文件加“@”-R 递归地显示子目录中的内容Dir功能:同 lscd功能:变换工作目录语法:cd [目录名]说明:用于更换工作目录例题:如下1、cd .. 更换目录回到上一级目录2、cd . 更换到当前目录3、cd ~ 更换目录到当前用户的个人宿主目录4、cd /etc/vsftpd/ 更换到/etc/vsftpd目录5、cd / 更换目录到根目录pwd功能:显示用户当前的工作路径,显示出完整的当前活动目录名称。

语法:pwd说明:显示当前工作目录的绝对路径clear功能:在允许的情况下清除屏幕语法:clear说明:清楚屏幕上的信息man功能:查看指令用法的help语法:man [参数选项] 帮助主题。

说明:man实际上就是查看命令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助功能。

man是manual(手册)的缩写字,它的说明非常的详细,建议记得一些基本用法就可以了。

mkdir功能:用来建立新的目录语法:mkdir [参数选项] 目录名说明:创建一个空目录,要求此用户在当前目录上具有写权限参数选项:如下图选项选项说明-m mode 为新目录设置访问模式。

-p 如果父目录不存在,创建所有的父目录。

rmdir功能:用来删除已建立的目录语法:rmdir [参数选项]目录名说明:删除一个或多个空目录或空子目录,要求此用户在当前目录上具有写权限rm功能:删除文档及目录。

sys_fork函数讲解

sys_fork函数讲解

sys_fork函数讲解【原创实用版】目录1.sys_fork 函数的概念和作用2.sys_fork 函数的调用方式和参数3.sys_fork 函数的返回值4.sys_fork 函数的实际应用正文sys_fork 函数是 Unix 系统中的一个重要函数,主要用于创建一个与原来进程几乎完全相同的进程。

该函数可以用于实现多进程程序设计,是操作系统中进程管理的基础。

一、sys_fork 函数的概念和作用sys_fork 函数是 Unix 系统中的一个系统调用函数,其主要作用是创建一个新的进程。

这个新进程与原进程在代码和数据上是完全相同的,不同的只是进程 ID。

sys_fork 函数在进程创建的过程中,将原进程的代码、数据和打开的文件描述符等资源进行复制,从而创建一个新的进程。

二、sys_fork 函数的调用方式和参数sys_fork 函数的调用方式与其他系统调用函数类似,都是通过调用 int sys_fork(void) 函数来实现。

该函数没有参数,调用后返回两个值:若成功调用,则返回 0,表示新进程已经创建成功,原进程的进程 ID 为 0;若失败,则返回 -1,表示调用失败。

三、sys_fork 函数的返回值sys_fork 函数的返回值具有一定的特殊性。

当函数调用成功时,返回的值是两个,分别是 0 和子进程的进程 ID。

0 表示新进程已经创建成功,而子进程的进程 ID 则表示新进程的具体 ID。

当函数调用失败时,返回的值为 -1,表示调用失败。

四、sys_fork 函数的实际应用sys_fork 函数在实际应用中主要用于创建多进程程序。

通过不断地调用sys_fork 函数,可以创建大量的进程。

这些进程可以用于执行不同的任务,从而实现程序的并发和并行。

sys_fork 函数还可以用于创建一个子进程,然后对子进程进行操作,如设置进程优先级、修改进程的文件描述符等。

综上所述,sys_fork 函数是 Unix 系统中进程管理的基础,它可以用于创建一个与原来进程几乎完全相同的进程。

UNIX常用命令介绍

UNIX常用命令介绍

2.4 UNIX常用命令介绍用户对某一操作系统的认识,往往是从使用和接触操作系统开始的,而接触操作系统最常用的方法就是使用操作系统的命令。

尽管现代操作系统都对用户提供交互式的图形界面,但在使用操作系统时仍不可避免地要用到命令操作方式,这是因为图形界面的处理也是建立在命令处理的基础之上的。

有经验的人都知道,使用命令处理的效率往往会比使用图形界面处理高出很多,而可视化的图形界面主要解决的问题是提供友好交互和摆脱枯燥的命令记忆方式。

2.4.1 UNIX命令使用方法当某个用户正确地通过了系统的注册和登录后,就进入到UNIX的命令管理程序shell的第一个进程中。

shell可以完成UNIX命令的解释执行过程,它大体上可以分成两类:一类是s hell的内部命令,另一类是shell的外部命令。

对用户来讲,内、外部命令在使用方法上没有太多的差异,只是在响应时间上略有不同。

当用户发出内部命令时,系统可直接从内存中选择调用与执行。

而shell的外部命令是那些功能较强、占用空间较大的扩展命令,它们一般不包含在shell中,因此在系统启动时并不被装入内存,只是在使用时才从系统的指定存储介质中调入内存,用完后就释放所占用的内存空间。

外部命令往往功能强大,因此所占用的磁盘空间和内存空间都比较大,甚至有些外部命令实际上就是一个实用程序,它所占用的空间和处理过程的复杂度可以与一个小型系统规模相比,因此对外部命令的管理通常包含着对内、外存空间的控制和管理。

1. UNIX的命令格式使用UNIX命令的方法可以有多种,例如,可以在命令行上输入命令,或是将命令编写在批处理文件中。

无论怎样,命令的使用格式是统一的,UNIX的一般命令格式为:Command[-options][arguments]其中:Command表示UNIX命令名。

[options]表示命令的执行选项,可以取默认值。

[arg uments]表示命令的执行参数,可以默认。

常用系统函数介绍

常用系统函数介绍

常用系统函数介绍系统函数是很多编程语言中的关键部分,它们提供了一系列强大的功能来处理各种任务。

在本文中,我将介绍一些常用的系统函数,以及它们的功能和用法。

1. print函数print函数是一种常见的用于输出信息的系统函数。

它可以接受一个或多个参数,并将其打印到标准输出。

例如,我们可以使用print函数来输出一条消息:```print("Hello World!")```2. input函数input函数用于接受用户输入的数据。

它可以显示一个提示消息,并等待用户输入信息,然后将输入信息作为返回值返回。

例如,我们可以使用input函数来获取用户的姓名:```name = input("Please enter your name: ")```3. len函数len函数用于获取指定对象的长度或大小。

它可以用于字符串、列表、元组等各种数据结构。

例如,我们可以使用len函数来获取一个字符串的长度:```str = "Hello World!"length = len(str)print(length) # 输出:12```4. range函数range函数用于生成一个指定范围内的整数序列。

它可以接受一个或多个参数,并根据参数的不同生成不同类型的序列。

例如,我们可以使用range函数生成一个从0到9的整数序列:```for i in range(10):print(i) # 输出:0, 1, 2, 3, 4, 5, 6, 7, 8, 9```5. type函数type函数用于获取指定对象的类型。

它可以返回一个字符串,表示对象所属的类型。

例如,我们可以使用type函数来判断一个变量的类型:```print(type(x)) # 输出:<class 'int'>```6. str函数str函数用于将指定对象转换为字符串类型。

signal函数的使用

signal函数的使用

signal函数的使用signal系统函数调用提供了一种最简单的范例。

然而,由于C原形声明的缘故使它看起来比实际复杂。

signal函数将一个给定的函数和一个特定的信号联系。

这里是FreeBSD中的定义(和一个typedef一起):引用:typedef void (*sig_t) (int);sig_t signal(int sig, sig_t func);第一个参数是目标信号。

func参数是一个指针,指向某个处理该信号的函数。

这个处理信号函数带有一个int型参数,并应返回void。

signal函数中的func参数也可以设定为下面的一些值:引用:SIG_IGN: 如果func参数被设置为SIG_IGN,该信号将被忽略。

SIG_DFL: 如果func参数被设置为SIG_DFL,该信号会按照确定行为处理。

PS:sig信号的可能类型:#define SIGHUP 1 /* hangup */SIGHUP是Unix系统管理员很常用的一个信号。

许多后台服务进程在接受到该信号后将会重新读取它们的配置文件。

然而,该信号的实际功能是通知进程它的控制终端被断开。

缺省行为是终止进程。

#define SIGINT 2 /* interrupt */对于Unix使用者来说,SIGINT是另外一个常用的信号。

许多shell的CTRL-C组合使得这个信号被大家所熟知。

该信号的正式名字是中断信号。

缺省行为是终止进程。

#define SIGQUIT 3 /* quit */SIGQUIT信号被用于接收shell的CTRL-/组合。

另外,它还用于告知进程退出。

这是一个常用信号,用来通知应用程序从容的(译注:即在结束前执行一些退出动作)关闭。

缺省行为是终止进程,并且创建一个核心转储。

#define SIGILL 4 /* illegal instr. (not reset when caught) */如果正在执行的进程中包含非法指令,操作系统将向该进程发送SIGILL信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UNIX常用系统函数getopt(分析命令行参数)相关函数表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。

参数argc和argv是由main()传递的参数个数和内容。

参数optstring 则代表欲处理的选项字符串。

此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。

如果选项字符串里的字母后接着冒号":",则表示还有相关的参数,全域变量optarg 即会指向此额外参数。

如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为""字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。

返回值如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回""字符,分析结束则返回-1。

范例 #include<stdio.h>#include<unistd.h>int main(int argc,char **argv){int ch;opterr = 0;while((ch = getopt(argc,argv,"a:bcde"))!= -1)switch(ch){case 'a':printf("option a:'%s'\n",optarg);break;case 'b':printf("option b :b\n");break;default:printf("other option :%c\n",ch);}printf("optopt +%c\n",optopt);}执行 $./getopt –boption b:b$./getopt –cother option:c$./getopt –aother option :$./getopt –a12345 option a:'12345'isatty(判断文件描述词是否是为终端机)相关函数 ttyname表头文件 #include<unistd.h>定义函数 int isatty(int desc);函数说明如果参数desc所代表的文件描述词为一终端机则返回1,否则返回0。

返回值如果文件为终端机则返回1,否则返回0。

范例参考ttyname()。

select(I/O多工机制)表头文件 #include<sys/time.h>#include<sys/types.h>#include<unistd.h>定义函数 int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);函数说明 select()用来等待文件描述词状态的改变。

参数n代表最大的文件描述词加1,参数readfds、writefds 和exceptfds 称为描述词组,是用来回传该描述词的读,写或例外的状况。

底下的宏提供了处理这三种描述词组的方式:FD_CLR(inr fd,fd_set* set);用来清除描述词组set中相关fd 的位FD_ISSET(int fd,fd_set *set);用来测试描述词组set中相关fd 的位是否为真FD_SET(int fd,fd_set*set);用来设置描述词组set中相关fd的位FD_ZERO(fd_set *set);用来清除描述词组set的全部位参数 timeout为结构timeval,用来设置select()的等待时间,其结构定义如下struct timeval{time_t tv_sec;time_t tv_usec;};返回值如果参数timeout设为NULL则表示select()没有timeout。

错误代码执行成功则返回文件描述词状态已改变的个数,如果返回0代表在描述词状态改变前已超过timeout时间,当有错误发生时则返回-1,错误原因存于errno,此时参数readfds,writefds,exceptfds 和timeout的值变成不可预测。

EBADF 文件描述词为无效的或该文件已关闭EINTR 此调用被信号所中断EINVAL 参数n 为负值。

ENOMEM 核心内存不足范例常见的程序片段:fs_set readset;FD_ZERO(&readset);FD_SET(fd,&readset);select(fd+1,&readset,NULL,NULL,NULL);if(FD_ISSET(fd,readset){……}ttyname(返回一终端机名称)相关函数 Isatty表头文件 #include<unistd.h>定义函数 char * ttyname(int desc);函数说明如果参数desc所代表的文件描述词为一终端机,则会将此终端机名称由一字符串指针返回,否则返回NULL。

返回值如果成功则返回指向终端机名称的字符串指针,有错误情况发生时则返回NULL。

范例 #include<unistd.h>#include<sys/types.h>#include <sys/stat.h>#include<fcntl.h>main(){int fd;char * file = "/dev/tty";fd = open (fiel,O_RDONLY);printf("%s",file);if(isatty(fd)){printf("is a tty.\n");printf("ttyname = %s \n",ttyname(fd)); }else printf(" is not a tty\n");close(fd);}执行 /dev/tty is a ttyttyname = /dev/tty添加评论 | 阅读评论 (1)3:45 | 固定链接 | 引用通告 (0) | 记录它固定链接关闭/~yhf/linux_c/function/15.htmlgetenv(取得环境变量内容)相关函数 putenv,setenv,unsetenv表头文件 #include<stdlib.h>定义函数 char * getenv(const char *name);函数说明 getenv()用来取得参数name环境变量的内容。

参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。

环境变量的格式为name=value。

返回值执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。

范例 #include<stdlib.h>mian(){char *p;if((p = getenv("USER")))printf("USER=%s\n",p);}执行 USER = rootputenv(改变或增加环境变量)相关函数 getenv,setenv,unsetenv表头文件 #include4<stdlib.h>定义函数 int putenv(const char * string);函数说明 putenv()用来改变或增加环境变量的内容。

参数string的格式为name=value,如果该环境变量原先存在,则变量内容会依参数string改变,否则此参数内容会成为新的环境变量。

返回值执行成功则返回0,有错误发生则返回-1。

错误代码 ENOMEM 内存不足,无法配置新的环境变量空间。

范例 #include<stdlib.h>main(){char *p;if((p = getenv("USER")))printf("USER =%s\n",p);putenv("USER=test");printf("USER+5s\n",getenv("USER"));}执行 USER=rootUSER=rootsetenv(改变或增加环境变量)相关函数 getenv,putenv,unsetenv表头文件 #include<stdlib.h>定义函数 int setenv(const char *name,const char * value,int overwrite);函数说明 setenv()用来改变或增加环境变量的内容。

参数name为环境变量名称字符串。

参数 value则为变量内容,参数overwrite用来决定是否要改变已存在的环境变量。

如果overwrite不为0,而该环境变量原已有内容,则原内容会被改为参数value所指的变量内容。

如果overwrite为0,且该环境变量已有内容,则参数value会被忽略。

返回值执行成功则返回0,有错误发生时返回-1。

错误代码 ENOMEM 内存不足,无法配置新的环境变量空间范例 #include<stdlib.h>main(){char * p;if((p=getenv("USER")))printf("USER =%s\n",p);setenv("USER","test",1);printf("USER=%s\n",getenv("USEr"));unsetenv("USER");printf("USER=%s\n",getenv("USER"));}执行 USER = rootUSER = testUSER = (null)添加评论3:44 | 固定链接 | 引用通告 (0) | 记录它固定链接关闭/~yhf/linux_c/function/14.htmlaccept(接受socket连线)相关函数 socket,bind,listen,connect表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);函数说明 accept()用来接受参数s的socket连线。

相关文档
最新文档