『壹』 linux常用的shell有哪些
最常用的当然是bash这个shell了,不需要多说,因为大部分Linux发行版都默认是这回个shell;还有C shell用户也很多,答因为它的语法和C语言有点像;还有一个ash,念做A Shell,在智能路由器系统OpenWrt、LEDE上作为默认shell,话说玩路由器Linux系统OpenWrt的也不少啊,好多硬件论坛上都知道这个系统,所以ash也算是常用的Linux shell吧。
『贰』 linux操作系统的shell命令有哪些
1 文件与目录操作命令1.1文件内容查询命令 grep、fgrep、egrep语法:[选项][查找模式][文件名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、显示当前工作的目录的绝对路径: pwd3、显示目录内容: 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/cdrom6)装载软驱文件系统: CODE:[Copy to clipboard]mount –t msdos –rw /dev/fd0 /dev/mnt/floppy7)卸载文件系统 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 total3 软件包管理命令3.1软件安装的步骤 在LINUX系统上安装软件的步骤有:1、 查找所要安装软件的源文件2、 把源文件解开放到一个目录中,命令如下: tar zxvf <源文件名>;3、 针对本操作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure4、 make源文件,通常是运行make命令,即执行 make5、 安装二进制文件和其他支撑文件,运行命令: make install6、 最后,完成所有其他必须的配置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下如何将字符串写入文件
可以使用echo命令将文本流导向标准输出,然后再使用>符号重新定向标准输出到文件。用法内示例:容将字符串"hello world"写入文件file.txt中$ echo "hello world" > file.txt然后再尝试用cat命令从读取文件并写入到标准输出,可以看到字符串已经成功写入文件。$ cat file.txt
『肆』 linux shell怎么查找文件中指定字符串,并把该字符串和下一行的内容写到另一个文件中
有两种写入方式:1、grep-i"aaa"-A1 1.txt|grep-v -e "–">2.txtgrep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。2、awk'/aaa/{getlinevar;print$1"\n"var}'1.txt>2.txtawk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。linuxshell中引号的使用方法:shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符,反引号(")对shell则有特殊意义。如:abc="howareyou"(bash/pdksh)setabc="howareyou"(tcsh)这个命令行把三个单词组成的字符串howareyou作为一个整体赋值给变量abc.abc1='@LOGNAME,howareyou!'(bash/pdksh)setabc1='$LOGNAME,howareyou!'(tcsh)abc2="$LOGNAME,howareyou!"(bash/pdksh)setabc2="$LOGNAME,howareyou!"(tcsh)。
『伍』 如何编写简单的Shell脚本文件之Linux的基本操作
编写shell脚本 首先你要有Linux命令的基础,怎么进入文件,怎么执行文件,有什么命令等等。
我们的shell 类型有很多,常见的shell环境有sh,bash,csh,zsh等等。在Linux的脚本中可以最常见的就是 sh或者shell。在shell脚本中最开始 要指定shell环境。于是乎我们有了shell的沙邦:
/bin/sh 或者/bin/bash
shell脚本的格式:shell脚本一般是以*.sh 为名字,在权限上面是有可执行权限x的也就是chmod u+x *.sh
命令的执行:3种:
sh 脚本路径/脚本名
cd 脚本路径 && ./脚本名
soure 脚本路径/脚本
写一个最简单的脚本吧:
[[email protected] ~]#vim 1.sh
/bin/sh
echo "this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》"
[[email protected] ~]#chmod u+x 1.sh
[[email protected] ~]#./1.sh
this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》
学习Linux需要多学多练
『陆』 Linux的shell文件如何来执行命令添加计划任务
crontab 命令
crontab -e ——>编辑当前用户的crontab任务;
crontab -l ——>列出当前用户的crontab任务;
crontab -r ——>删除当前用户的crontab任务;
crontab书写格式
PS:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作;
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”;
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”;
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次;
『柒』 Linux里面基本的shell脚本编写有哪些
shell脚本就是一些命令的集合。举个例子,我想实现这样的操作:1)进入到/tmp/目录;2)列出当前目录中所有的文件名;3)把所有当前的文件拷贝到/root/目录下;4)删除当前目录下所有的文件。简单的4步在shell窗口中需要你敲4次命令,按4次回车。这样是不是很麻烦?当然这4步操作非常简单,如果是更加复杂的命令设置需要几十次操作呢?那样的话一次一次敲键盘会很麻烦。所以不妨把所有的操作都记录到一个文档中,然后去调用文档中的命令,这样一步操作就可以完成。其实这个文档呢就是shell脚本了,只是这个shell脚本有它特殊的格式。《linux 就该这么学》Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。test.sh中第一行一定是 “#! /bin/bash” 它代表的意思是,该文件使用的是bash语法。如果不设置该行,那么你的shell脚本就不能被执行。’#’表示注释,在前面讲过的。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。当然这些注释并非必须的,如果你懒的很,可以省略掉,但是笔者不建议省略。因为随着你工作时间的增加,你写的shell脚本也会越来越多,如果有一天你回头查看你写的某个脚本时,很有可能忘记该脚本是用来干什么的以及什么时候写的。所以写上注释是有必要的。另外系统管理员并非你一个,如果是其他管理员查看你的脚本,他看不懂岂不是很郁闷。该脚本再往下面则为要运行的命令了。
『捌』 linux 怎么进入shell编程模式
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
『玖』 linux shell编程中文件内容修改方法
两种思路,第一种,你打开文件,找到匹配的行,改掉,重写个文件,删除原来的。改这个文件为一样的名字。第二种,以需要改写的文本,把原来的文件分成两个部分,要改写的部分空出,然后重定向合并到一个文件里。例如,file.txt分为a.txtb.txt现在1a.txt>file.txt2变行>>file.txt3b.txt>>file.txt
『拾』 Linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(10)linuxshell文件操作扩展阅读:
Shell编程的常用技巧:
一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:
1、只存在一个该输入字符开头的命令或路径,此时自动补全;
2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;
3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。
二、历史命令
1、history命令可以显示历史执行过的命令;
2、使用!+序号执行该序号对应的命令;
3、使用!+字符执行该字符开头的最后一次执行的指令。
三、命令别名
1、实现别名:alias ddd="df -Th";
2、删除别名:unalias ddd;
3、显示所有别名命令列表:alias;
4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。
四、重定向
1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;
2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;
3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;
4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;
5、重定向标准错误:2>> 标准错误信息追加到指定文件;
6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。
未经允许不得转载:山九号 » linuxshell文件操作|linux在shell下如何将字符串写入文件