Linux系统管理1--linux复习笔记

Linux系统管理1--linux复习笔记
Linux系统管理1--linux复习笔记

EXT3文件系统

文件系统磁盘结构

组描述符的作用

在超级块之后,是由多个块组成的组描述符表。分区中有多少个块组,就有多少个组描述符表。每一个组描述符表都会给出这个块组中的一些简要信息。例如在这个块组中从哪里开始是inode表,从哪里开始是数据块,空闲的inode和数据块还有多少个等等特殊的inode编号

Inode为2是分区的根目录文件的inode

Inode为7是预留块,当扩大文件系统(分区)时(先采用lvm或者类似的工具扩

大分区或者卷的大小,然后再采用ext2resize或者类似工具来完成ext3或者ext4

文件系统的在线增长),这些预留块用于存放组描述符。

Inode为8是日志

可正常使用的第一个inode编号为11

目录文件的结构

定义和作用:用于存储文件名和inode的对应关系

一个目录文件的大小为文件系统块大小的整数倍

rec_len:目录项的长度,必须是4的倍数,字节为单位

name_len:文件名的长度,字节为单位

inode、rec_len、name_len、file_type四项的长度是固定的8字节,但name的长度并不是rec_len的值减去8,而是和name_len的值相符。既在name值的后面,有时仍有一些字符不属于文件名,但长度记在rec_len中。这是因为删除文件时,并不删除该条目录项,而只是简单的修改前一条目录项的rec_len。

比如一个目录中有两个文件file1和file2,目录文件中有4个目录项,.、..、file1、file2。目录项“.”的rec_len为12,但name的值是“.”,即只有1个字节;目录项“..”的rec_len 的值为140;file1的rec_len的值为28,file2的rec_len的值为3916。总大小是4096。

计算题

块组大小计算:

一个块组有多少个块取决于块大小(也可以在创建文件系统时用“-g”参数指定,不过它只用于开发者测试用,对用户无意义)。块组内数据块的使用情况在块位图中表示,块位图占用一个块。如果块大小为4096字节,则每个数据块有"4096×8=32K"个二进制位,因此一个块组中就可容纳32K个数据块;一个块组占据的磁盘空间为"32K×4K=128M"。

单个文件的最大尺寸:

一个指向一个数据块的指针为32bits,即4Bytes,若一个磁盘块为1K,则一个磁盘块可容纳256(28)个指针,可指向256(28)个数据块,即一个一级间接索引可以确定28×1K=256K 大小的文件;一个二级间接索引可以确定28×28×1K=64M大小的文件;一个三级间接索引可以确定28×28×28×1K=16G大小的文件。若数据块大小为2K,则一个磁盘块可容纳512(29)个指针,则一个三级间接索引可以确定29×29×29×2K=256G大小的文件;若数据块大小为4K,则一个磁盘块可容纳1024(210)个指针,则一个三级间接索引可以确定210×210×210×4K=4T大小的文件,此值是理论值,由于标准库使用32位宽的long类型变量(有符号)表示文件内的位置,这将文件大小限制在231字节,因此实际限制在2T。

Ext3文件系统的日志

三种日志模式的操做过程及其性能差异

在Ext3文件系统中,日志由三种模式:完全、顺序(预定)、写回。

完全:将元数据和数据先写进日志,然后在写进相应的磁盘位置。既这种模式需要把数据写进磁盘两次。

顺序(预定):先将数据写进磁盘,在把元数据写进日志、再把元数据写进磁盘。

写回:元数据先写进日志,再写进磁盘,数据写进磁盘、但数据和元数据的写入没有固定的先后顺序。这种形式可以保证元数据的一致性,但不能保证数据的一致性。 Full Data

Journal(Data+Inode)

Journal(Commit)Fixed(Data+Inode)Sync

将Inode 和数据写进日志

日志写入完成,

准备写进磁盘在适当的时候写进磁盘

一般情况下,性能最好的是写回,最差的是完全。但在异步随机写时,完全日志的性能会最好。因为写进日志时不需要随机写,而从日志写进文件时,随机写已经被调整成顺序写。写回的性能比顺序稍好一点点。

日志事物包含的各个块及其作用

日志文件的第一个数据块是日志超级块,后面的块按事务分成组,一个事务包含一组块。一个事务包含以下块:描述块、元数据块、提交块、撤消块。其中,若是FULL DATA日志模式,则元数据块包含元数据块和数据块。

日志超级块中包含了日志文件块大小、日志文件包含的总块数、第一个事务的序列号等信息描述块包含一个描述项列表,每一项都包含文件系统的块号,这个块号与日志的元数据块依次对应

提交块只有12字节的标准头,它表示本事务结束。

撤消块在12字节标准头之后,是一个已取消修改的块列表,撤消块应用在序列号等于或小

于撤消块的序列号的所有事务中。表示本事务撤销

文件系统的缓存

缓存的种类

dentry缓存和inode缓存(inode),Page缓存和Buffer缓存(元数据和数据)。

Buffers存储的是文件的元数据块

Cached存储的是文件的实际数据

pdflush运行机制

