《嵌入式操作系统04.ppt》由会员分享,可在线阅读,更多相关《嵌入式操作系统04.ppt(93页珍藏版)》请在三一办公上搜索。
1、第四章 Linux使用基础,4.1 Linux常用命令4.2 shell程序设计,4.1 Linux常用命令,系统询问命令文件操作命令目录操作命令口令、权限命令其他命令,4.1 Linux常用命令,Linux系统可以在两种环境下操作:一种是在X Window的桌面环境下操作,它与Microsoft Windows环境下的操作十分相似;另一种是在控制台的字符屏幕下操作,它通过键盘输入命令来实现对系统的操作。,4.1 Linux常用命令,shell是一种命令行解释程序(Command-Language Interpreter),负责用户和操作系统的沟通。在终端方式的shell 提示窗口如下图所示,
2、4.1.1 系统询问命令,1、询问当前日期和时间的date命令2、询问当前用户的who命令 who命令可列出当前每一个处在系统中的用户的登录名、终端名和登录进入时间3、显示当前目录路径名的pwd命令,4.1.2 文件操作命令,1、文件及其分类Linux的文件通常分为:一般文件:纯文本文件、二进制文件。目录文件:包含文件的活页夹。设备文件:字符文件、磁盘文件。主要是和周边硬件连接,作为系统和硬件间的沟通接口。内部进程通信文件:有Socket文件、连接文件(Pipe/FIFO)两种。特殊文件:符合链接文件。隐藏文件:文件名的第一个字符是.,4.1.2 文件操作命令,1、文件及其分类权限位符号所表示
3、的文件类型:普通文件:_目录文件:d块设备文件:b套接字文件:s,链接文件:l管道文件:p(命名管道,FIFO文件)字符设备文件:c,4.1.2 文件操作命令,1、文件及其分类Linux系统根据文件存取控制方式,把所有用户划分为3种身份:依次是文件主(user)同组用户(group)其他用户(other)每种用户对一个文件可拥有读(r)、写(w)和执行(x)的权利。,4.1.2 文件操作命令,1、文件及其分类在Linux中,颜色所代表的文件类型:蓝色代表目录红色表示压缩文件灰色表示其他文件黄色表示设备文件绿色代表可执行文件浅蓝色表示链接文件红色闪烁表示链接的文件有问题了玫红表示套接字文件,4.
4、1.2 文件操作命令,2、文件显示命令cat命令:用来连接并显示文件:它顺序阅读每一个文件,并将它们在标准输出上输出如果没有指定输入文件或者只是给定一个连字符(-),则从标准输入上读取,4.1.2 文件操作命令,3、文件内容比较命令comm命令:对两个已经排序的文件进行比较,找出同时包含在这2个文本文件中的内容。排序处理命令:sort a a1,4.1.2 文件操作命令,3、文件内容比较命令输出结果包括3列,第1列显示只包含在第一个文件a1中的第2列显示只包含在第二个文件m1中的第3列显示的是2个文件中都包含的内容。,4.1.2 文件操作命令,3、文件内容比较命令diff命令:比较文本文件的异
5、同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录,4.1.2 文件操作命令,3、文件内容比较命令cmp命令:比较两个文件。在缺省条件下,如果文件相同,则 cmp 命令不显示任何内容。如果它们不同,则 cmp 命令显示发生不同的第一个字节数和行数。,4.1.2 文件操作命令,4、文件的复制、移动和删除命令cp命令:拷贝文件其语法格式为:cp-fipsource_file target_file cp-fipsource_file1 source_file2 targetcp-R-fipsource_file1 source_file2 targetcp-r-
6、fipsource_file1 source_file2 target举例:cp anaconda-ks.cfg/home/qdlg2012,4.1.2 文件操作命令,4、文件的复制、移动和删除命令mv命令:移动或者重新命名文件和目录其语法格式为:mv-fi source_file target_file mv-fi source_file target_directory 举例:mv test.txt test.c,rm命令:删除文件或目录其语法格式为:rm-firRfile/-f表示force强制删除;-fr表示强制删除目录举例:rm f test.c,4.1.2 文件操作命令,5、确定文
7、件类型的file命令当用户拥有很多文件时,常以自己的登录名为根节点,为自己建立一棵文件子树。其中,一些节点可能是目录文件,而另一些节点可能是信息文件。若用户忘记了哪些名字是目录文件,哪些名字是信息文件,则可用file命令。,4.1.2 文件操作命令,5、创建文件链接命令ln功能:为某一个文件在另外一个位置建立一个同步的链接格式:ln-s 源文件 目标文件/-s 是 symbolic的意思,表示创建例:ln-s/lib/lsb/usr/lj/在usr目录下建立指向/lib/lsb目录的lj文件ln命令会保持每一处链接文件的同步性,不论你改动了哪一处,其它的文件都会发生相同的变化目录不能建立硬链接
8、,但可以建立软链接。,4.1.2 文件操作命令,5、创建文件链接命令lnln的链接又软链接和硬链接两种,无论是软链接还是硬链接,文件都保持同步变化。软链接就是ln-s*,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,软链接是可以跨分区的;硬链接ln*,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件,硬链接只能在同一分区内。用ls察看一个目录时,发现有的文件后面有一个的符号,那就是一个用ln命令生成的文件,用ls-l命令去察看,就可以看到显示的link的路径。,4.1.3 目录操作命令,1、目录结构Linux文件系统采用带链接的树形结构。,4.1.3 目录操作命令
9、,1、目录结构/:根目录/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin:bin 就是二进制(binary)英文缩写,可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等/boot:在这个目录下存放的都是系统启动时要用到的程序。/boot/vmlinuz为linux的内核文件;/boot/gurb:存放的是引导程序,/boot可以单独分区,如果单独分区,建议分区大小 为100M。,4.1.3 目录操作命令,1、目录结构/dev:dev 是设备(device)的英文缩写。这个目录中包含了所有linux系统中使用的外部设备,但是这
10、里并不是放的外部设备的驱动程序。访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount/dev/cdrom/mnt。/dev/console 系统控制台,也就是直接和系统连接的监视器。/dev/hd ide硬盘驱动程序接口/dev/sd scsi磁盘驱动程序接口/dev/st scsi磁带驱动器驱动程序。/dev/fd 软驱设备驱动程序。如/dev/fd0指系统的第一个软盘,4.1.3 目录操作命令,1、目录结构/dev:/dev/tty 提供虚拟控制台支持。如/dev/tty1指的是系统的第一个虚拟控制台/dev/pty 提供远程登陆伪终端支持。在进行telnet登录时就要用到
11、/dev/pty设备。/dev/ttys 计算机串行接口,对于dos来说就是“com1”口。/dev/cua 计算机串行接口,与调制解调器一起使用的设备。/dev/null“黑洞”,所有写入该设备的信息都将消失。例如:当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到/dev/null中即可。,4.1.3 目录操作命令,1、目录结构/dev:前面的10个字符为权限位,b为块设备,c为字符设备,s为socket套接字文件,p为FIFO文件8代表主设备号0代表从设备号,表示是这类设备的第几个,4.1.3 目录操作命令,1、目录结构/etc:这个目录下存放了系统管理时要用到的各种配置文件和子目
12、录。/etc/init/rc-sysinit.conf:主要描述了init进程是怎样启动确定的一个运行级别,不同的启动模式,各自启动的服务rc0-6也是不一样的/etc/rc?.d:启动的配置文件和脚本sysv-rc-conf:Ubuntu下开机进程管理工具,需要安装sudo apt-get install sysv-rc-conf/安装sysv-rc-conf工具执行sysv-rc-conf工具会出现如下界面,4.1.3 目录操作命令,1、目录结构/etc:/etc/mtab:这个文件会随着/proc/mount的变化而变化,文件系统的安装和卸载都会在这个文件中反映出来/etc/fdprm
13、软盘参数表,用以说明不同的软盘格式。可用setfdprm进行设置。/etc/fstab:这个文件会列出当前系统在启动时自动安装的所有文件系统,也包括用swapon-a启用的swap区的信息。可以使用mount a这个命令来手动地安装这个文件中列出的所有文件系统。另外,可以通过修改这个设置文件,使系统在启动时自动安装我们所需要的其他文件系统。/etc/f:DOS文件系统上的操作设置文件。,4.1.3 目录操作命令,1、目录结构/etc:/etc/issue:该文件包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内容由系统管理员确定。/etc/magic“file”的配置
14、文件。包含不同文件格式的说明,“file”基于它猜测文件类型/etc/motd motd是messageoftheday的缩写,用户成功登录后自动输出。内容由系统管理员确定。常用于通告信息,如计划关机时间的警告等。/etc/login.defs login命令的配置文件。/etc/profile、/etc/csh.login、/etc/csh.cshrc 登录或启动时bourne或cshells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。,4.1.3 目录操作命令,1、目录结构/etc:/etc/securetty 确认安全终端,即哪个终端允许超级用户登录。一般只列出虚拟控制台,这
15、样就不可能(至少很困难)通过调制解调器(modem)或网络闯入系统并得到超级用户特权。/etc/termcap 终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。/etc/group:列出有效的组名称及组中的用户信息/etc/passwd:帐号的密码文件 帐号 密码 用户号UDI 用户组号GID 所属组 用户主目录 用户所使用的shell,4.1.3 目录操作命令,1、目录结构/etc:/etc/shadow:包括加密后的帐号信息。影子
16、口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对超级用户可读。/etc/shells:包括系统的能使用的shell列表/etc/logrotate.conf:维护/var/log目录中的日志文件/etc/ld.so.conf:“动态链接程式”(Dynamic Linker)设置/etc/host.conf:告诉域名服务器怎么查找主机名/etc/hosts:网络中已发现的主机的名称列表,用于解析主机名,4.1.3 目录操作命令,1、目录结构/etc:/etc/networks:列举从机器所连接的网络能访问的网络名和网络地址,通过路由命令使用,允许使用网络
17、名称。/etc/protocols:列举当前可用的协议/etc/resolv.conf:在程式请求“解析”一个IP地址时,告诉内核应该查询哪个名称服务器/etc/rpc:包含RPC指令/规则,这些指令/规则能在NFS调用、远程文件系统安装等中使用/etc/services:将网络服务器名转换为端口号/协议,由inetd、telnet、tcpdump和一些其他程式读取,有一些C访问例程。,4.1.3 目录操作命令,1、目录结构/home:系统默认的用户主目录,新增用户账号时,用户的主目录都存放在此目录下,表示当前用户的主目录。如果建立一个用户,用户名是“test”,那么在/home目录下就有一个
18、对应的/home/test路径,用来存放用户的主目录。可以单独分区,并设置较大的磁盘空间,方便用户存放数据,4.1.3 目录操作命令,1、目录结构/sbin:这个目录是用来存放系统管理员的系统管理程序。/lib:lib是库(library)英文缩写。该目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。lib/modules:包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装载目录下。,4.1.3 目录操作命令
19、,1、目录结构/mnt;/media:光盘默认挂载点。这个目录在一般情况下也是空的。可以临时将别的文件系统挂在这个目录下,通常光盘挂载于/mnt/cdrom下。/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在/usr/local 目录下。/root:如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。/tmp:用来存放不同程序执行时产生的临时文件。/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内,4
20、.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/x:关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc下有一个名为自己进程号的目录。cmdline:启动进程的命令和参数。cwd:指向进程当前目录的一个连接。environ:进程所有的环境变量。fd:进程所有打开的文件描述符,目录下是一个个以数字为名称的连接,指向了进程当前正在使用的文件。maps,statm,mem:进程的内存信息。stat,status:进程的状态信息。,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/self 文件,实际上
21、是一个连接,指向了当前运行中的进程目录。/proc/cpuinfo:是当前系统 cpu 的详细信息,从型号到支持的特性,如果你是多核 cpu 的话,会看到多个这样的输出。检测 cpu 的程序,也是通过/proc/cpuinfo 来得到当前 cpu 的详细信息的,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/meminfo:是当前系统内存的详细信息。像 top、free 这些可以查看当前系统内存信息的程序,就是通过读取/proc/meminfo 来实现的,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/ve
22、rsion:是当前系统的版本信息,包括编译时间。uname 这个命令,就是通过它来得到内核版本和系统版本的/proc/filesystems:为当前系统支持的文件系统列表,你可以在程序中读取这个文件,以获得当前系统对文件系统的支持信息,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/apm:APM 高级电源管理信息。/proc/acpi:目录下为 ACPI 的详细信息。比方说,你想知道你的笔记本电脑是否连接了电源,你可以 cat/proc/acpi/ac_adapter/AC/state 看看结果是 on line 还是 off line。/proc
23、/cmdline:显示内核的启动参数,一般就是你 grub 中传入内核的那些参数,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/loadavg:显示系统的负载,w、top 这类程序也是从此得到系统负载信息。/proc/uptime:系统自启动来所经历的秒数,uptime 程序就是从此计算出系统启动后经历的时间的。/proc/devices:系统中所有可用的字符和块设备列表。Character devices:字符设备;Block devices:块设备;netlink:网络设备;lp打印机、tty终端、input输入设备,4.1.3 目录操作命令,
24、1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/iomem:I/O内存映射。,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/ioports:当前使用的IO 端口信息。/proc/dma:当前可用的 DMA 通道。/proc/mounts:系统当前的挂载信息。/proc/interrupts:显示被占用的中断信息和占用者的信息,以及被占用的数量。/proc/irq:为 IRQ 信息/proc/kcore:系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什
25、么地方,否则/proc下没有任何东西占用任何磁盘空间。),4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/kmsg:Linux内核启动输出的消息。也会被送到syslog。/proc/ksyms 核心符号表。/proc/modules 存放当前加载了哪些核心模块信息。/proc/partitions:分区信息,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/net 网络协议状态信息。/proc/stat 系统的不同状态,例如,系统启动后页面发生错误的次数。/proc/sys 目录下不仅提供了系统某些设置信息,
26、你还可以修改这些文件来在运行中改变系统的参数,比如,你想让别人 ping 不到你,只要在终端输入以下命令的第一条,如果要恢复让别人可以拼到时你,则须终端输入第二条命令即可(但必须是管理员权限才能执行这二条命令):,4.1.3 目录操作命令,1、目录结构/proc:虚拟的目录,是系统内存的映射。/proc/sys 下的可配置的选项很多,主要有 6 类:debug、dev、fs、kernel、net、vm,只要文件属性是可读写的,一般都对应了系统某个可以修改的参数。不过系统重启之后参数就恢复默认值了/sbin;/usr/sbin;/usr/local/sbin:放置系统管理员使用的可执行命令,如f
27、disk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能“查看”而不能设置和使用。像典型的poweroff命令。,4.1.3 目录操作命令,1、目录结构/usr:应用程序存放的目录。/usr/bin:存放应用程序/usr/sbin:超级用户的一些管理程序/usr/share:存放共享数据/usr/share/doc:系统说明文件存放目录/usr/share/man:程序帮助文档存放目录 联机手册分为以下九节:内部命令、系统调用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。/usr/share/info:gnu信息文档
28、,4.1.3 目录操作命令,1、目录结构/usr:应用程序存放的目录。/usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件/usr/include:linux下开发和编译应用程序所需要的头文件/usr/local:存放软件升级包/usr/local/bin:本地增加的命令/usr/local/lib:本地增加的库/usr/src:源代码,linux内核的源代码就放在/usr/src/linux里,4.1.3 目录操作命令,1、目录结构/var:放置系统执行过程中经常变化的文件/var/catman:包括了格式化过的帮助(man)页。/var/lib:存放系统正常运行时要
29、改变的文件。/var/local:存放/usr/local中安装的程序的可变数据(即系统管理员安装的程序)。/var/lock:锁定文件。/var/log:各种程序的日志(log)文件,/var/log里的文件经常不确定地增长,应该定期清除。login(/var/log/wtmplog记录所有到系统的登录和注销)syslog(/var/log/messages记录存储所有核心和系统程序信息)。,4.1.3 目录操作命令,1、目录结构/var:放置系统执行过程中经常变化的文件/var/run:保存在下一次系统引导前有效的关于系统的信息文件。例如,/var/run/utmp包含当前登录的用户的信息
30、。程序或服务启动后,其PID也存放在该目录下/var/spool:放置“假脱机(spool)”程序的目录,如mail、news、打印队列和其他队列工作的目录。每个不同的spool在/var/spool下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail中。,4.1.3 目录操作命令,2、目录的创建和删除mkdir命令:建立目录语法格式:mkdir-ep-m mode dirnamermdir命令:删除目录语法格式为:rmdir-p-s dirnamermdir不能删除安装文件系统的根目录。,4.1.3 目录操作命令,3、目录的显示和改变工作目录ls命令:打印有关文件和目录的
31、信息。,4.1.3 目录操作命令,3、目录的显示和改变工作目录cd命令:改变工作目录。语法格式为:cd directory,4.1.4 口令、权限命令,1、修改口令passwd命令:改变登录或modem(调制解调器)拨号shell口令。语法格式为:passwd-m-dluf-n minimum-x expiration-r retriesnamepasswd s-a name2、改变存取权限chmod命令:改变文件或目录的存取权限。语法格式:符号方式:chmod-R who+|-|=mode file绝对方式:chmod-R mode file,4.1.4 口令、权限命令,2、改变存取权限ch
32、mod命令:改变文件或目录的存取权限。mode:权限设定字串,格式如下:ugoa.+-=rwxX.,.,u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是+表示增加权限、-表示取消权限、=表示唯一设定权限;r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行,4.1.4 口令、权限命令,2、改变存取权限chmod命令:改变文件或目录的存取权限。使用八进制数设置权限:chmod abc fileabc三个八进制数字分别代表ugo的权限。执行权、写权和读权所对应的数值分别是
33、1,2和4。若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=5。如:chmod 755 mydir(myfile),4.1.4 口令、权限命令,3、改变文件和目录的所有权chown命令:改变文件或目录的所有权限。命令格式:chown 选项 用户 文件和目录列表用户:可能是用户号或文件/etc/passwd中出现的用户名文件和目录列表:用于重新指定所有权的用空格分隔的文件和目录列表。常用选项-c:只有在文件的权限确实改变时才进行详细说明-f:不打印权限不能改变的文件的错误信息。-v:详细说明权限的变化。-R:递归改变目录及其内容的权限。,4.1.5 其他命令,
34、1、压缩与解压文件命令gzip命令gzip anaconda-ks.cfg/将文件压缩成.gz文件gzip d anaconda-ks.cfg.gz/解压缩tar命令tar czvf test.tar.gz s123/打包文件或目录tar xzvf test.tar.gz/解压-c代表压缩-z表示压缩成相应的gzip的形式-v代表显示压缩的文件有哪些-f表示指定压缩的文件名-x 表示提取、解压,4.1.5 其他命令,2、查看每个目录所占的空间du命令,4.1.5 其他命令,3、网络命令netstat命令:netstat nl用于显示网络基本信息,4.1.5 其他命令,3、网络命令netstat
35、命令:netstat nl用于显示网络基本信息,4.1.5 其他命令,3、网络命令ifconfig命令:用于查询当前工作的网卡,4.1.5 其他命令,3、网络命令ifconfig命令:用于查询当前工作的网卡ifconfig ech0 down/关闭ech0网卡ifconfig ech0 up/启用ech0网卡ifconfig a/显示所有网卡ifconfig etch0 192.168.0.90 netmask 255.255.255.0/修改ech0的IP地址,4.1.5 其他命令,3、网络命令查询用户信息命令finger命令与who命令,4.1.5 其他命令,4、日期日历命令显示与设置当前
36、时间命令date-s/设置当前时间,只有root权限才能设置,其他只能查看当前日历,4.1.5 其他命令,5、time命令time命令:获取一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。,4.1.5 其他命令,6、显示系统中进程状态命令pslinux上进程有5种状态:运行:正在运行或在运行队列中等待中断:休眠中,受阻,在等待某个条件的形成或接受到信号不可中断:收到信号不唤醒和不可运行,进程必须等待直到有中断发生僵死:进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放停止
37、:进程收到SIGSTOP、SIGSTP、SIGTIN、SIGTOU信号后停止运行,4.1.5 其他命令,6、显示系统中进程状态命令psps工具标识进程的5种状态码:D不可中断 uninterruptible sleep(usually IO)R 运行 runnable(on run queue)S 中断 sleepingT 停止 traced or stopped Z 僵死 a defunct(”zombie”)processps命令参数(常用)-A 列出所有的行程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程,4.1.5 其他命令,6、显示系统
38、中进程状态命令psps-au(x)输出格式:USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMANDUSER:进程拥有者PID:pid%CPU:占用的 CPU 使用率%MEM:占用的内存使用率VSZ:占用的虚拟内存大小RSS:占用的内存大小TTY:终端的次要装置号码(minor device number of tty),4.1.5 其他命令,6、显示系统中进程状态命令psps-au(x)输出格式:STAT:该进程的状态D:不可中断的静止R:正在执行中S:静止状态T:暂停执行Z:不存在但暂时无法消除W:没有足够的内存分页可分配:高优先级的进程N:
39、低优先级的进程L:有内存分页分配并锁在内存,4.1.5 其他命令,6、显示系统中进程状态命令psps-au(x)输出格式:START:进程开始时间TIME:执行的时间 COMMAND:所执行的指令,4.2 shell程序设计,Shell概述Shell变量Shell中的特殊字符,4.2.1 shell概述,Shell:外壳,提供上层的应用与底层Linux的交互。Shell的任务包括:实现用户与Linux内核之间的交互;shell是一个基本的命令解析程序;是一种高级程序设计语言。,4.2.1 shell概述,1、Shell的特点和主要版本在Linux系统中通常提供多种不同的Shell,常用的有Bo
40、urne shell(简称sh)、C-shell(简称csh)、Korn shell(简称ksh)和Bourne Again shell(简称bash)。bash是Linux中一个默认的shell,本节主要介绍bash。查看shell版本的命令如下所示$0是一个特殊的变量,它的内容是当前这个Shell程序的文件名,4.2.1 shell概述,1、Shell的特点和主要版本如何查询系统能使用的shell,4.2.1 shell概述,1、Shell程序示例【例1】由3条简单命令组成的shell程序(文件名为ex1)#!/bin/bash date pwd cd.pwd,为什么执行完shell脚本后
41、,cd命令并未起作用?,4.2.1 shell概述,2、Shell程序示例【例1】由3条简单命令组成的shell程序(文件名为ex1)#!/bin/bash date pwd cd.pwd,#是脚本中做注释用的。#!/bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径。如果ext1.sh脚本第一行写:#!Bash,那么执行这个脚本时会出现以下错误,4.2.1 shell概述,3、Shell过程的建立和执行输入定向到Shell过程以过程名作为参数其执行过程与上一种方式一样,但这种方式的好处是能在脚本名后面带有参数,从而将参数值传递
42、给程序中的命令,使一个Shell脚本可以处理多种情况,4.2.1 shell概述,3、Shell过程的建立和执行将Shell过程改为可执行文件新建的test.sh是没有执行权限的,为”-rw-rw-r-”,所以要想直接执行它,就必须先赋予它执行权限#!/bin/bashwhile truedo date;sheep 1;donechmod 755 test.sh/tt1.sh/每隔1秒查询一次时间,4.2.1 shell概述,3、Shell过程的建立和执行称作Shell文件或者Shell脚本(Shell script)。建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或ged
43、it)进行程序录入和编辑加工。执行Shell过程的方式主要有以下3种输入定向到Shell过程以过程名作为参数将Shell过程改为可执行文件,4.2.2 shell变量,Shell中有3种类型的变量:环境变量系统变量临时变量用户变量位置参数,4.2.2 shell变量,环境变量:永久性变量,其值不会随Shell过程执行结束而消失$HOME用于保存注册目录的完全路径名$HOSTNAME(主机名称)$LOGNAME(当前登陆名)$TERM终端的类型$PATH用于保存用冒号分隔的目录路径名,Shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。,4.2.2
44、 shell变量,环境变量:永久性变量,其值不会随Shell过程执行结束而消失$UID当前用户的识别字,取值是由数位构成的字串$PWD当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。$PS1、$PS2命令提示符$MANPATH(手册页存放的目录)$SHELL(当前Shell名)$MANPATH(手册页存放的目录)$SHELL(当前Shell名)export PATH=/home/xxy:$PATH/用于修改环境变量,4.2.2 shell变量,系统变量:$?:最近执行的命令返回的值;$:本进程的进程号$!:最近后台进程号$#:shell自变量个数,$1表示第一个自变量临时变量:在
45、Shell程序内部定义的,其使用范围仅限于定义它的程序,出了本程序就不能再用它;而且当程序执行完毕,它的值也就不存在了用户定义的变量位置参数,4.2.2 shell变量,1)用户定义的变量定义变量并赋值的一般形式是:变量名字符串使用 unset 取消对变量的定义用echo命令显示变量值。readonly varname/标记只读,4.2.2 shell变量,1)位置参数是一种在调用Shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数#!/bin/bash#test.shecho 这是脚本的第一个名称:$0echo 这是脚本的第二个位置参数:$1echo 这是脚本的第三个位
46、置参数:$2echo 这是脚本的第四个位置参数:$3,4.2.2 shell变量,输入输出命令read命令由标准输入设备读取数据,然后赋给指定的变量格式:read 变量1变量2echo命令将其后的参数在标准输出设备上输出。各参数间以空格隔开,以换行符终止。,4.2.3 shell中的特殊字符,1、转义字符和通配符通配字符(wildcards)是转义字符的子集,用来查找匹配文件名。例如:?*-!/通配一个字符:?,通配多个字符:*转义字符(metacharacters)指的是在Shell中有特殊含义的字符。例如:|;!?*$()使用键,可以自动补齐,4.2.3 shell中的特殊字符,2、引号双
47、引号由双引号括起来的字符,除$、倒引号和反斜线()仍保留其特殊功能外,其余字符通常作为普通字符对待。单引号由单引号括起来的字符都作为普通字符出现。,4.2.3 shell中的特殊字符,3、输入输出重定向符执行一个Shell命令时通常会自动打开3个标准文件标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout),通常对应终端的屏幕;标准出错输出文件(stderr),通常对应终端的屏幕在Shell中,这3个文件都可以通过重新定向符进行重新定向。,4.2.3 shell中的特殊字符,3、输入输出重定向符输入重定向符输入重定向符“”的作用是把命令(或可执行程序)的标准输出重定向到指
48、定文件。这样,该命令的输出就不在屏幕上显示,而是写入指定文件中。who abc/命令who的输出重新定向到abc文件中,在屏幕上看不到执行who的结果。,4.2.3 shell中的特殊字符,4、注释、管道线和后台命令注释Shell程序中以#开头的正文行表示注释。管道线在Linux系统中管道线是由竖杠(|)隔开的若干个命令组成的序列ps e|grep vsftpd/显示所有进程,然后使用grep筛选出vsftpd进程,4.2.3 shell中的特殊字符,4、注释、管道线和后台命令管道线管道表示将前一个命令的输出转成下一个命令的输入过滤器(filters):用来接收标准输入,经过一定的转化,再写到
49、标准输出。所以,过滤器一般放在管道符中间一个管道线中可以包括多条命令ls|grep m?.c|wc l/打印出当前目录文件名是以m打头、后随一个字符的所有C文件的数目。TTY显示为?,表示为该进程是后台守护进程,4.2.3 shell中的特殊字符,4、注释、管道线和后台命令后台命令通常,在主提示符之后输入的命令都立即得到执行。在执行过程中,用户和系统可以发生交互作用:用户输入数据,系统进行处理,并输出运行结果。这种工作方式就是前台方式。但是有些程序的运行要花费较长时间,如调用C编译对C程序进行编译。如果想在编译的同时做别的事情,那么就输入命令:cc m1.c&即在一条命令的最后输入“&”符号,Shell就在后台启动该程序,并且马上显示主提示符,提醒输入新的命令。,4.2.3 shell中的特殊字符,4、注释、管道线和后台命令后台命令大家执行一下这二条命令在shell中的执行结果:while true;do date;sleep 1;done done第一条是后台命令,没有办法用Ctrl+C停下来;第二条是前台命令,可以用Ctrl+C停下来,
链接地址:https://www.31ppt.com/p-5394155.html