我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面。Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境。当一个用户登录 Linux 之后,系统初始化程序 init 就根据 /etc/passwd 文件中的设定,为每个用户运行一个被称为 Shell(外壳)的程序。
创新互联建站是一家专业提供琼海企业网站建设,专注与网站设计制作、成都网站制作、H5响应式网站、小程序制作等业务。10年已为琼海众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
确切地说,Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至编写一些程序。
Shell 处在内核与外层应用程序之间,起着协调用户与系统的一致性、在用户与系统之间进行交互的作用。图 1 是 Linux 系统层次结构图,Shell 接收用户输入的命令,并把用户的命令从类似 abed 的 ASCII 码解释为类似 0101 的机器语言,然后把命令提交到系统内核处理;当内核处理完毕之后,把处理结果再通过 Shell 返回给用户。
换句话说:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
Shell 与其他 Linux 命令一样,都是实用程序,但它们之间还是有区别的。一旦用户注册到系统后,Shell 就被系统装入内存并一直运行到用户退出系统为止;而一般命令仅当被调用时,才由系统装入内存执行。
与一般命令相比,Shell 除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,Shell 是解释性的,组合功能很强,与操作系统有密切的关系,可以在 Shell 脚本中直接使用系统命令。大多数 Linux 系统的启动相关文件(一般在 /etc/rc.d 目录下)都是使用 Shell 脚本编写的。
同传统的编程语言一样,Shell 提供了很多特性,这些特性可以使 Shell 脚本编程更为有用,如数据变量、参数传递、判断、流程控制、数据输入和输出、子程序及中断处理等。
说了这么多,其实我们在 Linux 中操作的命令行界面就是 Linux 的 Shell,也就是 Bash,但是我们的图形界面是 Shell 吗?其实从广义讲,图形界面当然也是 Shell,因为它同样用来接收用户的操作,并传递到内核进行处理。不过,这里的 Shell 主要指的是 Bash。
Shell 脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。
Shell的分类
目前 Shell 的版本有很多种,如 Bourne Shell、C Shell、Bash、ksh、tcsh 等,它们各有特点,下面简要介绍一下。
最重要的 Shell 是 Bourne Shell,这个命名是为了纪念此 Shell 的发明者 Steven Bourne。从 1979 年起,UNIX 就开始使用 Boume Shell。Bourne Shell 的主文件名为 sh,开发人员便以 sh 作为 Bourne Shell 的主要识别名称。
虽然 Linux 与 UNIX 一样,可以支持多种 Shell,但 Boume Shell 的重要地位至今仍然没有改变,许多 UNIX 系统中仍然使用 sh 作为重要的管理工具。它的工作从开机到关机,几乎无所不包。在 Linux 中,用户 Shell 主要是 Bash,但在启动脚本、编辑等很多工作中仍然使用 Bourne Shell。
C Shell 是广为流行的 Shell 变种。C Shell 主要在 BSD 版的 UNIX 系统中使用,发明者是柏克莱大学的 Bill Joy。C Shell 因为其语法和 C 语言类似而得名,这也使得 UNIX 的系统工程师在学习 C Shell 时感到相当方便。
Bourne Shell 和 C Shell 形成了 Shell 的两大主流派别,后来的变种大都吸取这两种 Shell 的特点,如 Korn、 tcsh 及 Bash。
Bash Shell 是 GNU 计划的重要工具之一,也是 GNU 系统中标准的 Shell。Bash 与 sh 兼容,所以许多早期开发出来的 Bourne Shell 程序都可以继续在 Bash 中运行。现在使用的 Linux 就使用 Bash 作为用户的基本 Shell。
Bash 于 1988 年发布,并在 1995-1996年推出Bash 2.0。在这之前,广为使用的版本是1.14,Bash 2.0增加了许多新的功能,以及具备更好的兼容性。表 2 中详细列出了各版本的具体情况。
注意,Shell 的两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容。Boume 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh(Bash 和 zsh 在不同程序上支持 csh 的语法)。
本章讲述的脚本编程就是在 Bash 环境中进行的。不过,在 Linux 中除了可以支持 Bash,还可以支持很多其他的 Shell。我们可以通过 /etc/shells 文件来査询 Linux 支持的 Shell。命令如下:
在 Linux 中,这些 Shell 是可以任意切换的,命令如下:
用户信息文件 /etc/passwd 的最后一列就是这个用户的登录 Shell。命令如下:
大家可以看到,root 用户和其他可以登录系统的普通用户的登录 Shell 都是 /bin/bash,也就是 Linux 的标准 Shell,所以这些用户登录之后可以执行权限允许范围内的所有命令。不过,所有的系统用户(伪用户)因为登录 Shell 是 /sbin/ndogin,所以不能登录系统。
笔记:
sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。如果估计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区
逻辑卷管理器LVM(Logicl Volume Manager),通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整,而且可以将零碎的空间进行整合
• 物理卷(PV-Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘
• 卷组(VG-Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组
• 逻辑卷(LV-Logical Volume)
逻辑卷建立在卷组之上,卷中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组
逻辑卷管理器和是主分区还是逻辑分区没有关系
vgdisplay 里的PE Size是指逻辑卷的最小单位。假设PE Size是4M;比如我向里写东西。我一个文件可能只占用1B的容量,但是我先占上4M,其他的也是,不足4M我也先占上4M。等到每个块都用了,但是每个块都有剩余位置的时候,会把每个区的剩余位置都拼凑一下,以供使用。但是只要还有没被占用的块,都不会使用用过的块。逻辑卷大小为这个PE Size的整数倍
处在它所在的文件夹的时候是无法卸载的
我现在想创建两个卷组,vg1和vg2。sdc1和sdc2给vg1,sdc3和sdc4给vg2
修改卷组属性,用来设置卷组是否处于活动状态,活跃状态的时候卷组无法被删除,非活动状态的卷组才能被删除掉。VG Status:resizable是表示可被调整大小的状态。lvremove时有可能因为逻辑卷里东西过多导致删除逻辑卷的时候假删除,即逻辑卷没了,但是里面东西还在,这时卷组觉得它里面还有东西,就会处于活跃状态,这时需要↓
接下来resize1要用来做块(逻辑卷)的放大,resize2要用来做块的缩小。设备放大时不论是挂载状态下或非挂载状态下都可以做放大,即在线放大。但是缩小的话设备要是非挂载的状态,即离线缩小
df -lh
发现size大小变小了。之前给的resize1是800M,resize2是784M,这里的大小表示文件系统(filesystem)大小(即这个设备能存多少东西),剩下的容量mkfs,挂载的时候都会损耗一定的容量大小。文件系统大小不会随着块的变大或缩小而改变,需要手动才能改变文件系统大小。
❉ 放大要先放大块的大小,再放大文件系统的大小
lvresize -L +200M /dev/vg3/resize1 放大逻辑卷
如果不带+,会出现warning,+时是在原有基础之上加200M,不加+的话就是将现有逻辑卷的大小调整成200M。如果比之前设置的逻辑卷小的话就证明是要将其缩小,会造成数据丢失
resize2fs /dev/vg3/resize1 调整文件系统大小,但是不会管你到底是放大还是缩小,就是将文件系统调整到它可以变大的最大程度
df -lh 看设备容量变大了
❉ 缩小的时候要先将文件系统缩小,再缩小逻辑卷的大小
umount /mnt/rs2/
resize2fs /dev/vg3/resize2 700M
出现提示 [请先输入e2fsck -f /dev/vg3/resize2 命令],将处于多个块当中的内容整理到一起,以便进行缩小。但是也不能百分百保证数据不丢失
e2fsck -f /dev/vg3/resize2
resize2fs /dev/vg3/resize2 700M
lvresize -L 700M /dev/vg3/resize2
mount /dev/vg3/resize2 /mnt/rs2/ 重新挂载回来
df -lh 看系统里设备和文件系统挂载的使用情况
发现size变小了,缩小成功
1选择
1.1一个文件的名字为rr.Z,可以用来解压缩的命令时()
tar
gzip
compress
uncompress
1.2可以结束进程命令()
kill
ctrl+c
shutdown
halt
1.3 Linux下对文件进行归档的命令为:(多选)
dd
tar
zip
unzip
1.4 Linux查当前目录下30天以前的文件并移动到/dev/null下的命令:(多选)
find.-mtime 30-type f xargs mv{}/dev/null;
find.-mtime+30-type xargs mv{}/dev/null;
find.-mtime+30-type f-exec mv{}/dev/null;
find.-mtime+30-type f-exec rm–rf{};
1.5 dstat与下面哪个命令类似
vmstat
sar
iotop
abc
1.6 rpm安装软件的参数
rpm-ivh
rpm-Ivh
rpm-Uvh
rpm-Iuvh
1.7 yum升级软件包选项
rpm-uvh
rpm-Uvh
1.8查看网络流量命令是?
iftop
nsload
ifstatd
以上命令全可以
1.9停止进程的命令,除了kill还有谁?
pkill
killa
allkill
以上命令都不正确
1.10服务器之间传文件的命令有?
wget
scp
ftp
以上命令都可以
1.11对文件进行归档的命令为
dd
cpio
gzip
tar
1.12在rpm命令中,安装新的rpm包软件使用的参数是()
-i
-v
-h
-e
1.13du命令中,使用友好的方式显示信息的参数是()
-h
-f
-a
-t
1.14将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现如此任务的tar命令格式___
tar zxvf/home/stud1/wang.tar.gz/home/wang
tar xcvf/home/stud1/wang/home/wang
tar zcv/home/stud1/wang/home/wang
tar zcvf/home/stud1/wang/home/wang.tar.gz
1.15终止一个前台进程可能用到的命令和操作()A:kill
B:CTRL+C
C:shutdown
D:halt
1.16关闭Linux系统(不重新启动)可使用命令()
A:Ctrl+Alt+Del
B:halt
C:shutdown-r now
D:reboot
1.17下列提法中,不属于ifconfig命令作用范围的是__
A:配置本地环回地址
B:配置网卡的IP地址
C:激活网络适配器
D:加载网卡到内核中
1.18有关归档和压缩命令,下面描述正确的是()
A:用uncompress命令解压缩由compress命令生成地后缀为.zip的压缩文件
B:upzip命令和gzip命令可以解压相同类型文件
C:tar归档其压缩的文件可以有gzip命令解压缩
D:tar命令归档后的文件也是一种压缩文件
1.19终止一共前台进程可能用到的命令和操作
kill
ctrl+c
shut down
halt
1.22为了将当前目录下的归档文档myftp,tar解压缩到/tmp目录下,用户可以使用命令
tar xvzf my
tar xvzf my
tar vzf my
tar xvzf my
1.23下面有关linux查看系统负载的命令,说法错误的是?
uptime命令主要用于获取主机运行时间和查询linux系统负载等信息
vmstat命令可以查看cpu负载
sar命令可以查看网络接口信息
free命令可以查看磁盘负载情况
1.24以下哪些方式/命令不可以查看某ip是否可达?
telnet
ping
tracert
top
1.25 tar命令用于解压的参数是?-v-x-c-f
1.26下面哪个命令不是用来查看网络故障?
telnet
ping
init
netstat
1.28为了知道谁在正注册到你的机器上,可以用命令:___
Who users finger ping
1.29查看本网段其他计算机的MAC地址,可先ping对方主机,然后;
arp-g
arp-n
arp-a
arp-d
1.3014日下午2点date+%y%m%d%H%M输出的时间是什么
201711141212
1711141212
2017111412
201711021212
1.31以下哪个命令可以得出1487进程的线程运行情况()
top-Hp 1487
top-Pp 1487
ps-mp 1487
sat-p 1487
1.32从/home/oracle下搜索一个日志文件alert.log,以下哪种方式可达到目的()
find/home./oracle-name alert.log
locate alert.log
find./-mtime 7 alert.log
find/home/oracle-exec alert.log
1.34以下哪些命令可以用来测试网络中特定主机的80端口是否可以访问()
Ping telnet netstat lsof
2填空
2.1测试网络中主机的连通性用什么命令
2.2如何查看numa是否关闭_**_
2.3将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现如此任务的tar命令格式_**
2.4某个进程使用端口7001,如何快速找到该进程的PID
2.5结束后台进程的命令是**_**
2.6将/home/studl/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此存到/home目录下,实现此任务的tar命令格式******__******
2.7 ping100个包的命令——
2.8 linux下,解压缩bz2格式文件的命令是**_**
2.9 linux下,查看网络连接状态的命令是**___**
2.10Linux查看文件系统的命令为__,显示目录或文件占用磁盘的命令为___
2.11通常我们测试网络连通性使用的ping命令,它是通过____协议进行工作的
2.12简述下列命令的各自作用
nslookup
dig
top
traceroute
2.13将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此问价保存到/home目录下,实现此任务的tar命令格****_****
2.14Linux系统查看进程数的命令___
2.15Linux系统查看系统内存的命令:____,**__**
2.16Linux系统查看cpu使用率的命令:____,**__**
2.17Linux系统查看硬盘空间使用率的命令:___
2.18Linux系统将某一文件下的所有.log文件进行打包压缩,命令为___
2.19Linux常用的性能监控命令是:_、_、_、_、_、_等
2.20假设output程序可能输出标准输出和标准错误,请写出一条命令把这两者都忽略__
2.21 rpm软件包安装命令**_**
3简答
3.1查看硬盘结构显示的命令?查看文档命令?编辑文档命令?
3.2配置网络环境的命令,手工修改IP,主机名,DNS和网关
3.3有压缩包a.tar.gz,如何解压该包?如何不解压该包,如何查看该包的内容?
3.4某进程abcd在系统中起了很多,数量难以统计,造成系统负荷较高,如何一条命令确保将此进程全部杀掉
3.5某日志路径是/data/logs/a.txt,如何跟踪该日志,以查看当时的运行状态?
3.6 dmesg命令显示的是哪方面信息
3.7寻找名称为mytest.log的文件
3.8写出du-sh与df-h的区别
3.9查看当前linux服务器是否监听80端口,如果监听,请找出其进程ID,并结束该进程。
3.10使用curl或者wget获取http服务的header信息。
3.11写出查看linux系统性能的命令,如cpu、内存、流量、io等
3.12解释下列命令的意思
dd if=/dev/random of=/dev/sda
3.13如何查看占用端口8080的进程
3.14查着占用内存最多的进程
3.15压缩和解压缩目录/opt/gjsy/所有文件命令
3.16Linxu系统下如何查看8080端口上运行的程序状态
3.17ps aux中的VSZ代表什么意思,RSS代表什么意思?
3.18PING是使用TCP/IP协议中的**_**协议
3.19写出网络故障排查常用的命令**__**
3.20写出你常用的网络抓包工具,软件名称**__**
3.21将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式___
3.22解释该命令的含义:nohup zcat test.gz|grep"x6game"~/log.txt
2/dev/null
3.23查看系统硬件负载工具或命令有哪些
3.24使用lsof命令查看占用80端口的进程
3.25如何使用CURL测试POST接口
3.26怎样在目录/home/user/training/下找到扩展名为txt的文件
3.27最常用的网络测试命令有什么?
3.28ping的测试结果中都包含哪些部分?
3.29如何找出占用22端口的进程及进程号?
3.30如何删除当前目录(包含字目录)下所有30天以前创建的文件名后缀为.log的文件
3.31以下一些Linux命令的作用分别是什么?
init 0
chkconfig--level 3 sendmail on
tar-czvf test.tar.gz./
chown-R
ln-s/data/log//var/log/sina_log
umount-f/data0
rpm-ivh baihui.rpm
rpm-qf/bin/ls
3.32LINUX常用命令pwd、top、df、ifconfig、cat分别代表什么含义?
3.33linux常用命令:关机、重启、编辑某文档文件、删除某文件、更改操作系统密码命令分别是什么?
3.34请使用命令:删除/backup目录下10天前的普通文件
3.35如何查看服务器当前连接ip的列表
3.36写出liunx系统中diff、chmod、grep、kill、tar五个常用命令的功能
3.37简述tar-cjvf/tmp/test.tar.gz/root命令中错误及错误原因
3.38Linux系统从A服务器测试B服务器一个tcp端口是否联通使用___
3.39写一个脚本查找最后创建时间使3天前,后缀是*.log的文件并删除
3.40linux如何根据进程ID查找启动程序的路径
3.41查看占用swap的进程id
3.42列出linux常见打包工具并写相应解压缩参数(至少三种)
3.43Linux中锁定一个文件用什么命令?他和md5sum有什么区别?
3.44如何在系统中查找所有所属用户为user1的文件
3.45查看某个文件或者文件夹占用磁盘空间大小的命令
3.46如何查看远程linux系统运行了多少时间?我的服务器内存,cpu,硬盘都是多少,系统版本,linux会优先将数据缓存到内存中,我的机器真实内存消耗实际上是多少
3.47查看服务器当前开启了哪些端口?如何查看某服务器是否存在IO压力
3.48如何查看某个文件system.log被哪些进程占用
扩展
1.21在退出unix系统账户之后还需要继续运行某个进程,那么可用()
awk sed crontab nohup screen
1.20使用trace命令的目的是()
可用的,十分成功的测试手段
非常基本的测试手段
把IP地址和DNS加入路由表中
在源到目标传输的过程中查找失散点
1.27哪个变量用来指定一个远程x应用程序将输出放到哪个x server上
TERM
DISPLAY
ECHO
OUTPUT
1.33P系列服务器被用做文件服务器,所有的用户文件存都放在一非rootvg的文件系统上,用什么方法可以快速备份和恢复这些数据和文件系统的定义()
tar
cpio
savefs
savevg
Linux常用指令
(1)指令名称:pwd
pwd命令也是最常用最基本的命令之一,用于显示用户当前所在的目录。
(2)指令名称:cd
cd命令不仅显示当前状态,还改变当前状态,它的用法跟dos下的cd命令基本一致。
cd ..可进入上一层目录
cd -可进入上一个进入的目录
cd ~可进入用户的home目录
(3)指令名称:cp
使用方式:
cp [options] source dest
cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
参数 说明
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb
将所有的C语言程式拷贝至 Finished 子目录中 :
cp *.c Finished
(4)名称:mv
使用方式:mv [options] source dest
mv [options] source... directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
范例:
将档案 aaa 更名为 bbb :
mv aaa bbb
将所有的C语言程序移至 Finished 子目录中 :
mv -i *.c /Finished
(5)指令名称 : chmod
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。
mode : 权限设定字串,格式如下 : [ugoa...][+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
参数 说明
-c 若该档案权限确实已经更改,才显示其更改动作
-f 若该档案权限无法被更改也不要显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmod a=rwx file 和 chmod 777 file 效果相同
chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
若用chmod 4755 filename可使此程式具有root的权限
(6)指令名称 : ls
使用方式 : ls [-alrtAFR] [name...]
说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数 说明
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r 将档案以相反次序显示(原定依英文字母次序)
-t 将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有档案,则以下之档案亦皆依序列出
范例:
列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
ls -ltr s*
将 /bin 目录以下所有目录及档案详细资料列出 :
ls -lR /bin
列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :
ls -AF
(7)指令名称:rm
使用方式:rm [options] name...
说明:删除档案及目录。
参数 说明
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
范例:
删除所有C语言程式档;删除前逐一询问确认 :
rm -i *.c
将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished
(8)指令名称:rmdir
使用方式: rmdir [-p] dirName
说明: 删除空的目录。
参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
范例:
将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
rmdir -p BBB/Test
(9)指令名称:touch
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[CC]YY][.ss]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数 说明
a 改变档案的读取时间记录
m 改变档案的修改时间记录
c 假如目的档案不存在,不会建立新的档案。
f 不使用,是为了与其他 unix 系统的相容性而保留
r 使用参考档的时间记录,与 --file 的效果一样
d 设定时间与日期,可以使用各种不同的格式
t 设定档案的时间记录,格式与 date 指令相同
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
将 file 的时间记录改变成与 referencefile 一样。
touch -r referencefile file
将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
(10)指令名称:gzip
说明:gzip命令用于压缩文件。
参数 : -d 将压缩文件解压
范例:
如果要将ye.txt文件压缩,可用如下命令:
gzip ye.txt
这样就可以压缩文件并在文件名后面加上gz扩展名,变成文件ye.txt.gz。
解压缩文件可用gzip -d命令实现:
gzip -d ye.txt.gz
这样就可以解压缩文件并删除gz扩展名。
(11)指令名称:tar
说明:tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
参数 说明
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
f 使用档案文件或设备,这个选项通常是必选的。
m 在还原文件时,把所有文件的修改时间设定为现在。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
范例:
可用如下方法建立tar档案:
tar cvf
例如,如果要将当前目录中所有文件存档到ye.tar中,可用如下命令:
tar cvf ye.tar *.*
要浏览档案内容,将c选项变成t。如果要浏览ye.tar档案中的内容,可用如下命令:
tar tvf ye.tar
要取出档案内的内容,将c选项变成x。如果要将ye.tar档案中的内容取到当前目录中,可用如下命令:
tar xvf ye.tar
新版的tar可以直接访问和建立gzip压缩的tar档案,只要在tar命令中加上z 选项就可以了。例如:
生成压缩档案ye.tar.gz :
tar czvf ye.tar *.txt
显示压缩档案ye.tar.gz的内容:
tar tzvf ye.tar *.txt
取出压缩档案ye.tar.gz的内容:
tar xzvf ye.tar *.txt
(12)指令名称:mail
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
说明:
mail 不仅只是一个指令, mail 还是一个电子邮件程序。
参数:
s 邮件标题
c 邮件地址 (2个地址以上用,一个地址不用加此参数)
范例:
①将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。
mail user01@mcs.njnu.edu.cn
系统会提示输入“subject”
②将 mail.txt 的内容寄给yzhu@mcs.hpc.njnu.edu.cn ,同时抄送给root@mcs.hpc.njnu.edu.cn
mail -s “标题” -c yzhu@mcs.hpc.njnu.edu.cn root@mcs.hpc.njnu.edu.cn mail.txt
接收到的邮件都保存在目录 /var/spool/mail/用户名
(13)指令名称 : wall
使用方式 :
wall [ message ]
使用说明:
wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。
例子 :
传讯息"hi" 给每一个使用者 :
wall hi