数据回写:周期性的和强制性的

pdflush线程隔一段时间启动一次,默认是5秒

只写回变脏超过一段时间的页,默认是30秒

每次写回的总页数不超过1024

默认情况下,并发的pdflush线程是2,最大是8.

当系统中超过1秒钟没有空闲的pdflush线程,则启动一个新的pdflush。若某个线程的空闲时间超过1秒,则销毁它

若一次写回的时间超过一个周期,则推迟1秒再启动下一次pdflush线程

若某个页被锁而不能写回,可跳过或等待

写回分同步和异步两种

必须写回设备的情况属于同步写回,称作数据完整性回写

各项调优参数的含义

dirty_background_bytes:缓存中的脏数据达到设定值时,启动pdflush开始强制写回。

dirty_background_ratio:缓存中的脏数据达到设定的比例时,启动pdflush开始强制写回。

dirty_ratio:某个进程产生的脏页到达此比例时(默认为20%,但不能小于5%),开始强制写回。

dirty_bytes:某个进程产生的脏页到达此字节数,开始强制写回。

dirty_expire_centisecs:时间值,当页变脏时间超过此值时,pdflush将其写回。dirty_writeback_centisecs:时间值,为pdflush的调用周期

drop_caches:用于释放页缓存、dentry缓存和inode缓存。

vfs_cache_pressure:用于确定回收dentry缓存和inode缓存的策略,默认值是100。小于100表示倾向于保留dentry缓存和inode缓存。。。。。。

nr_pdflush_threads:当前并发的pdflush线程数,该参数只读不可改。

IO调度

以BIO结构为基本的读写单位。前置合并(front merge)和后置合并(back merge) deadline调度器下,一共有5个队列,一个是块设备的请求队列,调度器的任务是从其它四个队列中挑出一个请求放进块设备的请求队列。fifo队列:等到排序队列

各种调度器的适用范围

Noop调度器:适用环境:嵌入式系统、拥有智能raid控制器或固态磁盘的计算机。(简单,减少CPU)

Deadline调度器适用环境:数据库服务器。目标:任何请求都会在一定时间内得到服务CFQ调度器适用于通用服务器、多媒体应用(video,audio)和桌面系统。将I/O带宽均匀分配给各个进程,但同时考虑了优先级、deadline和anticipatory。

deadline各项调优参数的含义

fifo_batch:一批请求的最大数目,默认是16

front_merges:是否执行扇区前置合并,默认为1,即执行

read_expire:读请求的超时时间,默认为500ms

write_expire:写请求的超时时间,默认为5s

writes_starved:写请求队列的调度频率,默认是2。即发送两批读请求之后,发送1批写请求。

CFQ调度器的优先级

优先级分为3类:RT(real-time)、BE(best-effort)、Idle。RT和BE各有8个等级,0的优先级最高、7的优先级最低。具有RT优先级的请求优先被执行,没有RT之后才执行BE,没有BE之后才执行Idle。同一优先级类的进程通过时间片长短来体现优先级的高低。

CFQ各项调优参数的含义

back_seek_penalty:反向寻道的代价。即相对于正向寻道,反向寻道相同数目的扇区所需要花费的时间,是正向寻道所需时间的倍数。此参数用于队列的扇区排序。默认是2

back_seek_max:反向寻道最大数值,默认是16M。超过此值,则遵循电梯原则

fifo_expire_sync(同步):同deadline调度,fifo队列头的请求超时时间。默认为125ms

fifo_expire_async(异步):同上。默认为250ms

low_latency:桌面模式,当打开时,会加速写操作的交互时间。默认开启。在服务器上可关闭它。

quantum:一次从队列中发给驱动的请求数,默认为4

slice_sync:同步请求队列优先级的基准时间片,即BE类优先级为4的队列的时间片,默认为100ms,每一级相差20ms

slice_async:默认是40ms,每一级相差20ms

slice_idle:队列已空,但时间片未用尽,等待下一个请求到达的时间。默认为8ms。此等待时间对于寻道时间长的块设备很有用,但对于raid来说,寻道时间并不重要,因此将此值设为0更有效率。

slice_async_rq:基础值,用于确定一个发送给驱动的最大异步请求数目,当超过此数值,即使未用尽时间片,也认为它超时,开始调度下一个队列。

IO编程模型

四种编程模型的含义

同步阻塞:发出I/O读写请求,并等待结果。内核阻塞该进程,做上下文切换,调度其它进程来执行。

它一次只能处理一个I/O,当遇到多个I/O时,只能通过多线程或多进程的方法。

同步非阻塞:发出I/O请求,并要求立刻返回结果,如果结果没有返回(返回EAGAIN错误),

则继续发请求,直至返回结果。

它可以处理多个I/O,但它并不知道哪个I/O已经准备好,花费了大量的CPU时间来不停的发起I/O。

异步阻塞:异步阻塞I/O是对通知事件进行阻塞,而不是对I/O 调用进行阻塞。即当有通知到达时,一定有某个I/O是已经ready的。若是单个I/O,则这种方式无意义,但当有多个I/O时,进程不会因为某一个I/O被阻塞而影响其它已经ready的I/O。

