‘壹’ linux常用的shell有哪些
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Linux常用的shell有哪些?
1、Bourne shell
Bourne shell是一个交换式的命令解释器和命令编程语言。
Bourne shell是标准的UNIX shell,以前常被用来做为管理系统之用。大部分的系统管理命令文件,例如rcstart、stop与shutdown都是Bourne shell的命令档,且在单一使用者模式下以root签入时它常被系统管理者使用。Bourneshell是由AT$T发展的,以简洁、快速着名,Bourne shell提示符号的默认值是$。
2、C shell
C shell是一种比Bourneshell更适合的变种shell,使用的是类C语言,csh是具有C语言风格的一种shell,其内部命令有52个,比较庞大。
C shell是柏克莱大学所开发的,且加入了一些新特性,如命令列历程、别名、内建算术、档名完成和工作控制。对于常在交谈模式下执行shell的使用者而言,他们较喜欢用C
shell;但对于系统管理者而言,则较偏好以Bourne shell来做命令档,因为Bourne shell命令档比C shell命令档来的简单及快速。C shell提示符号的默认值是%。
3、korn shell
korn shell是一个Unix shell,它由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容Bourne shell并包含了c shell的很多特性,例如贝尔实验室用户需要的命令编辑。
Korn shell是Bourne shell的超集,由AT&T的David korn所开发。它增加了一些特色,比C shell更为先进。Korn shell的特色包括了可编辑的历程、别名、函式、正则表达式万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Korn shell提示符号的默认值也是$。
‘贰’ linux shell 重启命令
linux shell 重启命令有五个,分别如下:
1、shutdown。
2、poweroff。
3、init。
4、reboot。
5、halt。
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
相关简介
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
‘叁’ shell命令和linux命令一样么
Linux命令就是shell命令。不同的shell有不同的命令。Linux命令包括所有的shell
‘肆’ LINUX快速入门第八章:Shell基础
我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面。Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境。当一个用户登录 Linux 之后,系统初始化程序 init 就根据 /etc/passwd 文件中的设定,为每个用户运行一个被称为 Shell(外壳)的程序。
确切地说,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常用shell命令
linux常用shell命令汇总:
lscpu:查看cpu的统计信息
cat /proc/cpuinfo:查看cpu详细信息
free –m:查看内存情况
cat /etc/meminfo:查看内存详细信息
lsblk:查看硬盘分区分布
df –lh:查看各分区的情况
cat /proc/partitions:查看硬盘和分区
uname –a:查看版本,当前操作系统内核信息
cat /proc/version:查看当前操作系统版本信息
cat /etc/redhat-release:查看系统发行版信息
ifconfig:查看所有网宽升络接口
netstat tnlp:查看所有监听端口
netstat –at:查看所有tcp端口
netstat –au:查看所有udp端口
top:查看系统所有进程的详细信息:比如cpu、内存等信息
hostname:查看计算机名
w:查看活动用户
id:查看指定用户信息
last:查看用户登录日志
rpm –qa:显示所有可安装的程序包
uptime:查看系统运行时间,用户数,负载
ps –ef:查看所有进程
kill -9 进程名:杀死指定进程
scp 本地文件夹 目慎大老标机器用户名@目标机仿羡器IP:目标目录:拷贝本地文件夹到远程机器上
scp -r本地目录 目标机器用户名@目标机器IP:目标目录:拷贝本地目录到远程机器上
rpm –qa | grep 软件名称:查看本机是否安装了该软件
rpm –ivh xxx.rpm:安装xxx
yum install xxx:在线安装xxx
rpm –e xxx:删除已经安装的xxx
yum repolist all:列出所有仓库
‘陆’ Linux中的sh命令的详细解释
linxu下的sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!
一、Linux中的sh命令的详细解释
sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。
语法
bash [options] [file]
选项
-c string:命令从-c后的字符串读取。
-i:实现脚本交互。
-n:进行shell脚本的语法检查。
-x:实现shell脚本逐条语句的跟踪。
二、Linux中的sh命令的具体例子
使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh
+ DEFINE=30
+ cat /var/log/secure
+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'
++ cat /root/satools/black.txt
+ for i in '`cat /root/satools/black.txt`'
++ echo 121.42.0.16=1427
++ awk -F= '{print $1}' + IP=121.42.0.16
++ echo 121.42.0.16=1427
++ awk -F= '{print $2}'
+ NUM=1427
+ '[' 1427 -gt 30 ']'
+ grep 121.42.0.16 /etc/hosts.deny
+ '[' 1 -gt 0 ']'
+ echo sshd:121.42.0.16
+ echo vsftpd:121.42.0.16
+ for i in '`cat /root/satools/black.txt`'
++ echo 121.42.0.72=276
++ awk -F= '{print $1}'
+ IP=121.42.0.72
++ awk -F= '{print $2}'
++ echo 121.42.0.72=276
+ NUM=276 + '[' 276 -gt 30 ']'
+ grep 121.42.0.72 /etc/hosts.deny
+ '[' 1 -gt 0 ']'
+ echo sshd:121.42.0.72
+ echo vsftpd:121.42.0.72
三、Linux中对.sh文件的操作命令
1、创建test.sh文件
touch test.sh
2、编辑sh文件
vi test.sh
3、保存退出
敲击esc, 然后输入 :wq ,回车退出
4、添加可执行权限,当然默认就是可执行的。
chmod +x test.sh
5、运行文件
(1)./test.sh
(2)sh test.sh
6、删除文件
rm test.sh
‘柒’ Linux Shell 教程——想玩转linux就请一直看下去
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
Shell 在线工具
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。
Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 Shell 种类众多,常见的有:
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh ,它同样也可以改为 #!/bin/bash 。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。
输入一些代码,第一行一般是这样:
#!/bin/bash
echo "Hello World !"
运行实例 »
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
echo 命令用于向窗口输出文本。
1、作为可执行程序
将上面的代码保存为 test.sh,并 cd 到相应目录:
注意,一定要写成 ./test.sh ,而不是 test.sh ,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
‘捌’ Linux最常用的Shell命令
有些人仍然会有这种愚蠢的想法,他们认为使用Linux就必须使用Linux
shell命令。胡说!你可以不懂得任何Linux命令,比如说ps,grep,ls等,但是你仍然可以使用很多现代的Linux桌面发行版。
Linux的系统管理员与桌面用户不一样,他们不像桌面用户一样使用Cinnamon,GNOME,Unity,或者KDE,他们所有的时间都是用Linux命令。
对于桌面用户来讲,若是了解一部分Linux命令,你可以更好的使用Linux,体验它的魅力,下面列举出了一些:
Shell基础:
你可以通过打开Linux的terminal(终端)来执行Shell命令。Shell的种类有很多种,例如CSH,Bourne
Shell,Korn
Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne
again
shell(bash)。
想看看你的Shell是哪一种,执行下面的命令
echo
$SHELL
在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。
一个重要的地方是,你要注意文本的大小写。例如,ls,是DOS的dir命令的Linux版本。这个命令列出当前工作目录下的文件列表。如果你输入的是LS,你得到的只能是“找不到命令”的错误信息。
另外在Linux
shell命令中一个重要的地方是,你可以将命令串起来。这是Unix/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就是下一个命令的输入。
Linux命令有自己的语法规则:
基本的语法就像这样:
command
-option
file
例如:
ls
-la
这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输出的内容比较丰富,不只包括文件
名,还有文件的访问权限,所有者,所属组等。你会发现这个命令会在屏幕上输出大量的信息,如果当前目录的文件比较多的话。
现在就是“pipe”出场的时候了。
ls
-la
|
more
你会在屏幕上看到如下信息:
你也可以在大多数Linux命令中使用通配符。通配符就是可以代表文件名中任何未知的字符或字符串。例如,*就代表任意字符串,?代表单个字符。例如:
‘玖’ linux操作系统的shell命令有哪些
1 文件与目录操作命令
1.1文件内容查询命令 grep、fgrep、egrep
语法:grep[选项][查找模式][文件名1,文件名2,……]
选项:
-E 每个模式作为一个扩展的正则表达式对待
-F 每个模式作为一组固定字符串对待,而不作为正则表达式
-i 比较时不区分大小写
-l 显示首次匹配匹配串所在的文件名并用换行符将其分开。当在文件中多次出现匹配串时,不重复显示次文件名;
-x 只显示整行严格匹配的行
1.2文件查找命令 find、locate
语法:
find 起始目录 寻找条件 操作以名称和文件属性查找
选项: -name‘字串‘ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-lname‘字串‘ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。
-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group‘字串‘ 查找属于用户组名为所给字串的所有的文件。
-user‘字串‘ 查找属于用户名为所给字串的所有的文件。
-path‘字串‘ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711、644。
-type x 查找类型为 x的文件,
语法:locate 相关字
1.3文件的复制、删除和移动命令 文件复制命令
[选项] 源文件或目录 目标文件或目录
选项:
- a 通常在拷贝目录时使用
-d 拷贝时保留连接
-f 删除已经存在的目标文件而不提示
-i 和f选项相反
-p 此时cp除复制源文件内容外,还将其修改的时间和访问权限也复制到新文件中
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件,此时目标文件必须为一个目录名;
-l 不作拷贝,只是链接文件文件移动命令
mv[选项] 源文件或目录 目标文件或目录
-i 交互式操作
-f 禁止交互式操作文件删除命令
[选项] 文件…
-f 忽略不存在的文件,从不给出提示
-r 指示rm将参数中列出的全部目录和子目录均递归地删除
-i 进行交互式删除 1.4文件链接命令
ln [选项] 目标 [链接名] 或 ln [选项] 目标 目录
选项:
- s 建立符号链接
1.5目录的创建和删除命令 mkdir 创建一个目录
语法: [选项] dirname
选项: - m 对新建目录设置存取权限
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
rmdir 删除空目录
语法: rmdir [选项] dirname
选项:
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
1.6改变工作目录,显示目录内容命令
1、改变工作目录: cd [directory]
2、显示当前工作的目录的绝对路径: pwd
3、显示目录内容: ls [选项] [目录或是文件]
选项:
- a 显示指定目录下所有子目录与文件,包括隐藏文件;
-c 按照文件的修改时间排序
-C 分成多列显示各项
-d 如果参数是目录,只显示其名称而不显示其下的个文件
-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-l 以长格式来显示文件的详细信息
-L 若指定的名称为一个符号链接,则显示链接所指向的文件
-t 显示时按修改时间而不是名字排序
-u 显示时按文件上次存取的时间而不是名字排序
4、改变文件或目录的访问权限命令chmod [who] [+| - | = ] [mode] 文件名?
Who选项:
- u表示用户,即文件和目录的所有者
-g表示同组用户
-o(other)表示其他用户
-a (all)表示所有用户
操作符号: + 添加某个权限 - 取消某个权限 = 赋予给定权限并取消其他所有的权限(如果有的话)
mode 选项:
- r 可读
-w 可写
-x 可执行 chgrp [-R] group filename? 改变目录或文件所属的组
chown [-Rv] 用户或组 文件
1.7备份与压缩命令
1、tar命令 为文件和目录创建档案语法:
tar [主选项+辅助选项] 文件或者目录 : u 主选项
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,则选此项
-r 把要存档的文件追加到档案文件的末尾
-t 列出档案文件的内容,查看已经备份了哪些文件;
-u 更新文件
-x 从档案文件中释放文件;
-u 辅助选项
-b 该选项为磁带机设定的,其后跟一位数字,用来说明区块的大小,系统预设值为20
-f 使用档案文件或设备,这个选项通常是必选的
-k 保存已经存在的文件。例如把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖;
-m 在还原文件时,把所有文件的修改时间设定为现在;
-M 创建多卷的档案文件,以便在几个磁盘中存放;
-v 详细报告tar处理的文件信息
-w 每一步都要求确认
-z 用gzip来压缩/解压缩文件
2、gzip命令 压缩/解压缩命令
语法:gzip [选项] 压缩(解压缩)的文件名
选项:
-c 将输出写到标准输出上,并保留原有文件
-d 将压缩文件解压
-l 显示每个压缩文件的详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-t 测试、检查压缩文件是否完整
-v 对每一个压缩和解压的文件,显示文件名和压缩比
3、unzip 命令 用MS windows下的压缩软件winzip压缩的文件在linux系统下展开
语法:unzip [选项] 压缩文件名.zip
选项: -x 文件列表 解压缩文件,但不包括指定的file文件
-v 查看压缩文件目录,但不解压
-t 测试文件有无损坏 ,但不解压
-d 目录 将压缩文件解到指定目录下
-z 只显示压缩文件的注解
-n 不覆盖已经存在的文件
-o 覆盖已经存在的文件且不要求用户确认
-j 不重建文档的目录结构,把所有文件解压到同一目录下
1.8在LINUX环境下运行DOS命令 linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读写文件和目录。
mcd 目录名 改变MSDOS目录 m 源文件 目标文件 在MSDOS和UNIX之间复制文件;
mdel 目录名 删除MSDOS目录 mdir 目录名 显示MSDOS目录 mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统 rnlabel 驱动器号 产生MSDOS卷标 mmd 目录名 删除MSDOS目录 mren 源文件 目标文件 重新命名已存在的MSDOS文件 mtype 文件名 显示MSDOS文件的内容
2 设备管理命令
1)linux采用下面的形式定义一个IDE硬盘:/dev/hd[drive][partition]
2)SCSI硬盘使用同样的机制表示: /dev/sd[drive][partition]
3)对于一般的LINUX分区,可以用mkfs将其格式化并生成文件系统,命令如下: mk2fs –c ;
4)装载文件系统:
mount –t ext2 [-o optioms] partition mountpiont 其中,
-t为指定装载文件系统的类型;
-o指定一些选项,如只读ro,可读可写rw等等; partition定义分区名称; mountpiont定义文件系统被装载的目录名称。
5)装载CD-ROM文件系统:mount –t iso9660 –r /dev/cdrom /mnt/cdrom
6)装载软驱文件系统: CODE:[Copy to clipboard]mount –t msdos –rw /dev/fd0 /dev/mnt/floppy
7)卸载文件系统 CODE:[Copy to clipboard]umount /mnt/cdrom 磁带设备的安装要注意以下几点:
1、 首先要选择一个唯一的SCSI ID号,然后再将设备链接到适当的位置
2、 选择驱动程序。
3、 生成设备文件。SCSI磁带设备的主要设备号是9,次要设备号是0。设备文件名通常是/dev/nrst0(不支持回绕的磁带设备)或/dev/nst0(支持回绕的磁带设备) 用 ls /dev/*rst* 检查磁带设备文件是否存在,如果不存在,用 mknod –m 666 /dev/nrst0 c 9 9 mknod –m 666 /dev/rst0 c 9 0 生成
4、 可以对块长度、缓存、磁带密度等参数进行一些设置,例如 mt setblk 20 将块长度指定为20 mt setblk 0 指定块程度没有限制
5、 通过检查系统的启动信息可以确定系统是否识别了新的磁带设备。用dmesg命令,查看是否有以下类似的信息: aha274x:target 4now synchronous at 4.4Mb/s Vendor:TANDBERG Model:TDC 3800 Rev: =05: Type: Sequential-Access ANSI SCSI revision: 02 Detected scsi tape st0 at scsi0, id4, lun0 Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total
3 软件包管理命令
3.1软件安装的步骤 在LINUX系统上安装软件的步骤有:
1、 查找所要安装软件的源文件
2、 把源文件解开放到一个目录中,命令如下: tar zxvf <源文件名>;
3、 针对本操作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure
4、 make源文件,通常是运行make命令,即执行 make
5、 安装二进制文件和其他支撑文件,运行命令: make install
6、 最后,完成所有其他必须的配置
3.2软件包管理命令 QUOTE: rpm –ivh <软件包>; // 安装指定的软件包,并在安装过程中用#表示安装的进度 rpm –Uvh <软件包>; // 更新一个已经存在的或还没安装好的软件包,并删除所有该软件包的旧版本。 rpm –e //卸载一个rpm软件包 rpm –qa // 查看系统中已经安装的软件包 rpm –q <软件包>; // 查看系统中某个软件包的版本号; rpm –qlp <软件包>; //列出某个软件包中的所有文件 rpm –qf <软件包>; //找出一个文件属于哪个软件包
4 LINUX系统常用命令
4.1 与系统管理有关的命令 Wall (Write All) 对全部已 登录的用户发送信息,用户可以先反要发送的信息写好存入一个文件中,然后输入: # wall < FileName 例:Wall ‘Thank you !’ Write 向某一用户发送信息。 Write xxq hello 输入Ctrl+C组合即可终止 Shutdown命令 Shutdown [选项] [时间] [警告信息]
-k 并不真正关机,而只是发出警告信息给所有的用户。
-r 关机后立即重新启动。
-h 关机后不重新启动。
-f 快速关机,启动时跳过fsck。
-n快速关机,不经过init程序。
-c 取消一个已经运行的shutdown 例:系统马上关机:Shutdown –h now Free命令查看当前系统内存的使用情况, CODE:[Copy to clipboard]Free [-b] [-k] [-m] CODE:[Copy to clipboard]-b 以字节为单位显示。
-k 以K字节为单位显示。
-m 以M字节为单位显示。 Uptime QUOTE: 显示系统已经运行了多长的时间:现在时间、系统已经运行的时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
4.2与用户有关的命令 Passwd命令设置、更换用户口令。
Passwd [用户名] Su 使一个普通的用户具有超级用户的权利,离开可用EXIT命令。 4.3其它命令 Echo命令在显示器上显示一段文字,一般起到一个提示的作用。
echo [-n] 字符串 Cal命令显示某年某月的日历。
cal [选项] [月[年]]
选项的含义:
-j 显示也给定月中的每一天是一年中的和几天(从1月1日算起)。
-y 显示也整年的日历。 Date命令 date命令的功能是显示和设置系统日期和时间。 4.4磁盘管理 磁盘空间管理 df命令检查文件系统的磁盘空间占用局部。
Df [选项]
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以K字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
- t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘窨使用情况(与t相反)。
-T 显示文件系统类型。 命令 的英文原意为disk usage,含义为显示磁盘空间的使用情况。功能是统计目录(或文件)所占磁盘空间的大小。
[选项] [Names…]
-s 对每人Names 参数只给也占用的数据块总数。
-a 递归地显示指定目录中各文件用子孙目录中的各文件占用的数据块总数。
-b 以字节为单位列也磁盘窨使用情部(缺省以K字节为单位)
-k 以1024字节为单位列也磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省)
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。 dd命令把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。
语法: dd 〔选项〕 if =输入文件(或设备名称)。 of =输出文件(或设备名称)。 ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。 bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。 cbs = bytes 一次转换bytes字节。 count = blocks 只拷贝输入的blocks块。 conv = ASCII 把EBCDIC码转换为ASCII码。 conv = ebcdic 把ASCII码转换为EBCDIC码。 conv = ibm 把ASCII码转换为alternate EBCDIC码。 conv = blick 把变动位转换成固定字符。 conv = ublock 把固定们转换成变动位 conv = ucase 把字母由小写变为大写。 conv = lcase 把字母由大写变为小写。 conv = notrunc 不截短输出文件。 conv = swab 交换每一对输入字节。 conv = noerror 出错时不停止处理。 conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。 fdformat命令低级格式化软盘。
format [-n] device QUOTE: -n 格式化后不做检验
4.5常用的网络命令 FTP命令 Telnet命令。
Netstat命令
-a 显示所有的scoket,包括正在监听和。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同”ifconfig –e”
-n 以网络IP地址代替名称,显示也网络连接情形。
-r 显示核心路由表,格式同”route –e:。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。 nslookup命令。 finger命令,功能是查询用户的信息。 ping命令。(用户和组的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有关进程的命令。 进程和启动 at [-V] [-q] [-f文件名] [-mldbv]时间 at –c 作业 [作业….] AT命令启动的进程系统只执行一次。 batch [-V] [-q 队列] [-f 文件名] [-mv] [时间] 在系统负载较小时,资源比较空闲时执行。 cron命令按一定的时间间隔执行命令。 crontab命令用于安装、删除或列出用于驱支cron后台进程的表格。进程查看
who命令。 w命令是一个比who命令更强大的命令 w
–[husfV] [user] -h 不显示标题。
-u 当列出当前进程和CPU时间时忽略用户名。
-s 使用短模式。不显示登录时间JCPU和PCPU时间。
-f 切换显示FROM项,也就是远程主机名项。
-V 显示版本信息。 user 只显示指定用户的情况。 ps命令。
-e 显示所有进程。
-f 全格式
-h 不显示标题。
-l 长格式。
-w 宽输出。 a 显示终端上所有进程,包括其他用户的进程。 r 只显示正在运行的进程。 x 显示没有控制终端的进程。 top 命令动态显示系统当前的进程和其他状况。 5系统的启动过程。
‘拾’ linux下shell脚本命令
Shell脚本基本知识
概述:shell其实是内核与用户之间的一个接口,
shell脚本
如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。
执行shell脚本
要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。
为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic
echo命令:
echo “this is an example of the echo command!”
屏幕上就会回显“this is an example of the echo command!”
#符号
用于在shell脚本肿可以包含注解入口
echo “hello”
#this is a comment line. this would not proce any output!
echo “world!”
第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息
变量:
可以在任何时间通过简单的赋值来创建。
语法:
<variable name>-<value>
Linux 中的所有变量都被当作字符串
引用变量:
$符号用于引用一个变量的内容
variable1 = ${variable2}
读入值给变量
在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。
$read fname
本地和全局shell变量
局部变量
当引用shell时,只有创建它的shell能够知道变量的存在
全局变量
称为子shell
shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。
环境变量:
通过改变这些变量的值,用户能够定制此环境
一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录
当一个用户登录后,进入相应的HOME的目录
$ echo $HOME
PATH变量
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
PS1变量
PS1(Prompt String 1)变量包含了shell提示符,$符号
$ PS1 = “HELLO>”
HELLO>
PS2变量
是为第二个提示符设置值的环境变量
LOGNAME变量
包含用户的注册名字
$echo “${LOGNAME}”
SHLVL 变量
该变量包含当前工作的shell level
SHELL变量
环境变量存储了用户缺省的shell
env命令
可用来查看所有的已移出的环境变量表和它们各自的值!
命令替换
在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换
echo “the data is `date`”
expr命令
用于求之算术表达式。该命令的输出被送到标准输出
$ expr 4 + 5
将在屏幕上显示9
算术展开:
你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值;
$((expression))
example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。
所有未应答的询问总数=所有询问的总数-应答的询问的数量
<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
条件执行
test和[]
求值表达式,并返回true(0)或false()
数值测试:
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
if构造
Linux shell提供了循环和判定的构造,可以在shell脚本中使用
算术测试
结合if构造,它可以用于测试变量的数字值
串测试
test命令也可以用于字符串
= 等于则为真
!= 不相等则为真
-z 字符串 长度为零则为真
-n 字符串 长度不为零则为真
文件测试
test命令也可以用于检查文件的状态
-e 文件存在则为真
-r 文件存在并且可读则为真
-w 文件存在并且可写则为真
-x 文件存在并且可执行则为真
-s 文件存在并且至少有一个字符则为真
-d 文件存在并且为目录则为真
-f 文件存在并且为普通文件则为真
-c 文件存在并且为字符型文件则为真
-b 文件存在并且为块特殊文件则为真
-a并且 -o或者 !非
exit命令
用于终止shell脚本的执行并返回到$提示符下
case 。。。esac
shell脚本中使用的这个构造依据变量的值而执行一组特定指令
当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。
example3
迭代
while构造
while <条件>
do
<命令(s)>
done
只有条件为真的时候,才能执行do与done之间的命令
until构造
until循环构造的求值模式于while循环相反
until循环将继续执行直到求值的条件为真的时候
for构造
for variable_name in <list_of_values>
do
…
done
for循环取一列值作为输入并对循环中每个值执行循环
break和contineu命令
同其他语言中的用法
example4
控制进程的执行
请求后台处理
用于请求后台进程的符号是 (&)
$ wc tempfile &
[1] 2082
$ vi newfile
检查后台进程
ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。
终止后台进程
可用kill,如下所示
kill 278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
time fine /etc –name “passwd” 2> /dev/null /dev/null表明忽略错误信息。
管道的介绍
垂直条(|)是管道字符
它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送
ls –l | more
用管道组合命令,功能强大