鱼C论坛

 找回密码
 立即注册
楼主: zfzhuman123

[技术交流] linux常用命令及基础

  [复制链接]
发表于 2012-5-6 16:18:32 | 显示全部楼层
楼主,你严重打击到我用Linux的信心了,你那指令都霸占了2页半了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-6 12:32:37 | 显示全部楼层
:lol:lol:lol:lol:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-6 11:17:43 | 显示全部楼层
好东西需要顶???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-31 08:17:11 | 显示全部楼层
强大的  以后就上这学习命令了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-18 20:03:28 | 显示全部楼层
现在真在学习。。、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-8 11:23:21 | 显示全部楼层
支持下哈哈哈妹子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-28 21:55:46 | 显示全部楼层
好东西。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-28 18:18:00 | 显示全部楼层
了解 看看 学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-29 12:38:43 | 显示全部楼层
看着有点小乱、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-15 13:23:07 | 显示全部楼层
有些都是错误的,什么情况,怎么搞的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-5 08:44:55 | 显示全部楼层
也许。。。用得着。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-26 13:21:56 | 显示全部楼层
还有玩linux的  好  我也学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:23:18 | 显示全部楼层
8.7        编写自已的Shell脚本
#!/bin/sh
# usage: demo vars...
echo $@
以上是一个标准的Shell脚本的格式,第一行告诉解释程序,强制当前的shell,使用bash执行这个脚本,第二行是该脚本的注释,一般是使用该脚本的用法,第三行是脚本真正的执行,这个例子里,仅仅是把用户输入的参数回显到标准输出上,将上述脚本保存在名为demo文件里。
8.8        执行Shell脚本
有二种方式可以运行一个Bash脚本:
1、        为脚本文件加上可执行权限,然后执行:
chmod u+x demo
./demo This is test string!
脚本输出:
This is test string!
2、        运行/bin/bash命令并且把脚本名作为它的参数:
/bin/bash demo This is test string!__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:23:05 | 显示全部楼层
8.6.1        测试文件状态
表达式        返回值
-d file        如果这个文件是一个目录,返回true
-f file        如果这个文件是一个普通文件,返回true
-r file        如果这个文件是只读的,返回true
-s file        如果这个文件长度非0,返回true
-t [filedes]        如果文件描述符filedes的联系着终端的,返回true
-w file        如果这个文件是可写的,返回true
-x file        如果这个文件是可执行的,返回true
-b file        如果这个文件是块特殊文件,返回true
-c file        如果这个文件是字符串特殊文件,返回true
-e file        如果这个文件存在,返回true
-l file        如果这个文件存在而且是一个符号链接文件,返回true

8.6.2        测试时使用逻辑操作符
表达式        含义
!expression        逻辑非操作符:当后面的expression为false时,返回true
(expression)        用于把表达式分组的括号,在每个括号的前后至少要有一个空格
expression  -a expression        逻辑与操作符:当左右的表达式均为true时才返回true
expression  -o expression        逻辑或操作符:当左边或者右边的表达式为true,则返回true

8.6.3        字符串测试
表达式        返回值
str        如果str是一个非空字符串,则返回true
str1 = str2        如果str1等于str2,则返回true
str1 != str2        如果str1不等于str2,则返回true
-n str        如果str的长度大于0,则返回true
-z str        如果str的长度为0,则返回true

8.6.4        测试数值
表达式        返回值
int1 –eq int2        如果int1等于int2,则返回true
int1 –ge int2        如果int1大等于int2,则返回true
int1 –gt int2        如果int1大于int2,则返回true
int1 –le int2        如果int1小等于int2,则返回true
int1 –lt int2        如果int1小于int2,则返回true__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:22:54 | 显示全部楼层
8.4        Bash的启动文件
文件名        功能描述
/etc/profile        登录时自动执行
~/.bash_profile,~/.bash_login,~/.profile        登录时自动执行
~/.bashrc        shell登录时自动执行
~/.bash_logout        退出时自动执行
~/.bash_history        记录最近会话的命令
/etc/passwd        记录用户资源等信息