优点在于采用消息通知机制,可以发出成千上万的I/O请求,因此性能较好。缺点在于它是单进程机制,若某一I/O处理过程中出现问题而挂起,会导致进程挂起,其它I/O处理也无法进行了。

异步非阻塞:采用多线程或多线程方式实现。当发出I/O请求后,进程转而处理其它事情,等I/O返回后,再去处理它。

使用多进程或多线程机制,优点在于一个I/O操作出现问题不会影响其它。缺点在于创建新的进程或线程会增加CPU和内存开销,大量的I/O会导致性能下降,内存消耗严重。

编译内核

各种查找驱动方法的过程

Suse_Linux常用命令小结

1、Suse9下配置默认网关 a、在/etc/sysconfig/network/routes文件下添加如下行: default 网关IP地址 - - b、重启网络服务 # /etc/init.d/xinetd restart # rcnetwork restart c、查看路由 # netstat -r 2、Suse9下开启telnet服务 a、修改/etc/xinetd.d/telnet文件:disnable=no 如果/etc/xinetd.d下不存在telnet文件,可能是telnet服务包没有安装,需要通过光盘安装好。 b、修改/etc/pam.d/login文件,注释如下行,允许root用户telnet "auth required pam_securetty.so" c、编辑/etc/securetty文件 # vi /etc/securetty 在文件中增加下面的内容: pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9

d、重启网络服务 # /etc/init.d/xinetd restart # rcnetwork restart 3、Suse9下开启FTP服务 a、修改/etc/xinetd.d/vsftpd文件:disnable=no b、修改/etc/vsftpd.conf文件,取消如下行的注释: write_enable=YES local_enable=YES local_umask=022 ascii_upload_enable=YES ascii_download_enable=YES c、修改/etc/ftpusers,注释掉允许ftp的用户,如root d、重启网络服务 # /etc/init.d/xinetd restart 4、Suse9下配置rlogin a、配置用户$HOME目录下的.rhosts文件 # vi .rhosts 主机名1 用户名 主机名2 用户名 b、修改/etc/xinetd.d/rlogin文件:disnable=no c、修改/etc/pam.d/rlogin文件,注释如下行,允许root用户rlogin "auth required pam_securetty.so" d、重启网络服务 # /etc/init.d/xinetd restart 5、查看版本、内核 # cat /etc/issue Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel \r (\l).

(完整版)linux文件系统管理-权限管理实验4报告

