linux学习笔记.docx_第1页
linux学习笔记.docx_第2页
linux学习笔记.docx_第3页
linux学习笔记.docx_第4页
linux学习笔记.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

linux 目录结构:/:根目录 一般只存放目录,不存放文件。/etc, /bin, /dev, /lib, /sbin应该和根目录放在同一分区中/bin: /usr/bin:可执行二进制文件的目录,如常用命令 ls, tar, mv, cat等/boot:放置linux启动时用到的一些文件。/boot/vmlinux为linux的内核文件,以及/boot/grub。建议单独分区,分区大小100M即可。/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是加载光驱 mount /dev/cdrom/mnt/etc:系统配置文件存放的目录,不建议此目录下存放可执行文件,重要的配置文件有/etc/inittab, /etc/fstab, /etc/init.d, /etc/X11, /etc/sysconfig, /etc/xinetd.d,修改配置文件前记得备份。/etc/X11存放与X windows相关内容/home:系统默认的用户家目录,当新增用户时,新用户的家目录默认放在此目录下。为当前用户家目录,test 为test用户的家目录,建议单独分区,并设置较大磁盘空间,方便用户存放数据。/lib: /usr/lib: /usr/local/lib:系统使用函数库的目录,程序执行过程中,需要调用一些额外参数的时候需要函数库的协助,比较重要的目录为/lib/modules/lost+found:系统异常产生错误时,会将一些遗失的片段放置与此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘到/disk中,此目录下就会自动产生目录/disk/lost+found/mnt: /media:光盘默认挂载点。通常光盘挂载于 /nmt/cdrom下,不过也不一定,可以选择任意位置进行挂载/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora社群开发软件,如果想要自行安装新的KDE桌面软件,可以将该软件安装在该目录下。以前的linux系统中习惯放在/usr/local目录下/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放在内存中,所以不占用磁盘空间。比较重要的目录有/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk,shutdown,mount等,与/bin不同,这几个目录是给系统管理员root使用的,其他用户只能“查看”不能设置和使用。/tmp:一般用户或正在执行的程序临时存放数据的地方,任何人都可以访问,重要数据不存放在此目录。/srv:服务启动之后需要访问的数据目录。如www服务存放在/srv/www目录下。/usr:应用程序存放目录。/usr/bin:存放应用程序。/usr/share存放共享数据。/usr/lib存放不能直接运行,确实许多程序运行所必需的函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man:程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容。建议单独分区,设置较大磁盘空间。/var:放置系统执行过程中经常变化的文件,如琐事修改的日志文件/var/log,/var/log/message:所有登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大磁盘空间。gdb基本命令file:装入想要调试的可执行文件kill:终止正在调试的程序list:列出产生执行文件的源代码的一部分next:执行毅一行源代码但不进入函数内部step:执行一行函数代码而且进入函数内部run:执行当前被调试的程序quit:退出gdbwatch:动态监视一个变量的值make:不退出gdb而重新产生可执行文件call name(args):调用并执行名为name,参数为args的函数return value:停止执行当前函数,并将value返回给调用者break(简写b):在代码里设置断点,使程序执行到此能被挂起break line-number/function-name:加断点break file-name:line-number/function-name:给指定文件的行或函数前加断点break line-number/function-name if expr:例:break 46 if testsize=100info break:显示所有断点d:删除所有断点delete breakpoint 1:删除编号为1的断点disable breakpoint 1:禁用某断点enable breakpoint 1:启用某断点clear number:清楚第number行的断点set args b x:设置参数show args:显示参数whatis:识别数组或变量的类型ptype:比whatis更强大,可以提供一个结构的定义set variable:将值赋给变量print n:打印变量,给变量赋值文件系统文件系统由四部分组成:引导块,超级块,索引节点表,数据块 引导块用来存放文件系统的引导程序,用于系统引导或启动操作系统。如果系统未安装操作系统,则引导块为空。超级块描述本文件系统管理的资源,包含空闲索引节点表和空闲数据块表。具体说明文件系统的资源使用情况。超级块由如下字段构成:文件系统的规模(如inode数目、数据块数目、保留块数目和快的大小等)。文件系统中空闲块的数目。文件系统中部分可用的空闲块表。空闲块表中下一个空闲块号。索引节点表的大小。文件系统中空闲索引节点表数目。文件系统中部分空闲索引节点表。空闲节点索引表中下一个空闲索引节点号。超级块的锁字段。空闲块表的锁字段和空闲索引节点的锁字段。超级块是否被修改的标识。其他字段。索引节点表用来存储文件的控制信息,每个节点对应一个文件。一个文件的控制信息通常由索引节点(inode)给出。每个inode对应一个文件。在inode中包含有文件数据在磁盘上存储的位置信息,包含有存取权限、文件所有者和存取时间等信息。索引节点存储在磁盘上,内核把inode读进内存索引节点来操作它和它所对应的文件。把存储在磁盘上的inode称为磁盘索引节点,把它在内存中的映像称作为内存索引节点。磁盘索引节点由如下字段构成:文件类型:普通文件、目录文件、链接文件、设备文件、管道文件。文件链接数:记录了引用该文件的目录表项数,即记录了有多少个文件名指向该文件。文件属主标识:该文件所有者id文件的访问权限:属主,同组和其他用户的权限。目录文件的执行权限指修改目录的权力。文件的存取时间:最后修改时间,最后访问时间,最后修改索引节点时间。文件的长度:字节表示。文件的数据块指针:对文件操作的当前位置指针。数据块是磁盘上存放数据的磁盘块,包括目录文件和数据。open函数:int open(const char *pathname, int flags,/*mode_t mode*/);flags选项:O_RDONLY、O_WRONLY、O_RDWR:分别为0、1、2。不能用OR方法联合使用O_CREAT:文件不存在时创建,需用到mode参数O_EXCL:如果同时指定了O_CREAT,而文件已存在,则会出错,用此可以测试一个文件是否存在,如果不存在,则创建。O_NOCTTY:当文件名(可以包含路径,即第一个参数pathname)指向一个终端设备,它将不再是进程控制端的终端,即使该进程没有一个终端设备。O_TRUNC:如果文件存在,则该文件将被截断,即长度截断为0.注意:文件没有以写方式打开,也可以截断,截断后属主和属性不变。O_APPEND:文件以追加方式打开,每次进行写操作时,文件指针都会被放置到文件末尾。O_NONBLOCK / O_NDELAY:当文件以非阻塞方式打开后,对于open及虽有的对该文件的操作,都会及时返回,而无需进程等待。对于普通文件和目录文件无效,但对于管道等进程间通信的操作有用。O_SYNC:文件以同步I/O方式打开。任何写操作都会是的进程被阻塞,知道物理写完动作完成为止。进程每一个进程用一个task_struct数据结构来表示。数组task包含指向系统中所有task_struct结构的指针,task数组大小缺省值一般为512。当前运行进程的结构用current指针表示。task_struct数据结构按功能分成一些组成部分:状态(state):除运行、就绪、等待外,还有stopped和zombie状态。调度信息:系统根据这些信息判断哪个进程最迫切需要运行进程标志号:用来区分进程的标识。每个进程都有唯一的进程识别号(process ID),除此之外,还有一个真实用户识别号(real user ID)、一个真实组识别号(real group ID)、一个有效用户识别号(effective user ID)和一个有效组识别号(effective group ID)。进程间通信机制:Linux支持经典的Unix IPC机制。如信号、管道和信号灯以及System V中机制,包括信号量、消息队列和共享内存。进程通信IPC(InterProcess Communication):进程间通信主要有以下目的:1、数据传输:一个进程发送数据到另一个进程,发送的数据量可能是一个字节到几M字节之间。2、共享数据:多个进程想要操作共享的数据,一个进程修改了数据,其他共享该数据的进程应该立即看见这个变化。3、通知事件:当一些事件发生时,进程也许会向另一个进程发消息通知事件的发生。比如,进程终止时,它要通知它的父进程。4、资源共享:5、进程控制:shell编程1、输入文件名,删除该文件#! /bin/shif test $# -eq 0thenecho please input a parameterelsegzip $1mv $1.gz $HOME/dustbin #deleteecho file $1 is deletedfi2、删除目录下所有的.gz文件for i in ./*.gzdorm -rf $iecho $i is deleteddone3、显示信息echo Mr. $USER, first parameter is $1 #show user nameecho &date +%B%d%A #show data in a particular formatecho totally $# parameters #show total parameter numberecho program name is $0 #show program nameecho last is $? #show last return valueecho $* #show all parameters in a string4、for循环total=0for(j=1;j100;j+);doif test $j -eq 20thenecho $jfitotal=expr $total + $jdoneecho total=$totalfor i in a,b,c 1 2 3,dd,ddoecho $idone5、while循环i=1m=0while test $i -lt 10do i=expr $i + 1echo $i;doneuntil循环i=0;until test $i -gt 10doi=expr $i + 1echo $idone6、ifelse结构read iif test $i -eq 1thenecho i=1elif test $i -eq 0thenecho i=0elseecho i errorfi7、case格式read icase $i in1|2) echo i = 1 or 2;3|4)echo i= 3 or 4;*)echo other value;esac8、函数与调用#! /bin/shadd()a=$1b=$2m=expr $a + $b echo sum = $madd $1 $29、调用其他文件t1echo this is t1t2:./t1线程线程作为一种多任务、并发的工作方式,有以下优点:1 提高应用程序响应。2 使多cpu系统更加有效。3 改善程序结构。一个进程是一个复合的实体,可以分为两个部分:线程的集合和资源的集合。线程是一个动态的对象,它表示进程中的一个控制点,并且执行一系列指令。资源包括地址空间,打开的文件、用户凭证和配额等,这些资源为进程中所有线程所共享。此外每一个线程有它自己私有对象,如程序计数器、堆栈和寄存器的值。用户态线程:用户态线程在管理上不需要内核的参与,所以通常又称为“协作式多任务”,在进程内这些线程统一由用户程序来切换,所以每一个线程在执行完任务后,调用任务切换功能,并向其发送信号,任务切换完成。线程对cpu资源的占用也切换到其他线程。内核态线程:内核态线程是由内核来管理的,在每一个时间片内,内核负责调度进程内的线程。由于内核参与了用户态进程的调度,所以就涉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论