版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux基本概念和常用命令主要内容熟悉Linux的基本环境掌握常用的Linux指令及操作熟悉常用软件的安装配置学习环境:redhatcentosfedora参考书目:《鸟哥的linux私房菜-基础学习篇》第6、7、11、14章Linux目录树结构Linux内的所有数据都是以文件的形态来呈现。平时为了区分普通文件和目录,我们称类型为目录的文件为目录,称其它的类型的文件为文件。Linux系统用目录树组织文件。一级目录……层次目录目录树架构(directorytree)是以根目录为主,然后向下呈现分支状的层次结构(即目录树)。整个目录树架构最重要的目录是根目录(rootdirectory),因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等有关。根目录的表示方法为一条斜线/。所有的文件都和目录树有关。图片演示了目录树的呈现方式。如图所示,所有的文件都是由根目录(/)衍生来的,而次目录之下还能够有其他的数据存在。Linux目录配置因为利用linux做开发的组织和个人实在太多,为了规范和方便人们使用linux,各种标准被制定出来。其中Linux目录配置的标准是FilesystemHierarchyStandard(FHS)。FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据。因此FHS定义根目录(/)下应该要有以下这些次目录:/etc/:几乎系统的所有配置文件均在此,例如passwd,shadow。/etc/init.d:系统开机的时候加载服务的脚本程序的存放地点/boot:开机配置文件和linux内核vmlinuz的地方。/usr:UnixSoftwareResource的缩写,也就是『Unix操作系统软件资源』所放置的目录。/usr/bin,/bin:一般指令存放的地方/usr/sbin,/sbin:系统管理员常用指令的地方/dev:摆放所有系统设备文件的目录/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。/var:variable的缩写,主要存放经常变动的文件,包括缓存(cache)、日志文件(logfile)以及某些软件运作所产生的文件。/var/log:摆放系统日志文件的地方Linux登录和退出图形模式与文字模式切换Ctrl+Alt+[F1]~[F6]文字界面tty1~tty6Ctrl+Alt+F7
图形界面使用终端图形界面下,输入用户名和密码登陆。在屏幕上点击鼠标右键,选择“终端”。文字界面下,输入用户名和密码,自动获得一个终端。退出系统图形界面下,选择上方的”系统”->”关机”进行关机或重启。文字界面下,执行命令shutdown–hnow或init0关系。
执行命令reboot或init6重启系统。退出终端终端下输入指令exit终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal)一台PC通常只有一套键盘和显示器,也就是只有一套终端设备,但是可以通过Ctrl-Alt-F1~Ctrl-Alt-F6切换到6个字符终端,相当于有6套虚拟的终端设备,它们共用同一套物理终端设备,(VirtualTerminal)对应的设备文件分别是/dev/tty1~/dev/tty6,所以称为虚拟终端做嵌入式开发时经常会用到串口终端,目标板的每个串口对应一个终端设备,比如/dev/ttyS0、/dev/ttyS1等。将主机和目标板用串口线连起来,就可以在主机上通过Linux的minicom或Windows的超级终端工具登录到目标板的系统。虚拟终端或串口终端的数目是有限的,虚拟终端一般就是/dev/tty1~/dev/tty6六个,串口终端的数目也不超过串口的数目。然而网络终端或图形终端窗口的数目却是不受限制的,这是通过伪终端(PseudoTTY)实现的。网络终端或图形终端窗口的Shell进程以及它启动的其它进程都会认为自己的控制终端是伪终端,例如/dev/pts/0、/dev/pts/1等。命令tty可以查看当前使用的终端Linuxshell登录硬件Shell/KDE/gnomeOtherapplicationsLinux内核用户
如左图所示,在linux系统中,用户无法直接操作linux内核,更不能直接操作硬件。但总是需要让用户操作系统的,所以就有了在操作系统上面发展的应用程序。用户可以通过应用程序指挥内核,让内核达成我们需要的硬件任务。
Shell就是这种应用程序。Shell的功能是提供用户操作linux系统的一个接口,通过它可以调用其他程序,比如我们接下来要学的命令,让这些程序调用内核来运行所需的工作。因此,我们又称shell为命令解释程序。shell有许多版本。可以查看/etc/shells这个文件,了解Linux下有哪些可用的shell。其中linux默认的shell版本为“BourneAgainSHell(简称bash)”。为什么学习命令行界面的shell?对于不同的linux发行版本,图形界面各有不同,但命令行界面:大家都一样,几乎都使用的bash。远程管理:命令行界面比较快。通过学习shell可以让你更深入linux,更了解它,而不是只会按一按鼠标。若你想管理好你的主机,那么常用的linux命令是一定需要的。Linux命令基本格式一行命令的输入格式为:command[-option]...[param]......
命令名
选项…参数…用户的输入分为三部分:命令名、选项、和参数中括号[]并不存在于实际的命令中,只表示方框里的是可选的。区分大小写,一行命令的第一个输入部分必须是命令或可执行程序。选项通常以“-”开始,例-h。完整参数名称则以”--”开始,例—help参数分为依附在option后面的参数,或者是command的参数。选项是对命令功能的扩充,参数指明处理的对象。命令、选项和参数之间以空格隔开,多个连续的空格shell视为一个空格。按下回车键该行命令就立即执行。一行命令太长时,可以使用“\”后接回车,继续到下一行输入。bash快捷键Tab键接在一行命令以空格分割的第一部分后面,为命令补全。Tab键接在一行命令以空格分割的第二部分后面,为文件补全。Ctrl+d表示输入结束符,键盘输入结束endoffile(EOF)Ctrl+c或ctrl+\退出目前正在运行的程序Ctrl+Z暂停目前的程序↑显示上一条命令↓显示下一条命令!str在所执行过的命令中,找到最近一次以str开头的命令,再执行一遍Ctrl+u删除命令行中光标所在处之前的所有字符(不包括自身)Ctrl+k删除命令行中光标所在处之后的所有字符(包括自身)Ctrl+Alt+Del重新启动如何获得帮助在命令行下输入下面命令:whatis命令名命令名--helpman命令名(按q键退出man帮助)与man相比,whatis命令可以提供更加简洁的帮助信息。事实上man不仅仅可以查看命令的使用手册日期命令:date功能:显示日期用法:date[+format]例如:#date显示目前linux系统的时间ThuSep321:47:35CST2009可以要求date按照用户指定的格式format输出,格式输出类似于C语言printf函数。在命令行输入date--help查看有哪些可用的格式#date+%Y/%m/%d输出年月日2011/09/03#date+%H:%M输出当前的时间21:48#date“+今天的时间是%H
%M”若输出字符串包含空格用,双引号括起来今天的时间是2148#date–s“2011090318:23:12”设置系统时间日历显示命令:cal功能:显示指定年或月份的日历用法:cal[[month]year]注:年year的有效值在1~9999,月month的有效值在1~12范例:#cal显示当前月份的日历#cal2020,显示2020年的日历#cal101949显示1949年10月的日历
清屏指令:clear文件和目录管理常用命令和概念路径和目录cdtouchpwdcat/tacmkdir/rmdirmore/less文件和目录中的通配符head/taills或dirchown/chgrpcpchmodmvgreprmfindwhich/whereis路径和目录相对路径与绝对路径路径:通过分隔符(windows是\linux是/)体现父目录与子文件或子目录的层次关系的写法,称为路径。绝对路径∶路径的写法一定由根目录/写起,例如:/usr/share相对路径∶只要路径不是由根目录写起,就是相对路径的写法!指相对于目前工作目录的路径,例如:由/usr/share要到/usr/include时,可以写成cd../includeLiux下特殊的文件文件名以.开头的文件属于隐藏文件。输入命令ls-a查看隐藏文件.代表当前目录..代表上一层目录~代表当前用户的家目录扩展名基本上,linux没有所谓的扩展名,比如一个文件能不能执行和它的第一列的10个属性有关,与文件名无关。不过我们仍希望通过扩展名来了解文件是什么种类。比如:.c、.h、.sh、.tar、.html等。基本上,linux系统的文件名只是让你了解该文件可能的用途而已。命令名称:cd使用语法:cd[directory]功能:变换工作目录至directory。参数说明: directory可为绝对路径或相对路径。
-代表前一个工作目录 ~代表『目前使用者身份』所在的家目录 ~account代表account这个账号的家目录
若目录名省略,则变换至用户的家目录(也就是登陆时所在的目录)。范例:
进入当前用户家目录
#cd或cd~
进入上一级目录下的source子目录
#cd../source
进入/usr/local目录#cd/usr/local从绝对路径找文件
目录管理指令:cd目录管理指令:pwd命令名称:pwd使用语法:pwd[-P]功能:
打印当前工作目录(printworkingdirectory)选项:-P显示实际的路径,而非使用链接(link)路径。范例:打印当前工作目录#pwd/root/#cd/etc/init.d#pwd/etc/init.d#pwd–P/etc/rc.d/init.d目录管理指令:mkdir命令名称:mkdir使用语法:mkdir[选项]directory
功能:创建目录选项:
-p:和不带参数的功能相识,只是当所需创建目录的上级目录不存在时,上级目录也将被创建。范例:在当前目录创建一个名为dir的目录#mkdirdir在/tmp目录下创建一个名为mydir的目录#mkdir/tmp/mydir在/tmp/1/2/3/4目录下创建一个名为dir01的目录,要求:若dir01的上级目录不存在时,将上级目录也创建出来。#mkdir-p/tmp/1/2/3/4/dir01目录管理指令:rmdir命令名称:rmdir使用语法:rmdir[选项]directory
功能:删除空目录选项:
-p:和不带参数的功能相识,只是当删除指定目录后,其上级目录也变成空目录时,上级目录也将被删除。范例:在当前目录删除一个名为dir的目录#rmdirdir在/tmp目录下删除一个名为mydir的目录#rmdir/tmp/mydir在/tmp/1/2/3/4目录下删除一个名为dir01的目录,要求:若dir01删除后,上级目录也变成空,将上级目录也删除掉。#rmdir-p/tmp/1/2/3/4/dir01文件和目录操作中常用通配符在Linux文件系统中,可以使用通配符来匹配多个选择符号意义*代表『0个到无穷多个』任意字符?代表『一定有一个』任意字符[]同样代表一定有一个在括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是a,b,c,d这四个任何一个。
[-]若有减号在中括号内时,代表在编码顺序内的所有字符。
例如[0-9]代表0到9之间的所有数字,因为数字的语系编码是连续的![^]若中括号内的第一个字符为指数符号(^),那表示反向选择,例如[^abc]代表一定有一个字符,只要不是a,b,c的字符就接受。例如:ls*.c在当前目录找到所有以.c结尾的文件,显示到屏幕上命令名称:ls使用语法:ls[-alrti][name...]功能:显示文件名及其属性 ls后无参数,默认列出当前工作目录下的文件名选项: -a显示所有文件
-l除档案名称外,亦将档案型态、权限、拥有者、档案大小等详细列出-r将档案以相反次序显示(原定依英文字母次序)-t将档案依建立时间之先后次序列出-i列出文件的inode号 -s列出每个文件占用的磁盘空间,以KB为单位。-d若name为目录,列出目录本身,而不是目录下的文件名
--color=auto根据文件类型显示不同颜色范例:
列出目前工作目录下所有名称是s开头的档案,愈新的排愈后面:
ls-ltrs*
将/bin目录以下所有文件详细资料列出:
ls-l/bin
文件管理指令:lsLinux文件的类型结束在Linux中文件的类型是通过文件权限的首位定义的,在命令行下输入ls–l每一行的第一个字符代表文件的类型。可以分为以下几类:
-
普通文件包括下面之外的文件。d目录文件s套接字文件p命名管道b块设备文件如,磁盘,U盘。特点:以块为单位存取且可以随机存取。c字符设备文件如,鼠标,键盘。特点:以字符为单位存取且只能顺序存取。
l软链接文件返回查看用户目录下的内容把工作目录切换到/proc目录下打印当前工作目录创建一个目录datecallscdpwdmkdirrmdir动手练习文件管理指令:cp命令名称:cp使用语法:cp[选项]SOURCEDEST
功能:将一个文件拷贝至另一目录,或将数个文件或目录拷贝至另一目录。选项:-a尽可能将文件状态、权限等属性都照原状予以复制。等同于-dpR-r/-R若source为目录,则将source中的子目录也拷贝至目的地。
-i在覆盖文件或目录时提示范例:将当前目录下的文件abc拷贝到/tmp/目录,并且拷贝的时候重命名为123#cpabc/tmp/123将当前目录下所有的.c文件复制到当前目录中的mydir目录下#cp*.c./mydir将目录mydir目录下所有文件复制到/tmp目录下,并保持属性不变#cp–amydir/tmp文件管理指令:mv命令名称:mv使用语法:mv[选项]sourcedest功能:将文件或目录移动到指定的目录中,或重命名文件或目录选项:
-f:强行覆盖已存在的文件或目录
-i:在覆盖已存在的文件或目录前提示范例:将a.txt重命名为a.c#mva.txta.c将当前目录下所有的txt文件移动到当前temp目录下#mv*.txt./temp文件管理指令:rm命令名称:rm使用语法:rm[选项]file...功能:删除文件或目录选项:
-i删除前逐一询问确认。
-f直接删除,无需逐一确认。
-r将目录及以下之档案亦逐一删除。
范例:删除所有以a开头的文件,删除每个文件前,给出提示#rm-ia*删除目录/tmp下的mydir目录#rm–r/tmp/mydir文件管理命令:dd命令:dd用法:ddif=文件of=文件[bs=大小][count=数量]功能:给文件备份。从左边的文件读取一定量的数据,作为右边文件的内容保存。参数:if:inputfile后接要读取的文件of:outputfile后接输出文件的文件名bs:blocksize一次读取多少个字节。若未指定,预设是512bytes(一个扇区sector的大小)count:多少个bs的意思。若未指定,默认是全部读取。范例:将/etc/passwd备份到/tmp/passwd.back当中#ddif=/etc/passwdof=/tmp/passwd.back文件管理指令:file命令名称:file使用语法:file[选项]filename…功能:辨别文件类型,对文件的类型进行详细的描述范例:查看文件/bin/ls的类型#file/bin/ls查看某几个文件的类型文件查找指令:find命令语法:find[路径][expr]功能:按照某个条件expr,在指定目录及其子目录下找出和expr匹配的文件。(条件有文件名,文件类型,文件大小,修改时间等)。常用选项:expr-name文件名文件名可以包含通配符。如:*.c-type类型-size[-+]大小可以在数字后加c(byte)、k(1024B)或M(1024KB)范例:找出home目录以.c结尾的文件#find/home–name“*.c”找出当前目录所有的链接文件,并将文件属性完整地列出#find./-typel-execls-l{}\;找出/etc下文件大小介于50K到60K之间的文件find/etc-size+50k-a-size-60k这里–a是and(与)的意思文件查找指令:updatedb/locate命令语法:updatedb功能:updatedb会根据etc/updatedb.conf中配置,为你计算机中的文件建立索引。该索引会被后面的locatewhereis使用(执行此命令需要root权限)系统每天会自动执行一次updatedb命令语法:locatefilename功能:查找某一个文件在文件系统中的位置查找指令which/whereiswhich功能:查找命令在文件系统中的位置用法:whichcommand#whichls查找ls命令的位置/bin/lswhereis功能:查找符合条件的文件。这些文件的特性应属于原始代码,二进制文件,或是帮助文件使用语法:whereis[-bms]filename...参数:
-b
只查找二进制文件。
-m
只查找说明文档。
-s
只查找源代码文件。
#whereisls查找名称为ls的二进制文件,说明文档和源代码。ls:/bin/ls/usr/share/man/man1/ls.1.gz#whereisstdio.h查找C语言标准I/O头文件stdio.h在哪里stdio.h:/usr/include/stdio.h动手练习cp和mv的区别如何查看文件的类型重命名某个文件拷贝文件或目录到另外一个目录下查看某个文件的内容cpmvrmcat/tacmoreheadtail文件和目录权限用户与组强调文件的拥有者(Owner)root可以充当任何文件的拥有者组(Group)有利于安全与管理类似于现实中的概念,用户可以加入到某个或某几个组中主要用于团队开发时的身份识别和权限设置。权限管理分为三类:文件/目录所有者user文件所属组group其他人others无权访问的文件,通常会显示“Permissiondenied”这样的错误信息,对于无权执行的命令,通常显示“Operationnotpermitted”$cat/etc/shadowcat:/etc/shadow:Permissiondenied文件和目录权限文件属性链接数量所有者组文件大小创建/修改日期文件名称,以圆点开头的文件为隐藏文件代表当前目录下文件大小的总和,以KB为单位文件和目录属性文件属性-rwxrwx---
接下来的属性中,三个为一组,且均为“rwx”的三个参数的组合。其中,[r]代表可读,[w]代表可写,[x]代表可执行,[-]代表无此属性。所有者组其他人-rwxrwxrwx第一个属性代表这个文件的类型改变文件权限:chmod可以通过符号类型改变文件权限,因为三套属性分别是针对user(所有者)、group(组)、others(其他人)的,所以就可以分别用ugo来代表三个对象,a代表三套属性。指令chmod功能:改变文件权限用法:范例:给当前目录的test.c的拥有者添加可执行权限#chmodu+xtest.c文件改变文件权限:chmod第二种方式:rwx可以分别用数字表示r4w2x1若要rwx属性可用7来表示:4+2+1=7语法:chmod[-R]xyz文件其中xyz分别为三组rwx属性数值的和选项-R,递归地将目录下的所有文件的权限改变了范例:给test.c增加一切权限#chmod777test.c目录的权限说明目录的读权限:查看目录下有哪些文件目录的写权限:是否可以修改目录下的文件名或者在该目录下创建,删除文件。注意:这些操作同时也需要目录的执行权限。目录的执行权限:是否可以进入到该目录下进行操作。例如cd到该目录或者在该目录下进行文件操作。执行权限对目录很重要。文件的三种时间属性我们在介绍ls指令时,稍微提到在linux下每个文件都会记录时间属性。其实有三个时间属性,那么三个时间意义是什么呢?文件内容的修改时间modificationtime(mtime):当文件的“内容数据”更改时,就会更新这个时间!内容数据是文件的内容,而非属性或权限!查看文件内容的修改时间ls–l文件内容的访问时间accesstime(atime):当“该文件的内容被取用”时,就会更新这个读取时间(access)。例如,我们使用cat去读取/etc/man.config,就会更新该文件的atime了。查看文件内容的访问时间ls–lu文件属性的修改时间statustime(ctime):当“该文件的属性改变”时,就会更新这个时间。例如,权限等属性被更改了,就会更新这个时间。查看文件的属性修改时间ls–lc修改文件时间或创建新文件:touch用法:touch文件功能:touch命令用来改变文件的时间戳,如果file文件不存在,则创建该文件。
范例:当前目录不存在file01,用touch创建名为file01的空文件。#touchfile01若当前目录存在file02,用touch更新file02的时间戳。#touchfile02此命令默认会更新file02的三种时间属性为当前时间。用ls查看。文件与目录权限:umask系统创建文件时会赋予文件默认权限新建文件时
666新建目录时
777出于安全性等方面的考虑,文件的实际权限为系统默认权限“减去”权限掩码umask得到的。命令名称:umask功能:设置文件权限掩码,供系统创建文件或目录时使用语法:umask[mode]
mode为权限的数字表示。若umask后没有mode则显示当前umask值;如果有则设置mode为新的掩码。mode的分数指的是『文件默认权限需要减掉的权限!』范例:若当前umask值为022#touchtest创建test文件#ls-ltest创建后的文件权限是rw-rw-rw-去掉后面两个w得到的。-rw-r--r--1lijiecongmember0Sep409:20test动手练习去掉某个目录的可执行权限,会发生什么?为某个文件增加/去掉可执行权限。改变umask值后建文件和目录,看区别。chmodtouchumask过滤器指令BASH的三个“标准”标准输入:默认对应终端里的键盘设备。scanf等函数可以获取用户从键盘输入的数据,我们称scanf从标准输入得数据。代码为0标准输出:默认对应终端里的显示器。命令或程序把正确的信息,输出到标准输出设备上。printf函数输出的信息都是输出到标准输出上的。代码为1标准错误输出:默认对应终端里的显示器。命令或程序把出错的信息,输出到标准错误输出设备上。代码为2过滤器命令:对数据流进行处理并将结果输出到标准输出设备上的命令。通常命令后接文件名,表明从文件里得数据,若命令后面不接文件名,则等待用户从键盘(标准输入)输入数据,并处理。下面这些命令属于过滤器命令。cat/tachead/tailodmore/lessgrepcutsortwc文件管理指令:cat/tac命令名称:cat(tac从最后一行开始显示)使用语法:cat[选项]file1[file2…]功能:把档案串连接后传到基本输出选项:
-A显示所有隐藏字符和行结束符-n或--number由1开始对所有输出的行数编号-b或--number-nonblank和-n相似,但不对空白行编号-s当遇到有连续两行以上的空白行,就代换为一行的空白行范例:输出hello.c文件内容,列出行号:#cat–nhello.c输出hello.c文件的内容,包括隐藏字符和行结束符#cat–Ahello.c文件管理指令:od命令:od用法:od[-N字节数][-tTYPE]文件功能:能以一定的格式显示文件。可用于非文本文件。选项:-N:只显示文件的前多少个字节。-t:后面可以接各种『类型(TYPE)』的输出,例如:a:利用默认的字符输出c:使用ASCII字符输出d[size]:利用十进制(decimal)输出数据,每个数占用size字节o[size]:利用八进制(octal)输出数据,每个整数占用size字节x[size]:利用十六进制输出数据,每个数占用size字节对于上面的dox,size可以是C代表sizeof(char)的大小,S代表sizeof(short)的大小,I代表sizeof(int)的大小,L代表sizeof(long)的大小文件和目录管理指令:more/less命令名称:more使用语法:more[选项]文件名功能:分页显示文件内容范例:
more/etc/passwd在显示过程中,可以使用d键翻半页,f键翻整页,q键退出命令:less使用语法:less[选项]文件名功能:分页显示文件内容范例:
less/etc/passwd在显示时,可以使用空格键向下翻,b向上翻,q键退出。其他用法参见手册。比命令more常用。文件和目录管理指令:head命令名称:head使用语法:head[选项]file
功能:输出文件的前面一部分内容到标准输出选项: -cN:输出最前的N个字符 -nN:输出文件的前面N行范例:显示文件的开头十行#heada.txt命令head默认显示文件的前十行显示文件/etc/man.config的开头3个字符#head-c3/etc/man.config显示文件/etc/man.config的开头3行#head-n3/etc/man.config文件和目录管理指令:tail命令名称:tail使用语法:tail[选项]file
功能:输出文件的结尾一部分内容到标准输出选项:
-cN:输出最后的N个字符 -nN:输出文件的最后面N行 -f:当文件在增长时,输出增加的数据范例:显示文件的结尾十行#taila.txt命令tail默认显示文件的后十行显示文件/etc/man.config的结尾3个字符#tail-c3/etc/man.config显示文件/etc/man.config的结尾3行#tail-n3/etc/man.config文件查找指令:grep命令名称:grep使用语法:grep[选项]“字符串”文件名功能:在文件中查找指定的字符串,然后输出该行。选项: -n显示行号 -i忽略字符串的大小写 -v反选,将不包括字符串的行找出来 -r查找目录下的所有子目录 --color=auto将匹配的字符串高亮显示范例:在文件/etc/passwd中查找包含root的行#grep“root”/etc/passwd在文件/etc/passwd中找到不包含root的行#grep–v“root”/etc/passwd在文件/etc/man.config中找到包含man的行,man大小写都行,显示在第几行#grep-i-n“man”/etc/man.config查找当前目录下所有文件中包含hello的行#grep-rhello./文本处理指令命令cut:截取文件中的部分内容。
用法:cut–d‘分隔字符’–ffield文件-d:后面接分割字符。与-f一起使用-f:依据-d的分割字符将一行信息分割成为数段,用-f取出fileld指定的段范例:将当前系统中所有的账号名列出来。#cut-d‘:’–f1/etc/passwd上面命令的意思是将文件/etc/passwd中的每一行,用字符:划分成若干段,取出第一段。命令wc:对文本文件的行、单词和字符信息进行统计。用法:wc[-mwl][文件名]…-l:列出文件的行数;-m:多少字符-w:列出多少字(英文单字)范例:统计当前目录下所有c源文件的代码量。#wc–l*.c
文本处理命令命令:sort功能:对文本文件内容排序,然后输出到标准输出上。用法:sort[选项]文件... -f 忽略字母的大小写 -b 忽略最前面的空格符部分 -n 使用“纯数字”进行安排(默认以字符类型排序) -r 反向排序 -t<分隔符>默认以空格和tab键作为列分隔符 -k<数字>按照指定的列来排序范例:对文件/etc/passwd进行排序#sort/etc/passwd文件/etc/passwd以符号:作为间隔符分了七列。按照第三列数字排序#sort–t‘:’-k3-n/etc/passwd管道与重定向重定向就是把数据转到其他地方修改三个标准默认对应的设备文件。例如,标准输出和标准错误输出默认都对应显示器,我们可以通过重定向,分离出这两类数据。例如ls-l会把结果输出到屏幕上,但是ls–l>t就会把结果输出到文件t中,屏幕上什么也没有。如果t文件不存在,则新建该文件,如果存在,那么文件t的内容先被清空,然后将ls–l的结果导入文件t中。两个特殊的文件:/dev/null:“黑洞”设备,来什么扔什么。/dev/zero:提供无数个字节零重定向符号重定向符号用于引导数据流到指定的位置0<:原本从键盘读数据,现在从符号<右边的文件读数据(例:cat0<test.c)。注意:<右边的文件必须已经存在1>:将原本输出到屏幕上的正确信息,输出到>右边的文件。(右边文件先清空,然后将数据导入文件中。例:ls1>file)2>:将原本输出到屏幕上的错误信息,输出到>右边的文件(例:ls不存在的目录2>file)>>:若将上面的符号>改成>>,信息将追加到文件尾部,该文件原来的内容将不会被清空而是在尾部添加。上面的代号0和1可以省略不写。管道什么是管道?管道是指把前一个命令输出到标准输出的信息作为后一个命令的标准输入的信息的机制。每个命令完成自己的独立任务,管道提供了一种协作机制把命令“连接起来”的管道符号:|注意:管道不能传递标准错误信息范例:显示文件/etc/passwd的第6行到第10行?(head/tail+管道)动手练习findgrepupdatedb/locatewhichwhereiscutwc从C标准头文件stdio.h里找到printf函数的原型,并高亮显示。文件/etc/passwd以符号:作为间隔符分了七列。取出每行的第一列和第三列,并按照第一列排序,并输出到文件/tmp/my.pd中关亍执行文件路径的变量:$PATH为什么我在任何目录下输入date指令都能显示日期信息?是因为环境变量PATH的帮助所致!当我们在执行一个指令时候,例如说ls,会依照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先搜寻到的同名指令先被执行!看看到底有哪些目录被定义出来了?echo有『显示、印出』的意思,而PATH前面加的$表示后面接的是变量,所以会显示出目前的PATH!#echo$PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binPATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)隔开。范例:修改PATH,查看是否有些命令不能使用了SHELL内置命令事实上,并非所有的命令都能在PATH指定的目录中找到。例如,切换工作目录指令“cd”,用文件查找指令whereis找不到它的二进制可执行文件。其实cd是bash内置的功能。Bash已经“内置”了很多命令,前面的pwd、umask都内置在bash中。type命令功能:判断所执行的命令是外部命令(非bash所提供的命令)或内置在bash当中的。用法:#typemkdirmkdiris/bin/mkdir#typecdcdisashellbuiltin这里可知cd是bash内置的命令。#typelslsisaliasedto‘ls–-color=tty’这里表明我们执行的ls是个别名命令别名命令别名即给一个命令起个别名,执行别名就相当于执行这个命令。这个在经常执行的命令较长时,非常方便。给命令起别名的功能由命令alias来实现,这个alias也是bash内置的命令。用法:alias[name[=value]]#alias直接输入alias列出当前系统有哪些命令别名。…这里略去…#aliasls列出别名ls所对应的命令。ls=‘ls--color=tty’例如,给命令ls–al|less起个别名。#aliaslm=‘ls–al|less’接下来就可以用lm来执行#lm命令unalias用于取消命令别名。例如取消别名lm:#unaliaslm命令查找的顺序由前面的内容可知,对于一个外部命令既有可执行程序,又可能有内置命令或者命令别名。那么shell到底调用的是哪个呢?linux下命令查找的顺序如下所示:以相对或绝对路径执行命令,例如./a.out和/bin/ls由alias找到该命令来执行由bash内置的(builtin)命令来执行通过$PATH指定的目录顺序找到的第一个命令来执行了解bash查找命令的顺序,也可以通过输入
“type–a命令名”查询。例如,查询命令pwd#type–apwdpwdisashellbuiltinpwdis/bin/pwd压缩和解压缩指令:gzip命令名称:gzip使用语法:gzip[-dfl9][name...]功能:压缩或解压文件选项:
-l:列出压缩文件的内容 -f:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-9:以最大的压缩比压缩 -d:解压缩 -r:对目录中的每个文件进行递归压缩范例:两种压缩命令的压缩和解压用法 gzipa.c gzip–da.c.gz bzip2a.c bzip2–da.c.bz2压缩和解压缩指令:bzip2命令名称:bzip2使用语法:bzip2[-cdkzv][name...]功能:压缩或解压文件选项:
-c:将压缩的过程产生的数据输出到屏幕上! -d:解压缩的参数 -k:保留源文件,而不会删除原始的文档 -z:压缩的参数 -v:可以显示出原档案/压缩文件案的压缩比等信息;范例:将/tmp/man.config以bzip2压缩#bzip2-z/tmp/man.config将上面的文档解压缩bzip2-dman.config.bz2压缩打包指令:tar命令名称:tar使用语法:tar功能:tar是用来建立,还原备份文件的工具程序。用于打包,解打包文件参数: -c建立新的归档文件
-x从归档文件中解出文件 -t查看归档文件
-v处理过程中输出相关信息
-f<文件名>指定打包文件名
-z与-c联用调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-j与-c联调用bzip2来压缩归档文件,与-x联用时调用bzip2完成解压缩 -C<目录名>指定解打包后的文件放到什么目录下,默认在当前目录用gzip压缩并打包当前目录下的所有文件tar-zcvftest.tar.gz*tar-vzxftest.tar.gz
用bzip2压缩并打包当前目录下的所有文件tar-cjvftest.tar.bz2*tar-xjvftest.tar.bz2
查看压缩包中的内容tar–tvftest.tar.gz
校验命令:md5sum命令名称:md5sum语法:md5sumfilename功能:为一个文件或压缩包做校验和,从互联网下载这个压缩包后可以比较md5的校验和是否相同,防止第三方篡改。为某个文件做md5校验和:#md5sumtest.cpp
a4dea377997297c320899936f59a9352test.cpp动手练习压缩一个文件或者目录解压一个压缩文件压缩并打包一个目录下的所有文件为某个文件计算md5校验值gzipbzip2tarmd5sumLinuxinode概念现代的文件系统中采用文件名和文件属性分开的方式存储。文件名保存在目录中,文件的属性保存在文件系统固定大小的一块存储空间里,称为i结点。数据结构:i结点(Indexnode)保存文件的属性(如创建者,权限,文件数据所在的磁盘块号等各种文件信息)。每个linux文件系统中的对象(文件,目录)都有一个inode,每个inode都有一个唯一的编号。在同一个文件系统内,只要inode号一样,不管文件名是否相同,他们就是同一个文件(由此引出硬链接的概念)。文件系统和文件系统类型的区别查看文件的inode号:ls-i文件名Linux读取文件过程linux目录里存储以下内容:系统为每个目录分配至少一个磁盘块,来存储以上信息。每个文件都会占用一个inode,文件内容由inode来指向;想要读取一个文件的内容,必须先经过目录记录的文件名对应的inode号码,方能读取文件的内容。所以,其实文件名只与目录有关,而文件内容则与inode有关。以下图为例,一个磁盘分为若干个分区,每个分区有一个文件系统。典型的linux文件系统的分布图链接文件介绍硬链接(hardlink)硬链接即是在一个目录下新增一个文件名链接到某个inode号码。hardlink特点:多个文件名共用同一个inode对前一个文件的存取动作与对后一个文件一样。不能跨越文件系统,不能创建对文件夹的硬链接下图显示一个硬链接的例子。链接文件介绍符号链接(SymbolicLinks)符号链接(软链接)是再建立一个独立的文件(有自己的inode),,在该文件中保存另一个文件的路径。通过这个文件指可以读取他指向的那个文件的内容。如果目标路径名较短则直接保存在inode中以便更快地查找,如果目标路径名较长则分配一个数据块来保存。如果删除被链接的文件,那么符号链接文件还存在,但将不再有效,用ls列出符号链接文件,会显示出闪烁的红色。符号链接文件被删除,被链接文件还是存在的。类似windows的快捷方式文件链接指令:ln命令名称:ln使用语法:ln[选项]sourcedest功能:建立一个文件或者目录的链接注意:链接分为硬链结(hardlink)与软链结(symboliclink),硬链结的意思是一个文件可以有多个名称,而软链结的方式则是产生一个特殊的文件,该文件的内容指向另一个文件的位置。硬链结只能存在同一个文件系统中,而软连结却可以跨越不同的文件系统。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁盘空间。选项:无选项时,创建的是硬链接-f:链结时先将与dest同档名的档案删除(强制连接)-i:在删除与dest同档名的档案时先进行询问-s:进行软链接范例:
软连接一个文件ln–s/tmp/test/tmp/test.link
硬链接一个文件ln/tmp/test/tmp/test.link动手练习建一个软连接建一个硬链接查看软连接和硬链接的inode号修改连接文件的内容,比较软硬连接的区别ln用户登录过程用户以不同的用户名(即账号)登陆系统,就拥有了不同的权限(身份),这种权限赋予该用户能对系统所进行的操作。我们在学校用过的教务管理系统,老师和学生就是身份。Linux登录过程:提示输入用户名和密码linux查询/etc/passwd里面是否包含该用户名如果没有则退出,如果有则读取该用户的UID和GID以及Home目录、Shell等linux查询/etc/shadow以核对密码如果密码正确则进入shell控管范围passwd文件内容/etc/passwd文件内容:用户名密码(x)用户idUID(0管理员账号、1~499系统账号、500~65535普通账号)用户所在的组idGID说明信息用户的家目录用户登录时获得的Shell相关命令:passwd[用户]若不接账号名,修改当前账号的密码。后接账号名,可以修改指定账号的密码(需root权限)。passwd也可以接选项,比如:--stdin:把标准输入读的数据,作为密码,对shell脚本有帮助-l:是Lock锁的意思,会将/etc/shadow第二栏最前面加上!使指定的账号密码失效;-u:与-l相对,是Unlock解锁
的意思!shadow文件内容/etc/shadow文件内容:用户名密码:经过了加密,如果*开头那么不能登录上次更改密码的日期(1970/1/1起)密码不可被修改的天数(0表示随时可改)密码需要重新修改的天数(99999表示不用改)密码需要修改期限前的警告期限(7表示失效前7天开始提示)帐号失效期限帐号取消期限预留group文件介绍/etc/group文件:组名称GID属于组的用户列表,以逗号分割,如:hexy:x:500:test02,test03相关命令:groups显示指定用户所在的组用法:groups[用户名]该命令等价于命令id–Gn,若不提供用户名,默认显示当前用户所在的组组管理命令:groupadd命令:groupadd用途:增加组语法:groupadd[-gGID]组名
该命令会访问/etc/group和/etc/gshadow文件,写入新的组信息范例:添加一个组名为project#groupaddproject添加个组名为project001的组,并指定组id为1034#groupadd-g1034project001组管理命令:groupdel命令:groupdel用途:删除组语法:groupdel组名 访问/etc/group和/etc/gshadow文件,删除组信息注意:组内的用户必须不在线,而且该组不存在主用户才能删除。用户管理命令:useradd命令:useradd用途:新增用户语法:useradd[-uUID][-gGID][-GGID][-dHOME][-mM][-sshell][-c注释]username选项:
-u:指定UID-g:指定默认GID或者组名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中日语外研版九年级上册第6课 世界の平和
- 人教PEP版小学英语四年级上册《My Friends》Part B对话教案
- 农村配电网升级改造可行性报告
- 消防自动报警系统改造设计方案
- 重庆某废矿物油资源化利用项目可行性研究报告
- 钢结构焊缝缺陷整改报告
- 电池级电解液添加剂项目绩效评价
- 供应商安全合同条款设计
- 不锈钢雨棚工程施工组织设计
- 城镇雨污分流管网改造工程设计
- 广西群安食品有限公司年产2万吨桶装、瓶装饮用水和饮料生产基地建设项目环境影响报告表
- 2022版初中物理课程标准测试题库(有答案)(物理新课程标准试题教师资格考试教师招聘考试试卷)
- 建筑行业职业病危害预防控制规范
- 保护膜入料检验规范
- 《江苏省常州市金坛区茅东矿区水泥用石灰岩矿(关停)闭坑地质报告》评审意见书
- YY/T 1740.2-2021医用质谱仪第2部分:基质辅助激光解吸电离飞行时间质谱仪
- YC/T 486-2014烟草商业企业车辆安全管理规范
- GB/T 37340-2019电动汽车能耗折算方法
- 第三课奇才李叔同
- 变频器-vsd2000安装操作维护手册
- 施工现场机械维修保养记录表
评论
0/150
提交评论