版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——《Linux操作系统》教案Linux操作系统教案
1.Linux系统目录简介
所有的类Unix操作系统的文件系统都有别于windows操作系统。在类Unix操作系统中没有windows操作系统中的盘符概念。类Unix操作系统中的所有文件都存放于一个称为“根目录〞的目录中,在类Unix操作系统中该根目录使用符号“/〞表示。图1-1中展示的是ubuntu操作系统根目录下的所有子目录。
图1-1ubuntu系统目录结构
bin
这里存放了标准的(或者说是缺省的)linux的工具,譬如像“ls〞、“vi〞还有“more〞等等。寻常来说,这个目录已经包含在你的“path〞系统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。
boot
Linux的内核及引导系统程序所需要的文件目录,譬如vmlinuzinitrd.img文件都位于这个目录中。在一般状况下,GRUB或LILO系统引导管理器也位于这个目录。
dev
dev目录中存放的是linux操作系统的设备文件。在linux操作系统中将所有的设备都看作一种特别的文件,大致分为字符设备文件和块设备文件。用户使用设备就和使用文件一样。说的直白一点,设备文件类似于在硬件设备和用户之间的一个中介,用户无需知道设备
1
的工作细节,使用硬件设备就对于用户而言与操作文件一样。
部分设备文件
主设备号设备类型次设备号=文件名0未命名设备(例如:挂载的非设备)0=为空设备号保存1char内存设备1=/dev/mem3=/dev/null4=/dev/port5=/dev/zero7=/dev/full8=/dev/random1.直接存取物理内存3.空设备。任何写入都将被直接丢弃,任何读取都将得到EOF。4.存取I/O端口5.零字节源,只能读取到无限多的零字节。7.满设备。任何写入都将失败,并把errno设为ENOSPC以表示没有剩余空间。8.随机数发生器。完全由用户的输入来产生随机数。假使用户中止所有动作,则中止产生新的随机数。当前虚拟控制台第1个虚拟控制台…第63个虚拟控制台在文字命令模式下有效当前TTY设备系统控制台(一般是/dev/tty0)PTY的复用器第1个SCSI磁盘(整个磁盘)第2个SCSI磁盘(整个磁盘)第3个SCSI磁盘(整个磁盘)…简要说明4charcharTTY(终端)设备0=/dev/tty01=/dev/tty1...63=/dev/tty63其他TTY设备0=/dev/tty1=/dev/console2=/dev/ptmx58blockSCSI磁盘(0-15)0=/dev/sda16=/dev/sdb32=/dev/sdc...240=/dev/sdp第16个SCSI磁盘(整个磁盘)分区表示方法如下(以第3个SCSI磁盘为例)33=/dev/sdc1第1个分区34=/dev/sdc2第2个分区...…47=/dev/sdc15第15个分区对于Linux/i386来说,分区1-4是主分
2
区,5-15是规律分区。tty:teletypewriters,原指电传打印机,而现在多指各种字符型终端设备。/dev/tty0~63代表的是显示器虚拟终端控制台。其只在linux的文字命令模式下有效。pty:pseudo-tty,虚拟终端;pts:pseudo-terminalslave与ptmx(pseudo-terminalmaster)协同实现pty。pts是linux在图形窗口模式下的虚拟终端的实现,然后通过ptmx复用器构造出一个终端窗口。
实例说明:
图形模式下的虚拟终端
在ubuntu的图形窗口模式下,开启一个终端,并用过命令“tty〞或“whoami〞可以查看当前的终端信息。如图1-2所示。
图1-2图形模式下的虚拟终端
假使同时再开启一个终端,然后在该终端窗口中输入命令“tty〞或“whoami〞查看终端信息,可以获得如图1-3所示的结果。
图1-3图形模式下的另一个虚拟终端
你可以通过命令“ls/dev/pts〞查看目录“/dev/pts〞下文件的变化,每当你创立一个虚拟终端,那么目录“/dev/pts〞下就会多一个以数字命名的文件。例如我们现在已经创立了2个虚拟终端窗口,那么目录“/dev/pts〞下的文件内容如图1-4所示。
图1-4查看虚拟终端设备文件
3
假使再创立第3个虚拟终端窗口,那么再通过命令“ls/dev/pts〞,你会发现在该目录下将会多出一个以“3〞命名的文件。
文字模式下的虚拟终端控制台
在虚拟机中运行的ubuntu窗口图形界面,可以通过按下“CTRL+ALT+F1〞切换到ubuntu的文字命令模式,并通过按下“CTRL+ALT+F7〞从文字命令模式切换到窗口图形界面。在图形界面模式按下“CTRL+ALT+F1〞后,我们将看到如图1-5所示的文字命令界面。
图1-5ubuntu文字虚拟终端控制台
通过输入用户名和密码后,即可登录入系统。在命令提醒符后输入命令“tty〞或“whoami〞可以得到如图1-6所示的结果。
图1-6虚拟终端控制台对应设备文件查询
从图1-6与前面的图形界面虚拟终端的截图可以看出,文字命令界面的终端控制台与图形界面的虚拟终端所对应的设备文件是不同的。而在文字命令界面模式下,也提供了我们使用过个虚拟终端控制台的方法。我们可以通过按下“CTRL+ALT+F1~F6〞在六个虚拟终端控制台间切换,来实现多个终端的操作。当你希望退回到图形用户界面模式,就可以按下
4
“CTRL+ALT+F7〞。
etc
etc目录中存放有系统软件的启动和配置文件,以及系统在启动过程中需要读取的文件。例如你安装了java或mysql等软件,假使需要修改其配置文件时,就可以/etc/java或/etc/mysql下面找到对应的配置文件。
etc目录是一个十分重要的目录,其中有好多在使用linux时经常会碰见的目录或文件,下面对其中最经常使用的文件进行简单说明。
/etc/passwd
/etc/passwd文件的内容如图1-7所示
图1-7/etc/passwd文件
/etc/passwd文件中的每一行记录一个用户的相关信息。每行用户信息中的不同部分以“:〞分隔,各部分具体意义如下所示:
用户名:密码:用户ID:组ID:说明:用户主目录:成功登陆后要执行的命令路径
假使其次列的内容为“X〞,表示该行记录的用户密码是正常或合法的,不过加密后的密码并不会保存在本文件中,而是保存在/etc/shadow文件中。假使其次列为空,那么表示该用户登录不需要密码。
/etc/shadow
/etc/shadow文件的内容如图1-8所示
图1-8/etc/shadow文件
/etc/shadow每行内容结构如下所示:
用户名:密码:上次修改密码的日期:密码不能变更的天数:密码需要重新变更的天数:密码变更提前几天通知:成账号失效日期:账号取消天数:保存假使其次列假使为空那么表示该用户登录无需密码,假使包含除{./0-9A-Za-z}意外的字
5
符,那么该用户无法登录。
/etc/group
本文件与前面介绍的/etc/passwd文件类似,只不过保存的是用户组的信息。特定/etc/group文件的截取内容如图1-9所示。
图1-9/etc/group文件截取内容
/etc/group文件中每行记录了一个用户组的相关信息。每行信息由4个部分构造。具体结构如下所示:
用户组名:用户组密码:用户组ID:组成员名该文件中的每行记录由“:〞分隔为4列:1)用户组名:标识用户组的名称;2)用户组密码:用户组密码,寻常不需设置,如设置了会保存于/etc/gshadow文件中;3)GID:用户组识别码,与一个用户组名对应;
4)用户组成员的账号名称:参与该用户组的账号名称;
一个账户可能属于多个用户组,而一个账户登录到shell时,此时此刻该账户应当明确的属于一个用户组,这个用户组称为该账户的当前有效用户组。而在/etc/passwd文件的每一行记录的第4项,说明该记录对应账户的初始用户组。一般状况下,一个账户登录系统后,会以初始用户组作为其登录后的有效用户组。假使该账户分别属于多个用户组,那么它就具有这些用户组访问系统资源的相应权限。而这个有效用户组有什么意义呢?有效用户组会在创立新文件时,决定该文件所属的组。譬如:Tom账户的初始用户组为Tom,并且也属于users用户组,当他登录系统后,创立一个新文件file,那么这个file的拥有者为Tom,而其用户组为Tom。由于,Tom登录系统后,其初始用户组Tom会成为其当前的有效用户组。
/etc/sudoers
登录linux系统,一般不建议使用root用户登录,为了避免误操作导致系统出错。然而linux系统中的某些操作有必需具有root权限才能执行,因此linux系统中可以使得某些用户可以以sudo方式来获取root权限来执行默写操作。使某个用户具有sudo能力,可以通过编辑/etc/sudoers文件来实现。图1-10展示了ubuntu中/etc/sudoers的默认内容。
6
图1-10/etc/sudoers文件
要了解更详细的sudoers的配置方法,可以通过命令“mansudoers〞查看帮助手册。
/etc/network/interfaces
/etc/network/interfaces文件为ubuntu的网络适配器的配置文件。该文件最重要也是最常用的作用就是设置网卡的internet网络地址信息。如图1-11中显示了该文件的一种可能的状况。
图1-11/etc/network/interfaces文件
文件中“#〞符号起解释作用。
要了解该文件的语法规则或参考配置方法,可以通过下图中给出的路径,查看network-interfaces.gz文件。
由于network-interfaces.gz文件是压缩文件,可以在命令提醒符后输入命令“sudogzip–dnetwork-interfaces.gz〞进行解压,这是在当前目录中会获得解压后的文件network-interfaces。
也可以通过命令“maninterfaces〞参看帮助手册,来获取interfaces文件的配置方
7
法。
home
这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
lib
系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32目录,几乎所有的应用程序都需要用到这些共享库。
media
挂载媒体设备,如光驱、U盘等。
mnt
这个目录一般是用于存放挂载储存设备的挂载目录的,譬如有cdrom等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;譬如光驱可以挂载到/mnt/cdrom。
opt
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
举个例子:方才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,十分简单。
proc
操作系统运行时,进程信息及内核信息(譬如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见/etc/fstab。
8
sbin
大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相像的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。
tmp
这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。
usr
这个是系统存放程序的目录,譬如命令、帮助文件等。这个目录下有好多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。假使有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin或/usr/local/bin或/usr/X11R6/bin,超级权限用户root的可执行命令存放目录,譬如/usr/sbin或/usr/X11R6/sbin或/usr/local/sbin等;还有程序的头文件存放目录/usr/include。
lost_found
在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有好多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
selinux
selinux就是linux下的安全服务,把服务和系统独立地分开来,这样服务被攻击了就不能影响到系统的安全
var
这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log这是用来存放系统日志的目录。/var/目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,譬如MySQL的,以及MySQL数据库的的存放
9
地。
2.Linux系统基本命令2.1shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
实际上shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。shell编程语言具有普通编程语言的好多特点,譬如它也有循环结构和分支控制结构等,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。同Linux本身一样,shell也有多种不同的版本。目前主要有以下版本的shell:?Bourneshell:是贝尔试验室开发的。
?BASH:是GNU的BourneAgainshell,是GNU操作系统上默认的shell。
?Kornshell:是对Bourneshell的发展,在大部分内容上与Bourneshell兼容。?Cshell:是SUN公司shell的BSD版本。与shell相关的操作
?查看Linux系统中支持的shell类型:more/etc/shells
?查看当前使用的shell类型:echo$SHELL
?查看默认shell的类型:more/etc/passwd
?修改默认shell的类型:
sudousermod–sshell路径用户名
或者sudovi/etc/passwd然后编辑对应用户那行后面对应的shell部分
2.1.1shell数据重定向(输入重定向和输出重定向)
linux的文件描述符,是linux用以跟踪开启文件,而分派的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。shell启动后,会默认开启3个文件描述符,分别是:
1)标准输入:STDIN,在/dev/stdin,一般指键盘输入,其文件描述符是0;2)标准输出:STDOUT,在/dev/stdout,一般指终端(terminal),就是显示器,其
文件描述符是1;
3)标准错误:STDERR,在/dev/stderr也是指终端(terminal),不同的是,其文件
描述符是2。
我们在shell中执行命令时,每一个shell命令都会从shell父进程那里继承这3个文件描述符,通过这3个文件描述符与标准输入、标准输出和标准错误的设备进行数据通信。默认状况下,一条shell命令执行时从键盘将命令输入(即STDIN句柄)发送到该命令,然后,该命令执行成功后,将命令输出(即STDOUT句柄)发送到屏幕窗口。Linux
10
的命令执行过程如图2-1所示。
filestdincommandstderrstdoutfile/devicefile/device图2-1linux命令执行过程
然而,有时候需要改变这种默认的状况,也就是将命令的输入和输出不是来自标准输入或者执行结果输出到标准输出之外的设备或文件中去,这时,就需要使用shell数据重定向符。
数据重定向符:?“〞:改变送出的数据信道(stdout,stderr),使之输出到指定的档案;?“>>〞:改变送出的数据信道(stdout,stderr),使之输出到指定的档案,但不同
于“>〞,它不会删除指定档案中的内容,而是在末尾添加。?“|〞:管道,用来将前一个命令的stdout,作为管道后面的命令的stdin重定向用法说明:cmd>file把stdout重定向到file文件中cmd>>filecmd1>fielcmd>file2>\%u@\\h:\\w\\a\\]〞:这部分内容对终端标题栏上显示内容的格式设置。“${debian_chroot:+($debian_chroot)}\%u@\\h:\\w\\$〞:这是对终端命令提醒符的显示格式进行设置。
PS1的常用符号说明信息相关
\%u:当前用户名\\h:主机名的第一部分,\\H:完整的主机名\\w:当前工作路径,\\W:只显示当前目录名,不显示完整路径$(__git_ps1\yourcurrentgitbranchifyou'reinagitdirectory,otherwisenothing\\$:假使当前用户UID为0,那么显示“#〞,否则显示“$〞\\d:以\星期月日\的格式显示日期(e.g.,\\\t:以24小时制的HH:MM:SS的格式显示当前时间,\\T:以12小时制的HH:MM:SS格式显示当前时间,\\@:以12小时制的HH:MMam/pm格式显示当前时间\\n:新行\\r:换行\\\\:反斜线颜色及样式
颜色必需进行转义,颜色代码后面需要添加一个字符m。将“\\[\\e[?code?m\\]〞和“\\[\\e[0m\\]〞之间包含你想应用该颜色或样式的提醒信息。其中?code?的取值组合如下所示:
14
x:文本属性3y:前风景4y:背风景x取值:0:normal1:bold4:underline7:reversey对应颜色:0black1red2green3yellow4blue5magenta6cyan7white用法例如:“\\[\\e[0;33m\\]prompt:\\[\\e[0m\\]〞中“\\[\\e[0;33m\\]〞将会把提醒内容“prompt:〞显示为普通文本,字体颜色为黄色,而“\\[\\e[0m\\]〞将会把颜色重新置为默认。
你可以通过输入exportPS1='...'将你自定义的PS1的值写入你家目录下的.bashrc文件或.profile文件中。
2.2Linux文件及目录操作命令
目录相关符号
~:当前用户家目录路径.:当前目录..:父目录
/:根目录或者用作表示文件路径各级目录的分隔符。
cd(changedirectory):改变当前目录ls(list):列表显示文件及目录信息
用法实例:
?ls:不带任何参数的状况使用,将显示当前目录的文件和目录,但不包含以“.〞开头
的文件;
?ls–a:带上参数-a时,ls命令将会显示当前目录的所有文件。
15
?ls–A:带上参数-A时,ls命令将会显示当前目录中除了“.〞和“..〞之外的所有
文件。
?
?????
ls–l:带上参数-l时,ls命令将显示当前目录中一般文件或目录的详细信息,这些信息从左至右的含义为:文件类型、权限、硬链接的数目、文件拥有者、文件所在的组、大小、日期和文件名。
ls–s:以块数形式显示每个文件分派的大小;ls–n:与参数-l的功能相像,只不过文件拥有者和用户组不用名字表示,而是用UID和GID表示;
ls–h:以便利人阅读的形式显示文件的大小,一般和参数-l或-n一起使用;ls–r:以逆序显示;ls–R:递归显示子目录;
详细用法请使用命令“manls〞或“ls--help〞查阅。
mkdir(makedirectory):创立目录
16
rmdir(removedirectory):删除目录
touch(touch):
更新文件或目录的访问时间和修改时间,假使文件不存在则新建一个文件。
17
rm(remove):删除文件或目录
rm-rf!(keep)#删除keep文件之外的所有文件rm-rf!(keep1|keep2)#删除keep1和keep2文件之外的所有文件mv(move):移动或更名文件或目录
以下操作均在目录“~/Music〞中进行,该目录中包含两个普通文件one.txt和two.txt。
18
cp(copy):复制文件
cp指令用于复制文件或目录,宛如时指定两个以上的文件或目录,且最终的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最终的目的地并非一个已存在的目录,则会出现错误信息。常用参数说明:
-f:强制复制,不管目标文件或目录是否已存在(cp命令默认状况,会强制复制);-i:在覆盖文件之前询问用户;
19
-l:不进行复制文件,而是创立硬链接;-s:不进行复制文件,而是创立符号链接;-r或R:递归处理目录及其子目录中的内容;-u:只有源文件的修改时间较目标文件的修改时间新,或目标文件不存在时复制文件;-v:显示复制执行过程
chmode(changemode):设置文件或目录的权限
chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。
文字设定法:
语法:chmod[who][+|-|=][mode]文件名命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:u表示“用户(user)〞,即文件或目录的所有者。g表示“同组(group)用户〞,即与文件属主有一致组ID的所有用户。o表示“其他(others)用户〞。a表示“所有(all)用户〞。它是系统默认值。
操作符号可以是:
+添加某个权限。-取消某个权限。
=赋予给定权限并取消其他所有权限(假使有的话)。
设置mode所表示的权限可用下述字母的任意组合:r可读。w可写。x可执行。
X只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s〞设置文件的用户ID位,“g+s〞设置组ID位。t保存程序的文本到交换设备上。u与文件属主拥有一样的权限。
g与和文件属主同组的用户拥有一样的权限。o与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:
chmodg+r,o+rexample使同组和其他用户对文件example有读权限。
20
数字设定法:
必需首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。例如,假使想让某个文件的属主有“读/写〞二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:chmod[mode]文件名
指令实例:
指令chmoda+xsort说明设定文件sort的属性为:文件属主(u):增加执行权限与文件属主同组用户(g):增加执行权限其他用户(o):增加执行权限设定文件text的属性为:文件属主(u):增加写权限与文件属主同组用户(g):增加写权限其他用户(o):删除执行权限假设,执行chmod后a.out的权限为:–rws--x--x1ininusers7192Nov414:22a.out并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw--〞,即该文件只有其属主具有读写权限。当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免由于某些程序的bug而使系统遭到入侵。chmoda–xmm.txtchmod–xmm.txtchmodugo–xmm.txtchmod644mm.txt这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。即设定文件mm.txt的属性为:-rw-r--r--文件属主(u):拥有读、写权限与文件属主同组人用户(g):拥有读权限其他人(o):拥有读权限即设定wchtxt这个文件的属性为:-rwxr-x文件主本人(u):可读/可写/可执行权与文件主同组人(g):可读/可执行权其他人(o):没有任何权限chmodug+w,o-xtextchmodu+sa.outchmod750wch.txt
21
chgrp(changegroup):改变文件或目录所属的群组
语法:chgrp[选项]组文件
该命令改变指定文件所属的用户组。其中“组〞可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。假使执行chgrp的用户不是该文件的属主或超级用户,则不能改变该文件的组。参数:
-R:递归式地改变指定目录及其下的所有子目录和文件的属组。
chown(changeown):修改文件的拥有者或群组
语法:chown[选项]用户或组文件
chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。例如:root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应当把这个文件的属主设为xu,否则,用户xu无法存取这个文件。参数:
-R:递归式地改变指定目录及其下的所有子目录和文件的拥有者。-v:显示chown命令所做的工作。
find(find):查找目录或文件
语法:
findpathname-options[-print-exec-ok...]
?pathname:find命令所查找的目录路径。
?-print:find命令将匹配的文件输出到标准输出。
?-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为
\\'command\\'{};,注意{}和“;〞之间的空格。
?-ok:和-exec的作用一致,只不过以一种更为安全的模式来执行该参数所给出的
shell命令,在执行每一个命令之前,都会给出提醒,让用户来确定是否执行。?-options:为find命令可使用的参数。
参数:
-namepattern:按文件名查找,pattern是要查找的文件名匹配模板;-permmode:按文件权限查找,mode是要查找的文件权限模式;-user:按文件的拥有者查找;-group:按文件所属的组查找;-mtime-n+n:依照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。-aminn:查找系统中最终n分钟访问的文件
-atimen:查找系统中最终n*24小时访问的文件
22
-cminn:查找系统中最终n分钟被改变文件状态的文件
-ctimen:查找系统中最终n*24小时被改变文件状态的文件-mminn:查找系统中最终n分钟被改变文件数据的文件
-mtimen:查找系统中最终n*24小时被改变文件数据的文件
-nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。-nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。-type:查找某一类型的文件,诸如:
b-块设备文件。d-目录。
c-字符设备文件。p-管道文件。l-符号链接文件。f-普通文件。
-sizen:[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。
指令实例:
指令find$HOME-printfind~-printfind.-typef-perm644-execls-l{}\\;说明这两条指令都可以查找当前用户主目录下的所有文件。让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件。查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。find/-typef-size0-execls-l{}\\;find/var/logs-typef-mtime+7-okrm{}\\;查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们。find.-grouproot-execls-l{}\\;查找当前目录中所有属于root组的文件。find.-nameadmin.log[0-9][0-9][0-9]-atime删除当目录中访问时间在7日以-7–okrm{}\\;来、含有数字后缀的admin.log文件。locate(locate):快速查找文件或目录
locate命令其实是“find-name〞的另一种写法,但是要比后者快得多,原因在于它不探寻具体目录,而是探寻一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创立这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种状况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
23
参数:
-e:仅显示locate查找结果中,索引项关联的文件存在的那些项。-l:指定查找到多少项后退出查找。
-q:恬静模式,不会显示任何错误讯息。-r:使用正规运算式用做寻觅的条件。-V:显示locate的版本-i:忽略大小写。
whereis:程序名探寻
whereis命令只能用于程序名的探寻,而且只探寻二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。假使省略参数,则返回所有信息。
which:检查命令是否存在,及执行位置
which命令的作用是,在PATH环境变量指定的路径中,探寻某个系统命令的位置,并且返回第一个探寻结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的终究是哪一个位置的命令。
diff(different):生成差异信息&patch(patch):修补文件
diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。
diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。patch能将diff文件运用于原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么这个过程相当于A-B=C,那么patch的过程就是B+C=A或A-C=B。因此我们只要能得到A,B,C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。diff后面可以接两个文件名或两个目录名。假使是一个目录名加一个文件名,那么只作用在那么个目录下的同名文件。假使是两个目录的话,作用于该目录下的所有文件,不递归。假使我们希望递归执行,需要使用-r参数。命令:diffAB>CA:原始文件,B:修改后的文件,C:为A的补丁文件。
不加任何参数生成的diff文件格式是一种简单的格式,这种格式只标出了不一样的行数和内容。我们需要一种更详细的格式,可以标识出不同之处的上下文环境,这样更有利于提高patch命令的识别能力。这个时候可以用-c开关。
patch用于根据原文件和补丁文件生成目标文件。还是拿上个例子来说:
命令:patchAC
以上命令执行后就能得到B,这一步叫做对A打上了B的名字为C的补丁。这一步之后,
24
文件A就变成了文件B。假使你打完补丁之后想恢复到A怎么办呢?
命令:patch-RBC
以上命令就可以重新还原到A了。所以不用担忧会失去A的问题。diff命令常用参数:
-i:忽略文件内容中的大小写区别;-b:忽略空格数量的变化;-B:忽略空行的变化;
-r:递归处理所有子目录中的文件;
-u:输出每个修改的前后3行,也可以在其后给出具体数值指定更多的行;-N:对于缺少的文件视为空,以正确处理新建或删除的文件时的状况;-a:将所有的类型文件的内容都视为文本;patch命令常用参数:-R:恢复源文件;
ln(link):链接文件或目录
ln命令的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln–s源文件目标文件。当我们需要在不同的目录,用到一致的文件时,我们不需要在每一个需要的目录下都放一个必需一致的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln–s/bin/less/usr/local/bin/less。-s是(symbolic)的意思。
这里有两点要注意:
1.ln命令会保持每一处链接文件的同步性,也就是说,不管你改动了哪一处,其它的文
件都会发生一致的变化;
2.ln的链接有软链接和硬链接两种,软链接就是ln–s****,它只会在你选定的位置
上生成一个文件的镜像,不会占用磁盘空间,硬链接ln****,没有参数-s,它会在你选定的位置上生成一个和源文件大小一致的文件,无论是软链接还是硬链接,文件都保持同步变化。
假使你用ls观测一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的软链接,用ls–l命令去观测,就可以看到显示的link的路径了。
2.3Linux文本编辑及查看
编辑工具是任何操作系统中都必不可少的工具,编辑工具可以帮助我们把思想表述出来,并形成计算机文件形式,以便进行相应数据处理和保存。
2.3.1vi或vim编辑器
在Linux操作系统shell窗口内输入vi或vim就可以开启linux中最著名的编辑器,几乎任何真正是使用Unix或类Unix系统工作的人都必需熟练把握的工具。vim是
25
vi的扩展版本,它比vi更人性化,或者更多的考虑到了那些习惯了windows操作系统中文本编辑方式的人。一般状况下,现代linux操作系统中使用vi或vim都是开启的vim这个版本的编辑器。但是,为了表述简单,并更为简单接受,后面都表述为vi编辑器。
2.3.2vi编辑器的三种模式:
1.指令模式(Commandmode):
vi编辑器开启后进入的模式,这个模式下,通过相关命令可以进去另外两个模式。2.文本输入模式(Inputmode):
在指令模式下按下i(在当前字符前插入)、o(在当前行下新建一行)等键都会使的vi编辑器进入文本输入模式。当在文本输入模式下,就不能再接受命令了,只有按下Esc键后,进入指令模式下,才能再次接受命令。3.末行模式(Lastlinemode):
末行模式,是在指令模式下,按下“:〞键,这时会在vi编辑窗口的最末行,出现一个“:〞和提醒光标,等待用户输入诸如:q(退出)、w(保存)、q!(强制退出)等命令。假使要退出末行模式,同样也需要按下Esc键,进入指令模式。
vi编辑基础命令:
1.光标移动:(命令模式下输入)
(k或↑)=上(j或↓)=下(h或←)=左(l或→)=右0$bkhjl将光标移至当前行的行首将光标移至当前行的行尾当光标不在单词第一个字符时,将光标移至单词的第一个字符;假使光标在单词的一个字符上,光标将移至上一个单词的第一个字符上。当光标不在单词最终一个字符时,将光标移至本单词的最终一个字符;假使光标在单词的最终一个字符上,光标将移至下一个单词的最终一个字符上。将光标移至下一个单词的第一个字符将光标移至上一行的开头将光标移至下一行的开头将光标移至上一句的开头将光标移至上一段的开头将光标移至下一句的开头将光标移至下一段的开头将光标移至当前窗口的最左上角位置ew-回车键或+({)}H
26
MLctrl+dctrl+uctrl+fctrl+bggshift+gctrl+g将光标移至当前窗口显示的文本中间行的开头将光标移至当前窗口显示文本的最下行当前屏幕的文本向下滚半屏当前屏幕的文本向上滚半屏当前屏幕的文本向下滚一屏当前屏幕的文本向上滚一屏移动到整个文档的第一行文本移动到整个文档的最终一行文本查看当前行的行号2.进入文本输入模式:(命令模式下输入)
iIaAoOrR在光标前开始插入字符在光标当前行开头插入字符在光标后开始插入字符在光标所在行行尾插入字符在光标所在行下插入新行在光标所在行上插入新行替换光标处的字符替换光标后的字符,直到按下Esc键3.删除、复制、粘贴:(命令模式下输入)
x或dlXnxnXddnddd$或Dd0d^dwndwyynyyy0y$yggyGp(小写)P(大写)删除当前光标所在位置的一个字符删除当前光标所在位置前面的一个字符n为数值,表示要删除当前光标开始及之后的n个字符表示要删除当前光标开始前面的n个字符删除光标所在的一整行删除光标所在及向下的n行删除光标及之后至当前行尾的所有字符删除光标之前直至当前行首的所有字符删除光标之前到当前行第一个字符(不包括空格或tab符)删除光标所在及之后直到词尾的字符删除光标所在及之后的n个词复制当前光标所在行的内容复制当前光标所在行及之后的n行内容复制当前光标所在位置的字符之前直至行首的字符复制当前光标所在位置的字符及之后直至行尾的字符复制当前光标所在行及之前直至文档第一行的所有行复制当前光标所在行及之后直至文档最终一行的所有行在当前光标所在行之上,粘贴复制的内容在当前光标所在行之下,粘贴复制的内容
27
4.撤销与重做:(命令模式下输入)
uctrl+r.撤销上一步的操作,可以反复使用,直至第一步重做撤销的操作重复前一步的操作5.查找(命令模式下输入)
/word?wordnN查找当前光标之后,名为word的字符串查找当前光标之前,名为word的字符串重复向下查找重复向上查找6.替换:(末行模式下输入)
n1,n2s/word1/word2/g将第n1行至第n2行的所有word1字串用word2字串替换1,$s/word1/word2/g将第一行至最终一行的所有word1字串用word2字串替换1,$s/word1/word2/gc将第一行至最终一行的所有word1字串用word2字串替换,替换之前进行询问是否替换7.末行模式使用的一些命令:(以下命令,请按“:〞进入末行模式后使用)
wqq!wqw[filename]n1,n2w[filename]r[filename]!commandsetnusetnonun1,n2con3n1,n2mn3n1,n2dr!command将编辑的文本写入到磁盘退出编辑器强制退出编辑器写磁盘,然后退出将编辑的文本以名为filename的文件保存(另存为)将第n1行至第n2行的内容保存到文件filename读入名为filename的另外一个文件(开启多个文件)执行shell命令为每行设置行号取消行号将n1行到n2行之间的内容拷贝到第n3行下将n1行到n2行之间的内容移至到第n3行下将n1行到n2行之间的内容删除将命令command的输出结果放到当前行8.在命令模式下,按下v键,可以进入可视操作状态
awiwasis选择单词内部单词(无空格)选择句子选择句子(无空格)
28
apipDx,y选择段落选择段落(无空格)删除到行尾删除与复制包含高亮区cat(catenate):串链接文件,并输出文件内容
cat命令最寻常的用法是,查看文件的内容。例如:“catfilename〞命令会在标准输出,将文件filename的内容完全输出。结合shell数据重定向符完成更多的功能。参数:
-n:为文件内容每行加上行号;例如:catfilename在stdout中显示filename文件内容cat–nfilename为filename文件内容加上行号,显示与stdoutcatfilename>filename2将filename文件内容写入到filename2文件中catfilename>>将filename文件内容追加到filename2文件中filename2more:屏显文本内容
在文件内容比较多,一屏显示不完的状况下使用more可以避免刷屏。按空格显示下一页;按b显示上一页。
less:屏显文本内容
与more命令类似,具体区别,亲自使用后体会。
head:显示文件开头部分
显示文件前面部分的内容,默认显示10行,可以自定义行数。
tail:显示文件尾部的部分
显示文件尾部的部分内容,默认显示10行,可以自定义行数。
uniq:显示或忽略文件中重复行
-u:只显示不重复的行-d:只显示重复的行
29
sort:将文件内容排序后显示
-b:忽略行首的空白符-d:以字典序排序-f:忽略大小写
-g:以一般数值序排序-r:以指定序的倒序输出
linux系统管理用户及用户组管理
要登录Linux系统,一定要有账号与密码。不同的用户拥有不同的权限。
相关文件
/etc/passwd:
该文件的部分内容如下图所示:
每一行记录代表一个用户账号,该文件中有多少行,就代表系统中有多少个用户账号。该文件每行记录由“:〞分隔成7个部分,分别是:1)账户名称:账户助记标识,均对应一个UID;
2)密码:这里x表示用户设置了密码,密码被加密后保存于/etc/shadow中;
3)UID:用户识别码,0代表是系统管理员。1~499给系统保存,500~65535一般用户
使用;
4)GID:用户组的识别码,对应信息在/etc/group文件中;
5)账户信息说明:无重要用途,finger命令可查看跟多信息,假使设置了的话;6)家目录:用户的家目录,默认家目录/home/usercountname7)shell:指明该用户默认使用的shell类型;
/etc/shadow:
该文件的部分内容如下图所示:
与/etc/passwd文件一致,/etc/shadow文件中每一行记录,也由“:〞分隔,共9列:
30
[未打包文件]参数:
-c创立-x解包-u更新-r添加-t查看
-d比较压缩包内文件和文件
-A将tar文件添加到归档文件中-z使用gz压缩格式-j使用bz2压缩格式
37
-v显示过程
-f归档文件的文件名
在创立、更新时必需填写[未打包文件]。例如:
tar-czvfxxx.tar.gzxxx/xxx1xxx2xxx3多个待打包文件以空格分隔
tar-czvfxxx.tar.gz/home/user/xxx/使用绝对路径打包,解包也使用绝对路径tar-xzvfxxx.tar.gz
按相对路径解包到当前目录下,或按绝对路径解包tar-czvfxxx.tar.gzxxx|split-b1m打包后,使用split分割为1m大小的多个文件
4Linux网络配置文件
在linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,需要编辑这些文件来完成联网工作。系统中重要的有关网络配置文件为:
/etc/sysconfig/network(RedHat)
该文件用来指定服务器上的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数。下面是一个例子文件:NETWORKING=yesHOSTNAME=machine1GATEWAY=FORWARD_IPV4=yesGATEWAYDEV=其中:NETWORK=yes/no表示网络是否被配置;
HOSTNAME=hostnamehostname表示服务器的主机名;GATEWAY=gw-ipgw-ip表示网络网关的IP地址;FORWARD_IPV4=yes/no是否开启IP转发功能;
GAREWAYDEV=gw-devgw-dw表示网关的设备名,如:eth0等;
为了和老的一些软件相兼容,\文件应当用和HOSTNAME=hostname一致的主机名。
/etc/network/interface(Ubuntu)
autoeth0ifaceeth0inetstaticaddress28
38
netmasknetworkboardcast55gateway是上述设置起效使用以下命令:sudo/etc/init.d/networkingrestart
/etc/hostname
该文件包含了系统的主机名称。
/etc/hosts
/etc/hosts中包含了IP地址和主机名之间的映射,还包括主机名的别名,IP地址的设计使计算机简单识别,但对于人却很难记住它们,为了解决这个问题,创立了/etc/hosts这个文件。下面是一个例子文件:machine1localhost.localdomainlocalhost00machine701otherpcotheralias在这个例子中,本机名是machine1,otherpc还有别名otheralias,它可以指向otheralias。。一旦配置完机器的网络配置文件,应当重新启动网络以使修改生效,使用下面的命令来重新启动网络:
/etc/rc.d/init.d/networkrestart
/etc/hosts文件寻常含有主机名、localhost和系统管理员经常使用的系统别名,有时候telnet到linux机器要等待很长时间,可以通过在\参与客户的机器的IP地址和主机名的匹配项,就可以减少登录等待时间。在没有域名服务器状况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则,其他的主机名寻常使用DNS来解决,DNS客户部分的配置在文件/etc/resolv.conf中。
/etc/services
/etc/services中包含了服务名和端口号之间的映射,不少的系统程序要使用这个文件,下面是RedHat安装时缺省的/etc/services中的前几行:tcpmux1/tcp#TCPportservicemultiplexerecho7/tcpecho7/udpdiscard9/tcpsinknulldiscard9/udpsinknullsystat11/tcpusers最左边一列是主机服务名,中间一列是端口号,〞/“后面是端口类型,可以是TCP也可以是UDP。任何后面的列都是前面服务的别名。在这个文件中也存在着别名,它们出现在端口号后面,在上述例子中sink和null都是discard服务的别名
39
/etc/resolv.conf
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名探寻顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:nameserver4nameserver
合法的参数及其意义如下:
?nameserver说明DNS服务器的IP地址。可以有好多行的nameserver,每一个带一
个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver.
?search它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由
search声明的域中分别查找。
5常用网络命令ifconfig
ifconfigeth0{up|down}启动或关闭eth0网络接口
ifconfigeth000
临时将网络接口eth0的ip地址设为00
ifconfigeth000netmask255.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民间故事人物形象的道德象征意义课题报告教学研究课题报告
- 2025年健康养老行业智慧服务创新报告及未来五至十年行业变革报告
- 2026秋招:吉林水投水业发展公司试题及答案
- 2026秋招:汇福粮油集团面试题及答案
- 2025年企业财务管理与内部控制体系
- 2025年物流行业无人配送与供应链创新报告
- 2025年光伏支架户外环境适应性五年趋势
- 汉字书法运笔轨迹与空间认知能力关联的跨学科课题报告教学研究课题报告
- 宁波2025年宁波望春工业园区管委会招聘笔试历年参考题库附带答案详解
- 台州台州市2025年四季度市直事业单位选聘19人(一)笔试历年参考题库附带答案详解
- 医疗器械法规考试题及答案解析
- 2025年河南体育学院马克思主义基本原理概论期末考试笔试题库
- 2026年广西出版传媒集团有限公司招聘(98人)考试参考题库及答案解析
- 2026年中国铁路上海局集团有限公司招聘普通高校毕业生1236人备考题库及答案详解1套
- 2026年上海市普陀区社区工作者公开招聘备考题库附答案
- 医源性早发性卵巢功能不全临床治疗与管理指南(2025版)
- 甘肃省平凉市(2025年)辅警协警笔试笔试真题(附答案)
- 中国双相障碍防治指南(2025版)
- 移动式工程机械监理实施细则
- 买房分手协议书范本
- 门窗安装专项施工方案
评论
0/150
提交评论