




已阅读5页,还剩167页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
创作团队(按姓名首字母,排名不分先后)以下摘自博客地址高明/gm9415龚琴/svasan顾修忠/ta893115871何路/luckylulovezy胡鹏磊/alberthuyy梁光明/puce_love刘省/lsbflayun刘洋/liuyang1990i卢友娟/386939024沈晓伟/daveweicomeon孙艳辉/syh19378888王雷/wang_leiboke王兴林/wangxinglin133521吴敬伟/aile770339804张羽宽/jack_zyk赵志远/ZY_zhao朱世翔/zsx0415张明智/newbee520目 录1Linux环境基础11.1.1Linux系统安装11.1.2Linux环境配置11.1.3Linux常用命令11.1.4Linux用户管理11.1.5Linux网络管理11.1.6Linux编辑开发工具的使用vim11.1.7Linux编译开发工具的使用gcc11.1.8小结11.1.9习题12Linux的shell编程22.1.1shell语法规则22.1.2shell变量22.1.3shell基础编程22.1.4shell高级编程22.1.5小结22.1.6习题23文件I/O编程33.1open函数33.2close函数33.3read函数33.4write函数33.5lseek函数43.6rewind函数43.7dup函数43.8dup2函数43.9fcntl函数43.10ioctl函数53.11标准IO与缓存53.11.1标准I/O标准53.11.2ANSI C缓存53.11.3fdopen函数53.11.4I/O效率53.12小结53.13习题54文件与目录编程64.1.1opendir函数64.1.2readdir函数64.1.3stat函数64.1.4chdir函数64.1.5小结64.1.6习题65Linux进程编程75.1fork函数孕育生命的摇篮75.2wait函数侦探柯南85.3waitpid函数侦探柯南115.4exec函数偷梁换柱145.5system函数接(借)生婆155.6设置用户ID和组ID165.7进程执行时间165.8小结165.9习题166Linux进程间通信176.1.1有名管道(fifo)和无名管道(pipe)176.1.2信号186.1.3信号量276.1.4共享内存206.1.5消息队列276.1.6socket277Linux线程编程297.1.1pthread_create函数297.1.2线程库文件297.1.3pthread_join297.1.4pthread_exit297.1.5线程属性297.1.6线程互斥锁297.1.7线程条件变量298Linux高级I/O编程308.1.1fcntl函数308.1.2select函数308.1.3ioctl函数309Linux网络编程319.1.1网络基础319.1.2socket函数319.1.3bind函数319.1.4select函数319.1.5accept函数319.1.6connect函数3110附录:习题答案和解说331 Linux环境基础1.1.1 Linux系统安装1安装引导首先要设置计算机的BIOS启动顺序为光驱启动,保存设置后将安装光盘放入光驱,重新启动计算机。 计算机启动以后会出现如下图所示的界面。 你可以直接按下来进入图形介面的安装方式或者等待60秒。 下面是上图所示引导菜单选项如下: 安装或升级现有系统(Install or upgrade an existing system):这个选项是默认的。 选择此选项,安装到您的计算机使用CentOS的图形安装程序的系统。 安装系统,基本的视频驱动程序(Install system with basic video driver):此选项允许您安装CentOS的模式,即使在图形安装程序无法加载视频卡的正确驱动程序为您的。如果你的屏幕上出现扭曲或一片空白时使用的安装或升级现有系统的选项,重新启动计算机,并尝试此选项。 救援安装的系统(Rescue installed system):选择这个选项来修复您的安装CentOS系统,防止正常启动你一个问题。虽然CentOS是一个非常稳定的计算平台,它是偶然的问题仍有可能发生,防止启动。 救援环境包含实用程序,允许您解决这些问题,品种繁多。 从本地驱动器启动(Boot frome local drive):此选项将引导从第一个安装的磁盘系统。 如果你意外地启动这个光盘,使用未立即启动安装程序这是从硬盘启动选项。 2检测光盘介质如下图所示,如果是一张完整的安装盘,可以直接单击“Skip”按钮跳过,否则单击“OK”按钮检测安装盘的完整性。 Tips:如果你确定你所下载的DVD或光盘没有问题的话,那么这里可以选择Skip(忽略), 不过,你也可以按下OK来进行DVD的分析,因为通过DVD的分析后,后续的安装比较不会出现奇怪的问题。 不过如果你按下OK后,程式会开始分析光盘内的所有文件的资讯,会花非常多的时间喔! 3安装欢迎界面当检测完电脑硬件信息后,进入安装欢迎界面,如下图所示。 4选择安装过程中的语言单击“Next”按钮进入如下图所示的界面,选择安装过程中使用的语言,此处选择“Chinese (Simplified)中文(简体)”。 5选择键盘布局类型选择完安装过程中的语言后,单击“Next”按钮进入如下图所示的界面,选择键盘类型一般默认会选择“美国英语式(U.S.English)”,即美式键盘,在此使用默认的选择。 6选择设备 选择一种存储设备进行安装。“基本存储设备”作为安装空间的默认选择,适合哪些不知道应该选择哪个存储设备的用户。而“指定的存储设备”则需要用户将系统安装指定到特定的存储设备上,可以是本地某个设备,当然也可以是SAN(存储局域网)。用户一旦选择了这个选项,可以添加FCoE/iSCSI/zFCP磁盘,并且能够过滤掉安装程序应该忽略的设备。这里选择“基本存储设备”,单击“下一步”按钮。Tips:基本存储设备:用于台式机和笔记本等等;指定存储设备:用于服务器等等。7初始化硬盘 如果硬盘上没有找到分区表,安装程序会要求初始化硬盘。此操作使硬盘上的任何现有数据无法读取。如果您的系统具有全新的硬盘没有操作系统安装,或删除硬盘上的所有分区,则单击 “重新初始化”。Tips:安装程序将为您提供一个单独的对话框,为每个磁盘,它无法读取一个有效的分区表。单击“忽略所有”按钮,或“重新初始化所有”按钮,可将应用到所有设备相同的答案。8设置主机名与网络 安装程序会提示您提供和域名为这台计算机的主机名格式,设置主机名和域名 。 许多网络有DHCP(动态主机配置协议)服务,它会自动提供域名系统的一个连接,让用户输入一个主机名。除非您有特定需要定制的主机名和域名,默认设置 localhost.localdomain 是一个很好的选择大多数用户。设置固定IP选择配置网络 -有线-eth0-编辑,弹出编辑窗口上选择“IPv4设置”,打开“方法”边上的下拉菜单,选择“手动”。单击“添加”按钮,依次输入本机的IP、子网掩码、网关。在下面的“DNS服务器”处输入DNS地址。最后,点击“应用”按钮即可。9时区选择 因为全世界分为24个时区,所以,要告知系统时区在哪里。如下图所示,你可以选择北京,或直接用鼠标在地图上选择。要特别注意UTC,它与“夏令时”有关,我们不需要选择这个选项,否则会造成时区混乱,导致系统显示的时间与本地时间不同。10设置管理员密码(root密码)下面是最重要的“系统管理员的口令”设置,如下图所示。在Linux中,系统管理员的默认名称为root,请注意,这个口令很重要。至少6个字符以上,含有特殊符号,并要记好。11磁盘分区配置 为方便大家分区硬盘,CentOS预设给了我们分区模式,分别为:使用所有空间(Use All Space ): 选择此选项,删除您硬盘上的所有分区(这包括如Windows的NTFS分区VFAT或其他操作系统创建的分区)。替换现有的Linux系统(Replace Existing Linux System): 选择此选项,以消除先前的Linux安装创建的分区。 这不会删除其他分区(如VFAT或FAT32分区),你可能对您的硬盘驱动器。宿小现有系统(Shrink Current System): 选择此选项,调整当前的数据和分区安装在手动释放的空间是一个默认的红帽企业Linux布局。使用剩余空间(Use Free Space): 选择此选项以保留您当前的数据和分区并安装在未使用的存储驱动器上的空间可用的Scientific。 确保有足够的存储驱动器上的可用空间,然后再选择此选项。创建自定义布局(Create Custom Layout): 选择此选项,手动存储设备进行分区并创建自定义布局。(1)创建自定义布局(Create Custom Layout)选择“创建自定义布局”,按“下一步”按钮;如下图所示。 创建“/boot”选择要分区的空闲空间,按下“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。挂载点:选择“/boot”文件系统类型:使用默认“Ext4 日志文件系统”大小:输入分配的大小,以 MB 为单位 其它大小选项:选择“固定大小”。点“确定”按钮。创建“/”继续选择空闲空间,按下“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。挂载点:选择“/”文件系统类型:使用默认“Ext4 日志文件系统”大小:输入分配的大小,以 MB 为单位 其它大小选项:选择“固定大小”。点“确定”按钮。创建“/usr”继续选择空闲空间,按下“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。挂载点:选择“/usr”文件系统类型:使用默认“Ext4 日志文件系统”大小:输入分配的大小,以 MB 为单位 其它大小选项:选择“固定大小”。点“确定”按钮。创建“/var”继续选择空闲空间,按下“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。挂载点:选择“/var”文件系统类型:使用默认“Ext4 日志文件系统”大小:输入分配的大小,以 MB 为单位 其它大小选项:选择“固定大小”。点“确定”按钮。创建“/home”分区 继续选择空闲空间,点“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。挂载点:选择“/home”文件系统类型:使用默认“Ext4 日志文件系统”大小:输入分配的大小,以 MB 为单位 其它大小选项:选择“固定大小”。点“确定”按钮。创建交换空间 继续选择空闲空间,点“创建”后,就会出现如下的画面。选择“标准分区”后,点击“生成”。文件系统类型:选择“swap”其它大小选项:选择“使用全部可用空间”。点“确定”按钮。1.1.2 Linux环境配置配置NAT网络:首先连接到NAT模式,在该模式下才能连接到NAT模式,具体做法有两种:第一种是在启动时就设置为NAT模式,还有一种是在虚拟机模式中直接点击虚拟机中的“设置”选项,接着修改为NAT模式。接下来在root用户登陆的情况下,用命令#vi /etc/sysconfig/network-scripts/ifcfg-eth0打开ifcfg-eth0文件。在文件中编写下这样的代码:ONBOOT=yesBOOTPROTO=staticIPADDR=1 #指的是linux的ip地址,要是192.168.174.X网段NETMASK=#子网掩码GATEWAY=#网关,和图2 Gateway IP address一致。DOSDOS配置好ifcfg-eth0,输入命令 service network restart,重启网卡。为什么要设置DOSDOS了?这是因为如果不修改域名的话,你将无法登陆外网,也就是说你无法访问百度、腾讯这样的网站。这个是血的教训,涂老师批过我!呵呵接下来说说bridge网的连接设置:这个设置和NAT差不多,但是一定要转换到bridge模式下进行。方法还是那两种:第一种是在启动时就设置为bridge模式,还有一种是在虚拟机模式中直接点击虚拟机中的“设置”选项,接着修改为bridge模式。这里特别要强调一点,就是你打开一个虚拟机就只能是一种模式,每次跟换模式时都必须修改ifcfg-eth0文件下的文件内容,也就是说你想用NAT模式就必须把ifcfg-eth0文件改为NAT的文件配置,换到bridge时又要把文件改到bridge文件配置。这个很麻烦,建议只用bridge模式。具体操作为:在root用户登陆的情况下,用命令#vi /etc/sysconfig/network-scripts/ifcfg-eth0打开ifcfg-eth0文件。在文件中编写下这样的代码:ONBOOT=yesBOOTPROTO=staticIPADDR=1 #指的是linux bridge模式下的ip地址,要是10.10.19.X网段NETMASK=#子网掩码GATEWAY=54#网关,和本地连接的网关一致。DOS1=0DOS2=1#这个可以不要,不上外网就不需要。#强调:bridge是和物理网卡绑定的,所以叫桥接嘛! 因为物理网卡绑定了,所以必须保证在同一个网段!ftp的配置:1. 在配置ftp的过程中首先是root用户登录(fedora 14为例子)用命令:vi打开/etc/vsftpd/ftpusers,用#号屏蔽掉root和nobody,,如下的效果。#rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgames#nobody接着用命令:vi打开/etc/vsftpd/ user_list,用#号屏蔽掉root和nobody#rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgames#nobody1) 用命令启动ftp,service vsftpd start2) 就可以用root用户登录ftp了。当然ftp也可以直接用命令来完成,不需要用软件。具体做法就是(举例):ftp30;然后输入密码和用户名登陆上去。接着可以用命令cd打开当前目录。用ls出来。如果你需要下载什么东西可以用get命令来完成。具体为:get filename /下载到的文件名。NFS的配置:首先要说明的是,NFS是网络文件系统。它的作用就是让配置NFS的Linux系统都能分享别人系统里的文件资料,同时也可以修改里面的文件。说白了就是让你和别人都能到别人的电脑离去用别人的东西。而具体的做法是:1. 用命令vi /etc/exports打开exports文件。2. 在exports文件中写下 /home/star/star 10.10.19.*(rw,sync,no_root_squash)3. 编译4. service nfs start这里也要说明的是,/home/star/star是你分享的文件夹。那么如何去使用自己和别人的nfs了,也很简单。只需要用命令:mount t nfs 30:/home/share /mnt其中/home/share是你要挂起的文件夹,/mnt则是你要挂载到的自己的文件夹。这样你就可以分享别人的文件了。Samba的配置:Samba的功能与nfs有相同的地方但是也有差别之处。nfs是让各个Linux系统之间可以进行文件的共享但不能在Windows与Linux之间进行共享,而samba可以做到。所以这就是samba的优势所在。mysql的配置:删除旧版本先找出要删的文件1用#rpm -qa|grep mysql #rpm -qa|grep MySQL #rpm -qa|grep php #rpm -qa|grep http2删除找出的所有文件 #rpm -e -nodeps filename mysql的安装估计是我安装中挨老师批斗最多的,但是这都是小事了,最关键的是我学到了很多的东西,下面来说说。首先是mysql是一个关系数据库。它的具体安装为:首先你必须拥有配置文件,一共有5个配置文件,分别是server、client、bench、devel和shared。这5个配置文件首先要放到/usr/local这个文件夹下。但是千万记住这是在usr文件夹下,但是当你退出来时你是在root下,因为你是root登录。接下来先装服务器#rpm -ivh MySQL-server-5.0.45-0.i386.rpm但是保证路径要正确。这是很关键的!然后装客户端#rpm -ivh MySQL-client-5.0.45-0.i386.rpm 还有其他的share,devel,bench等也要装上安装好后试试能不能用#mysql更具体的做法是:1先装服务器#rpm -ivh MySQL-server-5.0.45-0.i386.rpm2然后装客户端#rpm -ivh MySQL-client-5.0.45-0.i386.rpm还有其他的share,devel,bench等也要装上!3安装好后试试能不能用#mysql出现Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 27651 to server version: 4.0.20-standardType help; or h for help. Type c to clear the buffer.然后用#show databases;成功!4最后对mysql加密码!#mysqladmin -uroot password123456进入MySQL用#mysqladmin -uroot -p1234565.安装安装APAHCHE2#tar zxvf httpd-2.0.50.tar.gz#cd httpd-2.0.50#./configure -prefix=/usr/local/apache2 -enable-module=so#make#make install安装好以后#/usr/local/apache2/bin/apachectl start 开启它,然后用IE查看就可6.安装PHP5#tar zxvf php-5.0.0.tar.gz#cd php-5.0.0#./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache2/bin/apxs -enable-trace-vars -with-mysql=/var/lib/mysql 如果要加上soap扩展的话就加上-enable-soap#./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache2/bin/apxs -enable-trace-vars -with-mysql=/var/lib/mysql -enable-soap -with-xmlrpc(然后打开php.ini找到soap和xmlrpc注释掉)#make#make install7. 配置复制PHP.INI文件到正确位置在PHP-5.2.8目录下运行#cp php.ini-dist /usr/local/php/lib/php.ini编辑apache配置文件httpd.conf#vi /usr/local/apache2/conf/httpd.conf要改的有如下几处:一般都在 #AddType application/x-tar .tgz下加一行#LoadModule php5_module modules/libphp5.so(856)AddType application/x-httpd-php .php如果你搜索其它地方没有以下这行LoadModule php5_module modules/libphp5.so请把上面的#号去掉找到DirectoryIndex index.html 在后面加 index.php 让它把index.php做为默认页找到# dont use Group #-1 on these systems!( 268 )把下面的用户名和组改为User apacheGroup apache(原来好像是nobody)找到#ServerName ( 292 )把#去掉,后面的IP改成你的IP.找到DocumentRoot /usr/local/apache2/htdocs把/usr/local/apache2/htdocs改为你存放网页文件的路径比如我是放在/home/easy目录下,所以我以后上传PHP文件就放在/home/easy目录下,然后用IP访问,就能看到首页了为了让中文网页没乱码找到AddDefaultCharset iso8859-1把后面的iso8859-1改为gb2312至于apache2其它优化,请看/ 里的apache配置那一分类.保存httpd.conf文件.8.客户端安装tar zxvf phpMyAdmin-2.6.1-rc1.tar.gzcp phpmyadmin.tar.gz /usr/local/apache2/htdocshttp:/IP/.9. 启动# /usr/local/apache2/bin/apachectl start如果没有出错,写一个测试页放到你网页目录下, 我的就是上面所说的 /home/easy#vi /home/easy/index.php保存.试试在测试器里打IP进去就可以看到PHPINFO页了*如果出现:“必须在您的配置文件中设定 $cfgPmaAbsoluteUri 指令.”那么先进入到phpmyadmin :#cd /usr/local/apache2/htdocs/phpmyadmin用命令# vim config.inc.php修改把$cfgPmaAbsoluteUri设置为http:/localhost/phpmyadmin。或23/phpmyadmin。即为该虚拟机的IP/phpmyadmin!同时也是在这里面修改密码、主页等!#vim /usr/local/php/lib/php.ini在; Paths and Directories ;下添加一条include_path = .:/usr/local/php/lib/php删除此目录所有文件命令:#/usr/local/apache2/htdocs*每安装完成一个配置,做一次测试!关于如何mysql用户的建立,权限的分配首先是用root用户打开mysql,我的root用户是有密码的,而有的同学没有在安装好mysql时给root用户下的mysql安装上密码。如果想安装,只需要用命令: #mysqladmin -uroot password123456 之后进入MySQL用#mysqladmin -uroot -p123456就行。而新创建用户则需要在打开mysql用到之下的命令:之后刷新系统权限表:mysqlflush privileges;(分号不要掉了)这样就创立了一个名为star,密码为111111的用户。接下来使权限的分配:1.新建用户/登录MYSQLmysql -u root -p密码/创建用户mysql insert into mysql.user(Host,User,Password) values(localhost,star,password(111111);/刷新系统权限表mysqlflush privileges;这样就创建了一个名为star ,密码为111111的用户。/退出后登录一下mysqlexit;mysql ustar -p输入密码mysql登录成功2.为用户授权/登录MYSQL(有ROOT权限)。我里我以ROOT身份登录。mysql -u root -p密码/首先为用户创建一个数据库(jeecnDB)mysqlcreate database jeecnDB;/授权jeecn用户拥有jeecn数据库的所有权限grant all privileges on jeecnDB.* to jeecnlocalhost identified by jeecn;/刷新系统权限表mysqlflush privileges;mysql其它操作(一般可以为quit或者exit)如果忘记root的登录密码怎么办有时候我们的记性不会太好,所以可能会忘记我们的登录密码。如果你忘记了用户root的mysql登录密码,不要着急。下面的方法可以帮你:首先用命令 #vi /etc/f打开文件。接着在文件中输入命令:mysql datadir=/var/lib/mysql/mysql.sock skip-grant-tables skip-name-resolve然后保存并退出vi。再重新启动mysql:#service mysql restart登陆并修改mysql的root用户登录密码:#mysql再接下来就是这样了:注意上面的(new-password)。这是让你重新设密码的。应该填你新设的密码。最后再将mysql的登陆设置再改回来。做法为:# vi /etc/f把其中的skip-grant-tables删除,然后保存并退出。最后重新启动mysql。至此整个重新设置密码的过程就完了!Mysql的数据库的建立,表的建立,查询(多表联合查询),删除,修改,添加1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql SHOW DATABASES; +-+ | Database | +-+ | mysql | | test | +-+ 3 rows in set (0.00 sec)2、创建一个数据库 Star mysql CREATE DATABASE Star; 注意不同操作系统对大小写的敏感。3、选择你所创建的数据库 mysql USE Star Database changed 此时你已经进入你刚才所建立的数据库Star. 4、 创建一个数据库表 首先看现在你的数据库中存在什么表: mysql SHOW TABLES; Empty set (0.00 sec) 说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。 mysql CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), - birth DATE, birthaddr VARCHAR(20); Query OK, 0 rows affected (0.00 sec)由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。);性别只需一个字符就可以表示:m或f,因此选用CHAR(1);birth列则使用DATE数据类型。 创建了一个表后,我们可以看看刚才做的结果,用SHOW TABLES显示数据库中有哪些表: mysql SHOW TABLES; +-+ | Tables in menagerie | +-+ | mytables | +-+5、显示表的结构: mysql DESCRIBE mytable; +-+-+-+-+-+-+ | Field | Type | Null | Key | Default | Extra | +-+-+-+-+-+-+ | name | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | deathaddr | varchar(20) | YES | | NULL | | +-+-+-+-+-+-+ 4 rows in set (0.00 sec)6、 往表中加入记录 我们先用SELECT命令来查看表中的数据: mysql select * from mytable; Empty set (0.00 sec)这说明刚才创建的表还没有记录。加入一条新记录: mysql insert into mytable - values (abccs,f,1977-07-07,china); Query OK, 1 row affected (0.05 sec)再用上面的SELECT命令看看发生了什么变化。我们可以按此方法一条一条地将所有同学的记录加入到表中。Mysql的多表联合查询存储过程Mysql数据库的备份与还原备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。本专题全面介绍MySQL数据库备份的方法过程和应用技巧!Makefile的编写Makefile其实说白了就是来进行文件编译和连接的一段程序,只不过是在文件中来写的。它主要是对众多的源文件和中间文件的编译和链接起到一个规范的作用。知道什么时候该编译,什么时候不该编译。关键要点就是看源文件和中间文件与目标文件的新旧程度。另外Makefile的核心和主线就是文件的依赖关系。这是最主要的。其次就是具体的书写过程中要用到的各种规则和函数之类的东西。make执行命令时,需要一个Makefile文件,以告诉make如何去编译和连接程序。这是一段很典型的makefile命令,其中object是一个变量。他将所有的目标文件放到了一个变量里,这样就可以每次只改变变量就行了。清空目标规则:Makefile里主要包含了五个东西:显示规则、隐晦规则、变量定义、文件注释和解释。Makefile中只应该有一个最终目标,其他目标应该死是被这个目标给连带出来的。在Makefile中的变量与C/C+中的宏定义基本类似,就是用一个变量来包含很多的中间文件或者其他的文件。在需要用这些文件时,可以直接调用变量就行。而Makefile中有一个特殊的变量“VPATH”。自动推导:GNU的make非常强大,他可以自行推导依赖的文件和依赖文件后面的命令。所以可以不用重复的去写相同的命令。列如下:已经使用了cc-o edit $(objects),所以就没必要一再重复写了!伪目标:.PHONY:cleanclean:rm *.o temp一些琐碎的知识:1. Makefile的文件名一般命名为Makefile或者makefile都行。但是不建议再命名为其他样子。2. Makefile的工作方式: 3. 规范的语法: 其中对Tab键使用的说明尤其值得注意!自动生成依赖性:在一些makefile文件中,我们的依赖关系可能包含了一系列的头文件。例如:“#includedefs.h”,那么我们的依赖关系就为了:main.o:main.c defs.h但是当头文件太多时,这样每一个每一个的写就很费时,所以可以用“-M”选项。就是自动找寻原文件中包含的头文件。命令如下:gcc M main.c输出为:main.o :main.c defs.h但是如果是GNU的C/C+的编译器的话,就应该用“-MM”。因为还使用“-M”的话就会将标准函数库带上,而这是不需要的。1.1.3 Linux常用命令命令由三部分组成,1.命令名字2.命令选项3.命令参数,下面是linux中常用的一些命令,希望对大家有所帮助。1pwd 显示当前工作目录的绝对路径例如:如果当前目录为 /root,则rootlocalhost /root # pwd /root2. ls 显示当前工作目录下的内容 主要选项:-a 显示指定目录下的所有子目录与文件,包括隐藏文件 -l 以长格式显示文件的详细信息 -p 子目录后带“/” 例如: rootlocalhost /root # ls a 3. cd 改变工作目录 主要选项:进入当前目录进入上一级目录例如:rootlocalhost /root # cd(可用pwd命令查看目录的改变) rootlocalhost /root # cd /root/aa 4mkdir 新建目录 例如:rootlocalhost /root # mkdir /root/aa 或 rootlocalhost /root # mkdir aa (在当前目录下新建一个目录aa)5rmdir 删除目录 例如:rootlocalhost /root # rmdir /root/aa 或 rootlocalhost /root # rmdir aa (删除当前目录下的子目录aa)6cat 查看文件内容 主要选项:-n 每行开始位置显示编号 例如:rootlocalhost /root #cat -n filename7.head 查看文件头 例如:rootlocalhost /root # head file1 8Tail 查看文件尾 例如:rootlocalhost /root # tail file1 9chmod 改变文件或目录的权限 用ls - l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一: - 普通文件 d 目录 l 符号链接 b 块设备文件 c 字符设备文件 p 管道文件s 套接字文件c 字符设备文件l 链接文件后面的9个字符表示文件的访问权限,分为3组,每组3位。 第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字 符分别表示对文件的读、写和执行权限。 各权限如下所示: r 读 w 写 x 执行。对于目录,表示进入权限。命令格式:chmod who + | - mode 文件名? 命令中各选项的含义为: 操作对象who可是下述字母中的任一个或者它们的组合:u 表示“用户(user)”,即文件或目录的所有者。 g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 o 表示“其他(others)用户”。 a 表示“所有(all)用户”。它是系统默认值。 操作符号可以是: + 添加某个权限。 - 取消某个权限。 例如: rootlocalhost /root # chmod o+w file1 (增加其他用户对file1的写权限)10tar 压缩目录或文件 常用选项:-cvf 创建一个压缩文件 -xvf 还原并解压缩文件 例如:rootlocalhost /root # tar cvf abc.tar /root/aa (把目录/root/aa下的所有子目录和文件进行压缩,压缩文件名为abc.tar) rootlocalhost /root # tar xvf abc.tar (把abc.tar还原并解压缩)1.1.4 Linux用户管理与用户(user)和用户组(group)相关的配置文件;1)与用户(user)相关的配置文件;/etc/passwd :用户的配置文件;/etc/shadow :用户影子口令文件;2)与用户组(group)相关的配置文件;/etc/group:用户组配置文件;/etc/gshadow:用户组的影子文件;2、管理用户和用户组的相关工具或命令;1)管理用户(user)的工具或命令;useradd:添加用户 adduser:添加用户userdel:删除用户(-r连同家目录一起删除)passwd:为用户设置密码usermod:,设置用户属性,修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;pwcov:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心协运动会策划书
- 2025年大学物理力学力学实验报告写作培训试卷
- 大数据驱动的市场营销策略研究
- 2025工会知识竞赛题库及参考答案
- 支座垫石专项施工方案
- 2025年美容化妆人员考前冲刺练习题含答案详解(培优B卷)
- 2025自考专业(会计)考试彩蛋押题及答案详解一套
- 2024-2025学年度自考专业(护理)能力检测试卷及参考答案详解【达标题】
- 2025年海南省环境科学研究院招聘事业编制专业技术人员(一)模拟试卷含答案详解(轻巧夺冠)
- 2025年美容化妆人员自我提分评估(必刷)附答案详解
- TDTG提升机说明书
- 管线打开作业工作安全分析(JSA)记录表
- 污水处理池 (有限空间)作业安全告知牌及警示标志
- 住院病人药物使用情况评价表
- 阳宅风水培训讲义课件
- 1《材料科学基础》第一章晶体学基础课件
- 威索燃烧器中文说明书
- 大学物理(热学篇)课件
- 电子商务数据分析教学课件汇总完整版电子教案
- 风电场定检项目
- 中国诗词协会入会申请表
评论
0/150
提交评论