实验报告 课程Linux系统应用与开发教程实验名称linux文件系统管理-权限管理(高级设置) 一、实验目的 1、掌握Linux文件系统权限的设置 2、掌握linux用户帐号与组管理 3、掌握linux 文件共享的设置方法 4、掌握linux 文件共享的权限设置方法 二、实验内容 1、使用root帐号通过系统提供的6个虚拟控制台登陆到linux,或在x-windows开启一个终端。 2、完成以下的实验内容 (1)、假设你是系统管理员:现要在公司linux服务器系统中新增一些用户与一个用户组。 ?使用groupadd account 添加一个名为account的组 ?使用useradd -G account acc-user1,(该命令将添加一个用户名为acc-user1的用户, 同时会建立一个与用户名同名的私有组(该私有组为用户的默认组,这个组中只有一个用户名),并把该用户将加入account的标准组,同时,按同样的方法建立acc-user2、acc-user3、acc-user4。 ?建立用户后,请使用x-window中的用户与组管理工具查看用户与组建立情况,检查用户与组的归属情况。 (2)、开启多个控制台,分别使用acc-user1、acc-user2、acc-user3登陆系统(可以在控制台分别登陆,也可以在X-windows中多开几个终端程序,默认使用root登陆,然后使用su命令通过切换用户的方式登陆,其语法为“su - user-name”,提示可以在登陆成功后运行命令“id”查看当前登陆的用户属于哪些组,当前的默认组是什么?) (3)、为account组建立一个公共共享目录/home/account-share,满足以下的权限设定要求,以及设置何种的umask: ?该目录的拥有者为acc-user1,所属组为account。 ?在该目录下建立一个/home/account-share/full-share的子目录,修改该目录的权限,使得account组的成员均能在对该目录有完全控制权限,account组外的其他用户没有任何权限,即account组的成员都可以在该目录下建立文件,同时在该子目录full-share下建立的文件,只有文件建立者有权限删除,并且每个用户在该子目录full-share下建立的文件也能自动与该account组成员可读共享。 ?在/home/account-share/为每个用户建立一个与用户名同名的子目录(如/home/account-share/acc-user1为用户acc-user1的目录,其拥有者为acc-user1,所在的组为account),配置该子目录的拥有者有完全控制权限,而同组用户只能读取,同时在用户在该目录下建立的文件,可供同组用户读。 (4)、考虑完成以上的共享目录权限设置,应注意哪些设置。包括目录的权限,目录的拥有者,目录所在的组,具体文件的权限,umask设置等。 (5)、实验报告应体现出使用不同身份的用户对所配置目录的访问测试过程。 三、实验环境 安装有vmware或visual pc软件的window主机,系统中有提供turbolinux或redhat的硬盘

linux经典面试题(常用命令总结)

关于面试总结7-linux经典面试题 现在做测试的出去面试,都会被问到linux,不会几个linux指令都不好意思说自己是做测试的了,本篇收集了几个被问的频率较高的linux面试题 1.说出10个linux常用的指令 ?ls 查看目录中的文件 ?cd /home 进入‘/ home’目录;cd .. 返回上一级目录;cd ../.. 返回上两级目录 ?mkdir dir1 创建一个叫做‘dir1’的目录 ?rmdir dir1 删除一个叫做‘dir1’的目录(只能删除空目录) ?rm -f file1 删除一个叫做‘file1’的文件’,-f 参数,忽略不存在的文件,从不给出提示。?rm -rf /mulu 目录下面文件以及子目录下文件 ?cp /test1/file1 /test3/file2 如将/test1目录下的file1复制到/test3目录,并将文件名改为file2 ?mv /test1/file1 /test3/file2 如将/test1目录下的file1移动到/test3 目录,并将文件名改为file2 ?mv * ../ Linux当前目录所有文件移动到上一级目录 ?ps -ef|grep xxx 显示进程pid ?kill 使用kill命令来终结进程。先使用ps命令找到进程id,使用kill -9命令,终止进程。 ?tar –xvf file.tar 解压 tar包 ?unzip file.zip 解压zip ?unrar e file.rar 解压rar ?free -m 查看服务器内存使用情况 2.如何查看所有java进程 ?grep是搜索关键字 ps -ef | grep java ?-aux 显示所有状态 ps -aux | grep java

linux读书笔记

12.29 Linux系统 Linux是真正的多用户、多任务操作系统。它继承了UNIX系统的主要特征,具有强大的信息处理功能,特别在Internet和Intranet的应用中占有明显优势。是一个完整的UNIX类操作系统。它允许多个用户同时在一个系统上运行多道程序。真正的32位操作系统。 用户接口 用户接口定义了用户和计算机交互作用的方式。Linux操作系统提供4种不同的用户接口。命令行接口 命令行是为具有操作系统使用经验,熟悉所用命令和系统结构的人员设计的。功能强大,使用方便的命令行是UNIX/Linux系统的一个显著特征。支持命令行的系统程序是命令解释程序。它的主要功能是接收用户输入的命令,然后予以解释并执行。 “$ ”是系统提示符。 在UNIX/Linux系统中,通常将命令解释程序称为shell。各种Linux环境下都安装了多种shell。这些shell由不同的人编写并得到一部分用户的青睐,各有其优势,最常用的几种是Bourne shell(sh),C shell(csh),Bourne Again shell(bash)和Korn shell(ksh)。红旗Linux 的默认shell是bash。 Bash 菜单 图形用户接口 程序接口 程序接口也称为系统调用接口。用户在自己的C程序中使用系统调用,从而获得系统提供的更基层的服务。 系统调用是操作系统内核与用户程序,应用程序之间的接口。在UNIX/Linux系统中,系统调用以C函数的形式出现。例如:fd=fopen(“file1.c”,2);其中,open是系统调用。 所有内核之外的程序都必须经由系统调用才能获得操作系统的服务。系统调用只能在C程序中使用,不能作为命令在终端上执行。由于系统调用能直接进入内核执行,所以其执行效率高。 Linux的版本 Linux有两种版本:核心(Kernel)版本和发行(Distribution)版本。 核心版本 核心版本主要是Linux的内核。Linux内核的官方版本由Linus Torvalds本人维护着。核心版本的序号由三部分数字构成,其形式为:major.minor.patchlevel 其中,major是主版本号,minor是次版本号,二者共同构成了当前核心版本好;patchlevel 表示对当前版本的修订次数。例如:2.6.34表示对2.6核心版本的第34次修订。

linux常用命令大全

& &命令可用在其他任何命令的后面,它用来通知计算机在后台运行某一命令。通过把作业放在后台,用户可以继续使用当前的shell来处理其他命令;如果命令在前台运行的话,那么用户在此进程结束前不能继续使用当前的shell。 adduser adduser命令由root或其他具有权限的管理员用来创建新用户,跟在adduser命令后面的是所要创建的帐号名,例如:adduser flying alias alias命令用来设置命令的别名或替代名。一般说来别名往往是实际命令名的缩写。例如用户为ls设置一个别名dir: alias dir=ls 若仅输入alias本身时,系统将显示当前所有的别名。 bg bg命令用来迫使被挂起的进程在后台运行。例如,当你已经在前台启动了一个命令时(没有在此命令后使用&),你才想到这一命令将运行较长一段时间,但你这时还需使用shell。在这种情况下,可通过ctrl+z挂起当前运行的进程。此时你既可以使它长期挂起,也可以通过输入bg把这一进程放到后台运行。这样shell就可以用来执行其他的命令了。 cat cat通常是用来在屏幕上滚动显示文件的内容。它的格式是: cat〈filename〉 cd cd用来改变目录。这一命令非常有用,它有三种典型的使用方法。 cd移到目录树的上一层 cd~移动到用户的主目录,与单独使用cd相同 cd directory name改变到指定的目录 cp cp用来拷贝对象。例如要把file1拷贝到file2,用如下命令: cp file1 file2 dd dd命令用来转换文件格式。 fg fg命令用来激活某个被挂起的进程并使它在前台运行。当有一个进程正在运行时,由于某种原因需要挂起它,在执行完其他任务后,需要重新把这一进程调到前台运行,这时便可用bg命令使这一进程继续运行。 find find命令用来查找指定目录的文件。当找到后将按照用户的要求对文件进行处理。语法是: find以它为起点进行搜索的目录想要查找的文件名或元字符对文件执行的操作 grep grep命令用来在指定的对象中搜索指定的文本。语法是:grep〈text〉〈file〉。它还可以和其他命令的结果联合使用,例如: ps -ef|grep-v root 这一命令要求grep接受ps命令的输出,并除去所有包含单词root的进程(-v的含义是显示与文本不匹配的内容)。在不使用-v选项时,这一命令将显示进程清单中所有包含单词root的进程。 halt halt命令用来通知内核关闭系统,它是一个只能由超级用户执行的命令。 hostname 既可以用来显示系统当前的主机名或域名,也可用来设置系统的主机名。 login 当向系统注册时,将使用login。login命令也可用来随时从这一用户改变到另一用户。 logout

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

达内linux基本操作笔记

登陆服务器时输入公帐号openlab-open123 telnet 192.168.0.23 自己帐号sd08077-you0 ftp工具192.168.0.202 tools-toolss 老师测评网址http://172.16.0.198:8080/poll/ 各个shell 可互相切换 ksh:$ sh:$ csh:guangzhou% bash:bash-3.00$ 一、注意事项 命令和参数之间必需用空格隔开,参数和参数之间也必需用空格隔开。 一行不能超过256个字符;大小写有区分。 二、特殊字符含义 文件名以“.”开头的都是隐藏文件/目录,只需在文件/目录名前加“.”就可隐藏它。 ~/ 表示主目录。 ./ 当前目录(一个点)。 ../ 上一级目录(两个点)。 ; 多个命令一起用。 > >> 输出重定向。将一个命令的输出内容写入到一个文件里面。如果该文件存在,就将该文件的内容覆盖; 如果不存在就先创建该文件,然后再写入内容。 输出重定向,意思就是说,将原来屏幕输出变为文件输出,即将内容输到文件中。 < << 输入重定向。本来命令是通过键盘得到输入的,但是用小于号,就能够使命令从文件中得到输入。 \ 表示未写完,回车换行再继续。 * 匹配零个或者多个字符。 ? 匹配一个字符。 [] 匹配中括号里的内容[a-z][A-Z][0-9]。 !事件。 $ 取环境变量的值。 | 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。 |经常跟tee连用,tee 把内容保存到文档并显示出来。 三、通用后接命令符 -a 所有(all)。 -e 所有(every),比a更详细。 -f 取消保护。 -i 添加提示。 -p 强制执行。

linux常用的60个命令

Linux必学的60个命令 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。

NOSLinux 【单元测验】Linux文件系统与磁盘管理(2)

【单元测验】Linux文件系统与磁盘管理(2) 回顾第 1 次试答 结束回顾 开始时间2012年03月 22日星期四 08:18 完成于2012年03月 22日星期四 08:23 耗时 5 分钟 1 秒 分数6/16 成绩37.5超出最大限度 100(38%) 反馈要加油啰 Question 1 分数: 1 以下命令返回的结果是什么?ln file1 file2 选择一个答案 A. file2将成为file1的符号链接 B. 命令格式错误,需要使用参数 C. 无论file1的尺度是多少,file2将固定为5字节 D. file1和file2有相同的索引节点 链接文件分为硬链接(不加参数)和符号链接(加-s参数) 硬链接内容和原文件保持同步,他们具有相同的索引节点信息(磁盘的具体物理位置),移动、删除或修改他们中的任何一个都不影响通过另一个访问该文件 符号链接只是快捷方式,原文件删除,将导致该符号链接失效 正确 这次提交的分数:1/1。 Question 2 分数: 1 以下哪个命令可将file1复制给file2? 选择一个答案 A. cat file1 > file2 B. copy file1 file2 C. cat file1 file2> file1 D. cp file | file2

cp命令可以复制文件,格式为 cp 源文件目标文件,无需加管道符号“|” cat本来是输出文件内容到屏幕,加了“>”重定向符号后也可以将文件内容重定向输出指定文件中,这样就可以实现复制文件的目的 正确 这次提交的分数:1/1。 Question 3 分数: 1 如果newdir/file2文件不存在,但是目录newdir已存在,mv file1 newdir/file2命令将有什么结果? 选择一个答案 A. file1将被复制到newdir并命名为file2 B. 将报错,因为以上不是有效的命令 C. file1将被移动到newdir并重命名为file2 D. file1将被删除 mv可以更名也可以移动,具体看命令参数 mv 文件1 文件2——将文件1更名为文件2 mv 目录1 目录2——将目录1更名为目录2 mv 文件1 目录2——将文件1移动到目录2 mv 文件1 目录1/文件2——将文件1移动到目录1,并更名为文件2 正确 这次提交的分数:1/1。 Question 4 分数: 1 如何从文件中查找显示所有以“#”打头的行? 选择一个答案 A. grep -n "#" file B. find "\#" file C. grep -v "#" file D. wc -l "#" find查找的对象和结果都是文件 grep查找的对象和结果是输出结果中的行 -c 显示符合条件的行数 -i查找时不区分大小写 -n显示行号

linux总结

1软件通常分为系统软件、应用软件、支撑软件 2 操作系统是用户与计算机硬件之间的界面,它是控制、管理计算机系统内各种硬件和软件资源,有效的组织多道程序运行的系统软件。 3 Linux系统吧计算机系统中的硬件资源和软件资源有机地结合在一起,从而提供丰富的功能,包括:控制硬件、管理资源、提供用户接口,处理输入/输出、监视系统、通信。 4 Linux的优点:1与UNIX系统兼容 2自由软件和源码公开 3 性能高和安全性强 4 便于制定和再开发 5 互操作性高 5 Linux 有俩种版本:核心(Kernel)版本和发行(Distribution)版本 6 Linux核心版本根据约定,若版本号为奇数,则表示该版本加入新内容,但不一定稳定,为测试版本。若版本号为偶数,则表示这是一个可以使用的稳定版本 7 安装红旗Linux需要俩个必备的分区,即一个根文件系统分区(类型为ext3,ext2或reiserfs)和一个交换分区(类型为swap) 8 Linux操作系统支持以下文件类型:普通文件、目录文件、设备文件和符号链接文件。 9 设备文件除了在文件I节点中存放属性信息外,他们不包含任何属性信息外,它不包含任何数据,系统利用它们来标记各个设备驱动器 10 符号链接文件时一种特殊文件,提供对其他文件的参照 11 cp命令将源文件或目录复制到目标文件或目录中 12 rm命令删除文件或目录 13 mv命令对文件或目录重新命令,或者将文件从一个目录移到另一个目录中。 14 wc命令统计指定文件的字节数、字数、行数,并将统计结果显示出来 15 绝对路径名和相对路径名的联系与区别 联系:当为命令指定文件路径名是,要指定俩种路径中一种 区别:绝对路径名总是以斜线字符(/)开头 相对路径不能以斜线字符开头 16 硬链接:建立硬链接时,在别的目录或本目录中增加目标文件的一个目录项,这样的一个文件就登记在多个目录中 17 符号链接(软链接)是将一个路径名链接到一个文件,这些文件是一种特别类型的文件 18 软硬链接的区别:1软链接建立了一个新文件而硬链接没有建立新文件 2 软链接没有硬链接的限制,可以对目录文件建立软链接,也可以在不同文件系统之间建立软链接 19 chgrp命令改变文件或目录所属的用户组 20 chown命令改变某个文件或目录的所有者和所属的组 21 ps命令查看当前系统中运行的进程信息 22 kill命令用来终止一个进程的运行 23 vi编辑器三中工作方式:命令方式、插入方式、ex转义方式 24 退出vi的命令 :wq :ZZ :x :q! 四种 25 执行shell脚本的方式: 1 输入定向到shell脚本 2 以脚本名作为bash 参数 3 将shell脚本的权限设置为可执行 26 名称补全的方法是输入目录或文件名的开头部分,然后按Tab键 27 通配符用于模式匹配(四种 * ? [字符组] !) 27 由双引号括起来的字符除($ ‘ \)均作为普通字符对待

常用总结linux命令

Linux与unix对比: 1. Unix的历史久于linux. Linux的思想源于Unix 2. UNIX是商业软件,而Linux是自由软件,免费、公开源代码。 3. linux的核心是免费,核心开放自由使用.而unix的核心并不公开。 Linux的应用领域: 服务端,嵌入式,家庭信息的系统 网络嵌入式:虚拟私有网络(VPN),路由器(Router) 家电生活:影像电话、数字监视系统 服务端:web服务器,Linux系统 Linux有哪些版本: Febora,ubuntu,redhat(中国),debian,centOS Vmware虚拟机的介绍: 虚拟机的定义:是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 虚拟机的特点: 1.基于一台电脑 2.虚拟多台计算机 3.便于安装和删除 Vmware虚拟机操作 1.虚拟机界面布局 2.虚拟机操作功能 3.新建虚拟机系统 虚拟机与物理机的异同: 虚拟机使用的技术:虚拟技术 虚拟机与物理机异同 1. 保证主机的快速运行,减少不必要的垃圾安装程序 2.安全性高:保密比较好的,单独在一个环境下面运行 3.使用方便:在虚拟机中随便安装和彻底删除 4.费用便宜:维护降低,降低软硬件设备的成本 1.2 安装Linux时最少需要两个分区硬盘分区(至少分/、swap(Swap交换分区设为物理内存的二倍), 可多分一个/home作为练习) Linux的安装步骤: 1、载入系统数据 2、系统分区划分 3、系统初始配置 Linux的系统目录: / 根目录,存放系统命令和用户数据等 /boot 存放与Linux启动相关的程序 /home 用户目录,存放普通用户的数据 /tmp 临时文件 /usr 是存放软件的地方,如有可能应将最大空间分给它 /usr/local 自已安装程序安装在此

linux笔记

1.ls:查看当前路径下的文件以及文件夹的名字 2.ls /bin:查看根目录下的bin文件夹的东西 3.cd Desktop进入到Desktop文件夹 4.cd ..跳转到当前路径的上一层 5.pwd:显示当前操作的路径(绝对路径) 6.clear:清屏 7.绝对路径:/home/python 8.相对路径:cd downloads 9..表示当前路径 10...表示上一层路径 11.c d -:跳转到上一层所在的路径 12.t ab自动补全 13.t ouch 1.txt 创建文件 14.l s * 表示显示所有文件 15.l s *.txt 表示显示以所有.txt结尾的文件 16.l s*.t[xn]t 表示显示以txt或者tnt结尾的所有文件 17.m ore 查看文件的内容 18.l s–alh | more 查看文件的内容并以管道符号进行连接 19.c d ~切换到当前用户的主目录 20.m kdir 创建文件夹 21.m kdira/b/c –p 连续创建文件夹 22.t ree 以目录数的方式显示

23.r mdir 删除文件夹(必须是空目录) 24.实物图操作的文件不会被删除直接进回收站 25.用命令删除的文件是不会进入回收站的 26.r m 删除文件/文件夹 27.r m haha.txt –r 直接删除文件夹(-r表示递归的删除) 28.r m haha.txt –i 给将删除的文件一个删除提示 29.r m haha.txt –f 强制删除 30.l inux建立链接影响(相当于创建windows下的快捷方式) 31.l n 01.txt 创建快捷方式 32.g edit 01.txt 编辑文件的内容 33.c at 01.txt 查看所编辑的内容 34.c at 01.txt > 02.txt 合并文件 35.g rep–n ‘a’grep.txt 搜素文件当中带a的文件 36.g rep–i ‘a’grep.txt搜素文件当中带a的文件(忽略大小写) 37.–-help 查找帮助文档 38.f ind 查找文件 39.c p a b 将a文件下的内容整体复制到b文件夹下(无效的文 件无法复制) 40.c p a/* b 将a文件夹下的所有内容复制到b文件夹下 41.m v a b 将a文件夹整体移动到b文件夹下 42.–v 显示移动进度 43.–I 表示操作的时候显示的提示(y表示确定)

Linux命令大全完整版

Linux命令大全完整版 目录 目录..................................................................... I 1. linux系统管理命令.. (1) adduser (1) chfn(change finger information) (1) chsh(change shell) (1) date (2) exit (3) finger (4) free (5) fwhois (5) gitps(gnu interactive tools process status) (5) groupdel(group delete) (6) groupmod(group modify) (6) halt (7) id (7) kill (8) last (8) lastb (8) login (9) logname (9) logout (9) logrotate (9) newgrp (10) nice (10) procinfo(process information) (11) ps(process status) (11) pstree(process status tree) (14) reboot (15)

rlogin(remote login) (16) rsh(remote shell) (16) rwho (16) screen (17) shutdown (17) sliplogin (18) su(super user) (18) sudo (19) suspend (19) swatch(simple watcher) (20) tload (20) top (21) uname (21) useradd (22) userconf (22) userdel (23) usermod (23) vlock(virtual console lock) (24) w (24) who (25) whoami (25) whois (25) 2. linux系统设置命令 (27) alias (27) apmd(advanced power management BIOS daemon) (27) aumix(audio mixer) (27) bind (29) chkconfig(check config) (29) chroot(change root) (30)

传智 韩顺平 linux 课程笔记1(吐血整理)

Linux视频教程(韩顺平)听课笔记1 (RedHat) 1、老师联系方式:hanshunping@https://www.360docs.net/doc/d08935915.html, 2、linux for工作 (1)linux系统管理员——linux系统的维护、配置等 (2)linux程序员——需c/c++、java,php、jsp等 ①linux软件工程师(pc) ②linux嵌入式开发(单片机、芯片) 3、学习linux的步骤 (1)第一阶段:linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat,mysql...和linux基本操作 (2)第二阶段:加厚c语言功底《c专家编程》或是java语言 (3)第三阶段:学习unix环境高级编程《unix环境高级编程》 (4)第四阶段:linux应用系统开发/linux嵌入式开发 4、计算机学习的正确道路 5、推荐书籍 -《鸟哥的Linux的私房菜基础学习篇》鸟哥、许伟、林彩娥等编著 -《Linux编程从入门到精通》宫虎波编著 -《Linux内核完全剖析》赵炯编著 6、关机命令 shutdown -h now立即进行关机 shutdown -r now现在重新启动计算机 -t sec : -t后面加秒数,即”过几秒后关机” -k: 不是要真的关机,只是发送警告信息

-r: 在将系统的服务停掉之后就重新启动 -h: 将系统服务停掉后,立即关机 -n: 不经过init程序,直接以shutdown关机 -f: 关机并启动之后,强制略过fsck的磁盘检查 -F: 系统重新启动之后,强制进行fsck的磁盘检查 -c: 取消已经在进行的shutdown命令内容 reboot 现在重新启动计算机 7、用户登录 登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,难免操作失误。可以利用普通用户登录,登录后再用“su -”命令来切换成系统管理员身份。 8、进入桌面(命令行界面进入图形界面) startx 9、用户注销 在提示符下输入logout即可。 10、vi进行开发java和c/c++程序 -java程序 -vi Hello.java -输入i,进入到插入模式,写好代码 -输入Esc键,进入命令模式 -输入冒号:[wq 表示退出保存,q!表示退出不保存] -编译javac Hello.java -运行java Hello -c程序 -gcc o自定义文件名Hello.cpp[参数o表示可自定义生成的out文件名,否则默认为a. out]

Linux 操作系统shell学习笔记 (linux系统)

Linux 操作系统shell学习笔记(linux系统) linux软件开发 No.001 文件安全与权限 1. umask 决定了新建文件的权限 2. 软链接(符号链接) ln -s source_path target_path No.002 find和xargs 1. find pathname -options [-print -exec -ok] 其中exec参数的命令格式:'command-' {} \; 注意必须包含【{} \;】 -perm 按权限来查找ex. find . -perm 755 -print -mtime 按修改时间来查找ex. find / -mtime -5 -print 更改时间5天以内 find / -mtime +5 -print 更改时间5天以前 2. xargs与-exec和-ok类似,但是限制更少,也更快 3种参数的命令:find . -name "*.c" -exec wc -l {} \; find . -name "*.c" -ok wc -l {} \; 每次执行命令前有提示 find . -name "*.c" | xargs wc -l No.003 后台执行命令 1. [crontab] [at] [&] [nohup]四种

No.004 文件名置换 1. 列出隐藏文件ex. ls .* No.005 shell输入与输出 1. echo输出时加上-n 参数不换行,ex. echo -n "aaaa" 2. tee 命令可以同时输出到屏幕和文件中ex. ls | tee file.out 3. 标准输入0 标准输出1 标准错误2 4. 将标准输出和标准错误输入到一个文件ex. command >file.out 2>&1 No.006 命令执行顺序 1. 命令1 && 命令2 命令1执行成功后才会执行命令2 2. 命令1 || 命令2 命令1执行失败后才会执行命令2 No.007 正则表达式 1. 正则表达式元字符及含义 ^ 只匹配行首 $ 只匹配行尾

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

详细分析Linux文件系统格式优劣

?摘要:Linux支持多种文件系统,包括ext2、iso9660、jffs、ext3、vfat、ntfs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System) ?标签:文件系统 ?Linux由于其开源安全特性正在被多数企业所接受。Linux支持很多种文件系统,ext3、vfat、ntfs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了另一个文件系统VFS(Virtual File System)。下面我们就分析一下他的各种文件系统格式的特点 基于RAM的文件系统 (1)Ramdisk Ramdisk是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。 在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。 (2)ramfs/tmpfs Ramfs是LinusTorvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。(实际上,VFS 本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。 Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。 Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。 Tmpfs的一个缺点是当系统重新引导时会丢失所有数据。 3.网络文件系统NFS(NetworkFileSystem) NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS 的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。 附录:NOR闪存与NAND闪存比较

一篇非常好的linux学习笔记分享(Linux入门绝佳)

作者:佚名字体:[增加减小] 来源:互联网时间:03-06 21:54:44我要评论 一篇非常好的linux学习笔记分享,对于常用命令整理的比较详细,推荐使用。 linux目录架构 / 根目录 /bin 常用的命令binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心(kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/NETWORKING 只有YES标明网络存在 /etc/host.conf 文件说明用户的系统如何查询节点名 /etc/hosts 设定用户自已的IP与名字的对应表 /etc/hosts.allow 设置允许使用inetd的机器使用 /etc/hosts.deny 设置不允许使用inetd的机器使用 /etc/hosts.equiv 设置远端机不用密码 /etc/inetd.conf 设定系统网络守护进程inetd的配置 /etc/gateways 设定路由器 /etc/protocols 设定系统支持的协议 /etc/named.boot 设定本机为名字服务器的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 设置IP /etc/resolv.conf 设置DNS /etc/X11 X Window的配置文件,xorg.conf 或XF86Config 這兩個X Server 的設定檔/etc/fstab 记录开机要mount的文件系统 /etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel /etc/issue 记录用户登录前显示的信息 /etc/group 设定用户的组名与相关信息 /etc/passwd 帐号信息 /etc/shadow 密码信息 /etc/sudoers 可以sudo命令的配置文件 /etc/securetty 设定哪些终端可以让root登录 /etc/login.defs 所有用户登录时的缺省配置

相关文档
最新文档