8.5        Bash的元字符
元字符        作用        例子
回车换行        结束一个命令        
空格        分割命令行中的元素        ls /etc
Tab        命令自动补全        
#        开始一行注释        #This is a comment line
“        引用多个字符但是允许替换        “$file”.bak
$        表示一行的结束以及显示变量的值        $PATH
&        让一个命令在后台执行        command &
‘        单引号,引用多个字符        ‘$100,000’
()        在子shell中执行命令        (command1;command2)
*        匹配0个或者多个字符        chap*.ps
[]        插入通配符        [a-s]或者[1,5-9]
^        表示一行的开始以及作为否定符号        [^3-8]
`        “Esc”键正下方键,替换命令        PS1=`command`
{}        在当前shell中执行命令        {command1;command2}
|        创建命令间的管道        command1 | command2
;        分割顺序执行的命令        command1; command2
<        重定向命令的输入        command < file
>        重定向命令的输出        command > file
?        匹配单个字符        lab.?
/        用作根目录或者路径名中的分割符        /usr/bin
\        转义字符;转义回车换行字符,允许在下一行中继续shell命令        command arg1 \arg2 arg3\?
!        启动历史记录列表中的命令和当前命令        !!,!4
~        代表主目录        ~/.bashrc

8.6        Shell的条件测试
条件测试在Shell脚本的编写时,占有重要的地位,因为它直接决定你的脚本实际执行的分支路径,可使用以下两种形式:
test condition
或者
[ condition ]
使用方括号时,要注意在条件两边加上空格。__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:22:43 | 显示全部楼层
8.3        Bash的环境变量
8.3.1        可修改的环境变量
环境变量名        变量的用途
CDPATH        包含cd命令要逐个查找的路径,cd命令在这些路径下查找作为参数传递给它的目录名。如果CDPATH没有设置,cd命令则查找当前目录
EDITOR        用户在程序中使用的默认编辑器,例如E-mail程序elm
ENV        Linux查找配置文件的路径
HOME        当第一次登录时,主目录的名字
HISTFILE        存放历史记录的文件的路径名
PATH        搜索命令或者程序的所有目录
PS1        在命令行中出现的shell提示符
PWD        当前工作目录的名字
TERM        用户使用的控制台终端的类型

8.3.2        只读的环境变量
环境变量名        变量的用途
$0        程序的名字
$1~$9        命令参数1~9的值
$*        所有命令行参数的值
$@        所有命令行参数的值。如果$@被“”包括,即“$@”,这相当于其中的每一个参数的值被“”包括,相反,如果$*被“”包括,即“$*”,这就相当于所有的参数值作为一个串被“”包括。这就是$@同$*在被“”包括的时候的差别,其他时候这二者是等价的
$#        记录了命令行参数的总个数
$$        当前进程的ID号
$?        最近一次命令的退出状态
$!        最近一次后台进程的ID号

8.3.3        读写shell变量
特殊字符        用途        描述
$variable        得到一个变量的值,如果没有被初始化则为null        返回“variable”的值,如果没有被初始化则返回null
${variable}        得到一个变量的值,如果没有被初始化则为null,通常在其他东西要添加到变量值的时候使用        返回“variable”的值,如果没有被初始化则返回null
${variable:-string}        得到一个变量的值,如果这个变量没有被定义则返回一个确定的值        当“variable”存在而且不是空值的时候返回变量的值,否则返回“string”
${variable:=string}        如果一个变量没有被定义则把一个已知的值赋给它并返回一这个值        当“variable”存在而且不是空值的时候返回变量的值,否则把“string”赋给“variable”,并返回“string”
${variable

                               
登录/注册后可看大图
string}        如果变量没有被定义则显示一条消息        当“variable”存在而且不是空值的时候返回变量的值,否则显示字符串“variable:”,并在其后显示“message”
${variable:+string}        测试一个变量存在与否        当“variable”存在而且不是空值的时候返回返回“string”,否则返回“string”__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:22:31 | 显示全部楼层
8        Shell基础知识
8.1        Shell简介
Shell是一种具备特殊功能的程序, 它是介于使用者和linux 操作系统之核心程序(kernel)间的一个接口。为什么我们说 shell 是一种介于系统核心程序与使用者间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个系统资源的管理者与分配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因为错误的操作而造成系统的伤害?众所周知,对计算机下命令得透过命令(command) 或是程序(program);程序有编译器(compiler)将程序转为二进制代码,可是命令呢?
其实shell 也是一支程序,它由输入设备读取命令,再将其转为计算机可以了解的机械码,然后执行它。
各种操作系统都有它自己的 shell,以 DOS 为例,它的 shell 就是 command.com文件,Linux 下的shell主要有下列几种,Suse8.0下缺省的shell是Bash,并且可以看到sh是链接到bash的,所以使用sh和bash效果相同。

Shell        系统中的位置        程序名
Bourne        /bin/sh        sh
Bourne Again        /bin/bash        bash
C shell        /bin/csh        csh
TC shell        /bin/tcsh        tcsh
Korn shell        /bin/ksh        ksh
Z shell        /bin/zsh        zsh

8.2        Bash简介
Bash不仅仅是一个命令解析程序。它本身拥有一种程序设计语言,使用这种语言,可以编写shell脚本来完成各种各样的工作,而这些工作是使用现成的命令所无法完成的,Bash脚本可以使用if-then-elif-else-fi语句, for语句,while语句,until语句,break和continue命令,以及case语句,结合Bash中各种各样的条件测试语句,从而动态决定你的脚本实际运行的分支及动作,达到灵活及强大的处理功能。__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:22:20 | 显示全部楼层
7.2        常用正则表达式举例
语法        作用
^        行首
$        行尾
^[the]        以the开头行
[Ss]ignal[lL]        匹配单词signal,signaL,Signal,SignaL
[Ss]ignal[lL]\.        同上,但加一句点
[mayMAY]        包含may大写或小写字母的行
^USER$        只包含USER的行
[tty]$        以tty结尾的行
\.        带句点的行
^d..x..x..x        对用户,用户组及其他用户组成员有可执行权限的目录
^[^l]        排除关联目录的目录列表
[.*0]        0之前或之后加任意字符
[000*]        000或更多个
[iI]        大写或小写I
[iI][nN]        大写或小写i或n
[^$]        空行
^......$        包括6个字符的行
[a-zA-Z]        任意单字符
[a-z][a-z]*        至少一个小写字母
[^0-9\$]        非数字或美元标识
[^0-9A-Za-z]        非数字或字母
[123]        1到3中一个数字
[Dd]evice        单词device或Device
De..ce        前两个字母为De,后跟两个任意字符,最后为ce
\^q        以^q开始的行
^.$        仅有一个字符的行
^\.[0-9][0-9]        以一个句点和两个数字开始的行
‘”Device”’        单词device
De[Vv]ice\.        单词device或deVice
[0-9]\{2\}-[0-9]\{2\}-[0-9]{4\}        日期格式dd-mm-yyyy
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}        IP地址格式nnn.nnn.nnn.nnn
[^.*$]        匹配任意行__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:22:06 | 显示全部楼层
6.2        管道
Linux系统允许一条命令的标准输出成为另外一条命令的标准输入。通过下面的命令句法,可以用管道字符“|”来实现。
语法:command1 | command2 | command3 | ... | commandN
目的:“命令1”的标准输出连接到“命令2”的标准输入,“命令2”的标准输出连接到“命令3”的标准输入,......,“命令N-1”的标准输出连接到“命令N”的标准输入。
所以管道允许用户将一条命令的标准输出作为另外一条命令的标准输入。用管道连接的那些命令叫做过滤器(filter)。一个过滤器是一组Linux的命令,它们从标准输入中得到输入,经过一系列指定方式的处理,将结果送到标准输出。一些经常用到的过滤器是:cat、compress、crypt、grep、gzip、lp、pr、sort、tr、uniq和wc。
7        正则表达式介绍
正则表达式,是linux操作系统比起windows操作系统,在操作易用性方面,占有优势的为数不多的几个特性之一,使用正则表达式的工具有:awk,ed,egrep,grep,sed和vi。不过这些工具对正则表达式的支持程序不尽相同,其中awk和egrep能较好地支持正则表达式,grep对正则表达式的支持则较少,了解正则表达式的定义,不仅可以在实际操作中,减少重复的工作量,在读别人开发的shell脚本时,也有很大的帮助。
7.1        基本元字符集及其含义
名称        操作符        使用举例        意义        支持的工具
析取        |        x|y|z        x、y或者z        awk,egrep
任意字符        .        /L..e/        Love,Live,Lose        所有工具
字符串首字符        ^        ^x        以字符x开始的串        所有工具
连接                xyz        xyz        所有工具
字符串尾字符        $        x$        以字符x结束的串        所有工具
转义字符        \        \*        *        ed,sed,vi
组合        ()或者\(\)        (xy)+        xy,xyxy,xyxyxy,...        所有工具
可选        ?        xy?        x,xy,xyy,xyyy,...        awk,egrep
重复(零次或更多)        *        xy*        xy,xyy,xyyy,...        所有工具
重复(一次或更多)        +        xy+        xy,xyy,xyyy,        所有工具
集合        []        [Hh]ello        Hello,hello        所有工具
补集        [^]        [^A-KM-Z]ove        Love        所有工具
        pattern\{n\}                用来匹配前面pattern出现次数。n为次数        所有工具
        pattern\{n,\}m                含义同上,但次数最少为n        所有工具
        pattern\{n,m\}                含义同上,但pattern出现次数在n和m之间        所有工具
注:其中集合类操作符[],表示匹配[]内任何字符。可以是一个单字符,也可以是字符序列。也可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]。__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 19:21:53 | 显示全部楼层
6.2        管道
Linux系统允许一条命令的标准输出成为另外一条命令的标准输入。通过下面的命令句法,可以用管道字符“|”来实现。
语法:command1 | command2 | command3 | ... | commandN
目的:“命令1”的标准输出连接到“命令2”的标准输入,“命令2”的标准输出连接到“命令3”的标准输入,......,“命令N-1”的标准输出连接到“命令N”的标准输入。
所以管道允许用户将一条命令的标准输出作为另外一条命令的标准输入。用管道连接的那些命令叫做过滤器(filter)。一个过滤器是一组Linux的命令,它们从标准输入中得到输入,经过一系列指定方式的处理,将结果送到标准输出。一些经常用到的过滤器是:cat、compress、crypt、grep、gzip、lp、pr、sort、tr、uniq和wc。
7        正则表达式介绍
正则表达式,是linux操作系统比起windows操作系统,在操作易用性方面,占有优势的为数不多的几个特性之一,使用正则表达式的工具有:awk,ed,egrep,grep,sed和vi。不过这些工具对正则表达式的支持程序不尽相同,其中awk和egrep能较好地支持正则表达式,grep对正则表达式的支持则较少,了解正则表达式的定义,不仅可以在实际操作中,减少重复的工作量,在读别人开发的shell脚本时,也有很大的帮助。
7.1        基本元字符集及其含义
名称        操作符        使用举例        意义        支持的工具
析取        |        x|y|z        x、y或者z        awk,egrep
任意字符        .        /L..e/        Love,Live,Lose        所有工具
字符串首字符        ^        ^x        以字符x开始的串        所有工具
连接                xyz        xyz        所有工具
字符串尾字符        $        x$        以字符x结束的串        所有工具
转义字符        \        \*        *        ed,sed,vi
组合        ()或者\(\)        (xy)+        xy,xyxy,xyxyxy,...        所有工具
可选        ?        xy?        x,xy,xyy,xyyy,...        awk,egrep
重复(零次或更多)        *        xy*        xy,xyy,xyyy,...        所有工具
重复(一次或更多)        +        xy+        xy,xyy,xyyy,        所有工具
集合        []        [Hh]ello        Hello,hello        所有工具
补集        [^]        [^A-KM-Z]ove        Love        所有工具
        pattern\{n\}                用来匹配前面pattern出现次数。n为次数        所有工具
        pattern\{n,\}m                含义同上,但次数最少为n        所有工具
        pattern\{n,m\}                含义同上,但pattern出现次数在n和m之间        所有工具
注:其中集合类操作符[],表示匹配[]内任何字符。可以是一个单字符,也可以是字符序列。也可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]。__________________________________
╭∩╮(︶︿︶)╭∩╮


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 06:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表