Linux shell命令讲解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell命令讲解相关的知识,希望对你有一定的参考价值。
Linux程序设计.第3版作者:(英)马修,(英)斯通斯 著,陈健 等译 出版社:人民邮电出版社 出版时间:2007年07月
它提供了一种理想的方式来阐明每个被介绍过的更高级的主题。我们对这个应用程序的第一次讨论出现在本书第2章的结尾处,它展示了一个非常大的shell脚本是如何组织的,shell如何处理用户输入、如何构造菜单以及如何存储...
¥89.00¥66.75折扣:75折节省:¥22.25
--------------------------------------------------------------------------------
Linux命令、编辑器与Shell编程
作者:(美)索贝尔(Sobell,M.G.) 著,杨明军,王凤芹 译 出版社:清华大学出版社 出版时间:2007年03月
要想真正高效地使用Linux,就必须全面掌握shell和命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再加上一个单独的参考手册。更糟糕的是,大多数Linux参考手册只是对man手册页的...
¥98.00¥73.50折扣:75折节省:¥24.50
--------------------------------------------------------------------------------
Linux 指令速查手册
作者:吴恒奎 编著 出版社:人民邮电出版社 出版时间:2007年12月
将程序放在后台执行 1.8 cd指令:切换目录 1.9 chfn指令:设置finger信息 1.10 chsh指令:改变登录系统时的shell 1.11 clear指令:清除终端屏幕 1.12 date指令:显示或设置系统时间 1.13 echo指令:显示...
¥45.00¥33.75折扣:75折节省:¥11.25
--------------------------------------------------------------------------------
嵌入式Linux系统开发技术详解-基于ARM
作者:孙纪坤,张小全 编著 出版社:人民邮电出版社 出版时间:2006年08月
三星S3C2410开发板介绍 242.4.2 众多的开发板供应商 26第3章 Linux编程环境 283.1 Linux常用工具 283.1.1 Shell简介 283.1.2 常用Shell命令 303.1.3 编写Shell脚本 383.1.4 正则表达式 423.1.5 程序编辑器 443.2 Mak...
¥39.00¥29.30折扣:75折节省:¥9.70
--------------------------------------------------------------------------------
UNIX shell范例精解(第4版)
作者:(美)奎格莉(Quigley,E.) 著,李化,张国强 译 出版社:清华大学出版社 出版时间:2007年05月
在本书的再版中,Quigley对她的经典著作进行了全新的改版,增加了当前shell程序员所需的最新内容——使用bash进行Linux shell编程。 本书汇聚了Quigley 21年来的 shell编程教学经验。书中不仅展示了能帮助读者快速...
¥118.00¥88.50折扣:75折节省:¥29.50
--------------------------------------------------------------------------------
完全手册--Linux系统与网络服务管理技术大全(含光盘)
作者:杨明华 等编著 出版社:电子工业出版社 出版时间:2008年01月
25.4.5 使用ssh客户端 25.4.6 使用scp客户端 25.4.7 使用sftp客户端 25.4.8 使用SSH Secure Shell访问SSH服务器 25.5 计算机病毒与防护 25.5.1 计算机病毒种类 25.5.2 计算机病毒特征 25...
¥79.80¥59.90折扣:75折节省:¥19.90
--------------------------------------------------------------------------------
构建嵌入式LINUX系统
作者:(美)雅默 著,韩存兵,龚波 改编 出版社:中国电力出版社 出版时间:2004年12月
硬件两方面。 系统管理 你必须能够胜任各种系统管理工作,如硬件的配置。系统的设定。维护以及利用shell命令脚本让管理工作自动化。 设备驱动程序 你必须知道如何对各种Linux设备驱动程序进行开发及...
¥48.00¥36.00折扣:75折节省:¥12.00
--------------------------------------------------------------------------------
Red Hat Linux 9系统管理与服务器配置
作者:杨宗德 等编著 出版社:人民邮电出版社 出版时间:2007年07月
Linux桌面管理基本操作 2.3.1 使用桌面面板 2.3.2 使用Nautilus文件管理器 2.3.3 打开终端Shell提示 2.3.4 注销及关闭系统 第3章 Shell及文本界面基本操作 3.1 ...
¥42.00¥31.50折扣:75折节省:¥10.50
--------------------------------------------------------------------------------
鸟哥的LINUX私房菜:基础学习篇
作者:鸟哥 编著 出版社:科学出版社 出版时间:2005年06月
第1篇主要介绍Linux操作系统的规划与安装;第2篇介绍Linux的基本文件权限与系统架构;第3篇介绍非常重要的Shell与Shell scripts的基本内容,这是所有以文字界面操控主机的基础;第4篇着重介绍Linux用户管理,包括账号...
¥42.00¥31.50折扣:75折节省:¥10.50
--------------------------------------------------------------------------------
Linux 基础与应用
作者:陈明 编著 出版社:清华大学出版社 出版时间:2005年10月
本书是一本有关Linux操作系统应用的教程,主要内容包括:Linux概述、Red Hat Linux系统安装、linux常用命令、X window 系统、Red Hat Linux常用工具、Linux系统管理与配置、Linux 常用应用程序、Linux下的Shell编程、...
¥23.00¥17.25折扣:75折节省:¥5.75
--------------------------------------------------------------------------------
鸟哥的Linux私房菜——服务器架设篇(附CD-ROM光盘一张)
作者:鸟哥 编著 出版社:科学出版社 出版时间:2005年06月
网站的相关维护技巧以及鸟哥平时在维护主机时认为较佳的维护经验。 本书目标读者 本书侧重于深入讨论架站规划、流程、技巧与维护等工作,比较基础的Linux操作与相关Shell语法在本书谈论得不多,相关内容请参考...
¥73.00¥54.80折扣:75折节省:¥18.20
--------------------------------------------------------------------------------
Ubuntu Linux入门到精通(附光盘)
作者:李蔚泽 著 出版社:机械工业出版社 出版时间:2007年05月
本书全面介绍了Ubuntu Linux的相关知识,内容详实,论述清晰。主要内容包括Ubuntu介绍、文件系统管理、进程管理、压缩与查询系统、Shell应用、TCP/IP基础、网络管理、网络硬盘以及加密安全通信等内容。 本书是一本...
¥42.00¥31.50折扣:75折节省:¥10.50
--------------------------------------------------------------------------------
Linux标准学习教程
作者:IT同路人 编著 出版社:人民邮电出版社 出版时间:2008年01月
Linux字符界面、Linux常用命令、Linux应用软件、Linux系统启动、Linux系统管理和维护、Linux服务器配置、shell编程、Linux C语言基础、Linux程序编译和调试维护等内容。 本书内容丰富、结构清晰、讲解细致、图文并茂...
¥49.00¥36.75折扣:75折节省:¥12.25
--------------------------------------------------------------------------------
LPI LINUX认证权威指南
作者:(美)迪安 著,Taiwan公司 编译 出版时间:2007年08月
GNu与unix基本命令、文件系统、x窗口系统等;第二部分涵盖102考试,包括Linux内核、开机程序、打印、文件管理、Shell程序设计、系统管理、TCP/IP网络概论、常用的网络服务、系统安全防护等。 通过考试不仅是对自己...
¥68.00¥50.90折扣:75折节省:¥17.10
--------------------------------------------------------------------------------
Unix与Linux系统管理
作者:(美)弗里斯科比(Frisch,AE.) 著,刘颖 译 出版社:清华大学出版社 出版时间:2006年11月
打印机和假脱机子系统第14章 自动执行管理任务第15章 管理系统资源第16章 配置和构建内核第17章 记账附录 管理Shell的编程 内容提要: 本书自1991年10月第一版开始,就成了Unix和Linux系统管理员的终极参考书。本...
¥129.00¥96.80折扣:75折节省:¥32.20
--------------------------------------------------------------------------------
LINUX系统故障诊断与排除
作者:(美)柯克兰(Kirklan,d.J.) 等著,周良忠 等译 出版社:人民邮电出版社 出版时间:2007年01月
登录问题 14.1 /etc/password,/etc/shadow和密码时效 14.2 Linux配置造成的登录失败 14.3 PAM 14.4 shell问题 14.5 密码问题 14.6 小结 14.7 尾注 第15章 X Windows问题 15.1 X背景 15.2 X组件 ...
¥48.00¥36.00折扣:75折节省:¥12.00
--------------------------------------------------------------------------------
Linux系统应用与开发教程——计算机基础课程系列教材
作者:刘海燕 等编著 出版社:机械工业出版社 出版时间:2005年10月
1.4.2 登录 1.4.3 注销 1.4.4 关闭 1.5 小结 习题 第2章 shell及常用命令 2.1 Linux终端使用基础 2.1.1 什么是Linux终端 2.1.2 ...
¥25.00¥18.70折扣:75折节省:¥6.30
--------------------------------------------------------------------------------
LINUX黑客大曝光(第2版)
作者:(美)哈茨,(美)李 著,王一川 译 出版社:清华大学出版社 出版时间:2003年12月
Linux上口令的工作方式 9.2 口令破解程序 9.3 PAM 9.4 蛮力口令猜测攻击 9.5 口令保护 9.6 Linux中非shell程序的用户认证机制 9.7 小结 第4部分 服务器的安全问题 第10章 邮件安全性 10.1 Ma...
¥59.00¥44.10折扣:75折节省:¥14.90
--------------------------------------------------------------------------------
LINUX SERVER HACKS(卷二):100个业界最尖端的技巧和工具
作者:(美)哈根,(美)琼斯 著,张颖 译 出版社:清华大学出版社 出版时间:2007年01月
29.同时在多台服务器执行命令 30.用加固的Wiki安全协作 31.用grubby编辑GRUP配置 32.给 Tab键一个显示的机会 33.在退出shell后保持进程运行 34.断开控制台连接而不结束会话 35.使用脚本节约时间和培训别人 3...
参考技术A 对!!!!linux就是OS编程的极致了!!!
什么叫开源!就是告诉你原理!告诉你方法!你要是愿意并且有能力!你可以打造属于你个人的OS (操作系统)
!!!
在linux上基本都是搞编程 要么就做服务器 应为 linux处理缓存方式 夸张的说 你可以永远不管机器!!!!
windowS可以吗?
linux 不能玩游戏 !做图肯定也不会在linux做! 要太夸张的界面没啥用!等你多用几个linux就知道了!最华丽的就是SUSE 也就是sun公司开发的! 但是要求就非常高!!!
linux 更新 安装 都需要命令!!!就像windows的命令控制台 一样!!
你要想玩游戏 不可能 看电影听歌 那意义不大!你何必呢?装个linux就干这个??而且装播放器非常麻烦!!!
linux的特点就是安全 线程安全 !!!你可以用一个简单的命令就能知道系统都在做什么!都是谁在做!从哪做的!还有就是权限分明!!!
参考技术B 这个题目让人不知道怎么回答,如果真的想全面了解的话,找一本书吧,ABS是本很好的书。
Linux Shell命令常用的并不多,尤其是普通用户使用的,就那么几个,cd, mv ,rm 什么的,先掌握那些常用的(一般任何一本讲Linux的书都会列出这些命令),Linux的命令都带有参数,开始不要全掌握,先从简单的来。 参考技术C 支持wmpotato | 三级,力荐ABS
http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html 参考技术D 提此问题者,唯有用2字来评价,那就是:‘真二’
Linux高级Shell脚本讲解
Shell高级进阶
条件选择if语句,可实现条件性判断
if语法:if commands;then commands(如果命令为真,将执行后续命令,fi结尾;)
elif commands;then commands(如果前面if不为真,则判断elif是否为真,为真则执行后面的命令,可以写多个elif,可写可不写,条件多的情况下添加)
else commands;then commands(如果上述全都不为真,则继续判断else是否为真,为真则执行后续命令)
if true;then echo true;f1(如果true为真,则执行后续命令,结束)
条件判断;case
case 变量 in
case语法:case word in [模式 [|模式 commands]...
case "变量" in
PAT1) (判断变量是否匹配PAT1,匹配的话则执行以下命令)
分支1
;;
PAT2) (如果前面变量不匹配就执行以下命令)
分支2
;;
...
*) (如果变量前面都不匹配就匹配这个)
默认分支
;;
esac
使用的global风格语法,通配符
*: 任意长度任意字符
?: 任意单个字符
[]:指定范围内的任意单个字符
a|b: a或b
循环
将某代码段重复运行多次
重复运行多少次:
循环次数已知
循环次数未知
有进入条件和退出条件
for,while,until
for循环
for 变量名 in [word ....];do commadns; done
例子:
for num in 1 2 3 4
do
echo "num is $num"
done
上述数字内容写几个单词就循环几次
列表生成方法:
(1)直接给出列表
(2){}从起始到结束;比如:{1..10}(1-10);{1..10..2}递减2
(3)用命令生成列表
(4)使用glob,如:*.sh
(5)变量引用:[email protected],$*
while循环
while commands(进入循环和终止循环的条件);do commands;done(当什么时候条件满足继续循环,当条件不满足将停止循环)
select循环与菜单
select 变量 in list (将列表数据分别赋予变量并且赋予序号,适用于菜单,PS3这个变量是专用于select做提示符使用的,$REPLY系统自带的变量,存输入的字符串)
do
循环体命令
done
信号捕捉trap
trap '触发指令' 参数
当捕获到参数的操作的信号的时候将触发前面的指令
trap '' 参数
忽略信号
trap '-' 参数
恢复原信号的操作,也就是将上面的trap操作取消
trap -p
列出自定义操作
函数介绍
更加方便代码重用,也适用于模块化编程,相当于别名,别名是一条命令定义,而函数就相当于一个函数定义多条指令
定义函数
函数由两部分组成:函数名和函数体
语法一:
f_name (){
...函数体...
}
语法二:
function f_name {
...函数体...
}
语法三:
function f_name () {
...函数体...
}
f_name 执行函数
unset f_name 取消函数定义
定义的函数在哪个终端就得在哪个终端执行,别的终端无法执行
declare -f(查看定义的所有函数)
函数使用(先定义再调用)
函数一般不会在交互式环境中使用,基本都在脚本中使用
可将定义的函数单独放在一个文件中,脚本中调用函数文件的方法 source '文件名称'
/etc/init.d/function(系统专门存放函数的文件)
return 10(结束当前函数,并且$?返回值为10,并不代表结束)
local是一个特殊的关键字,只能在函数中使用;函数中如果不使用local的话,则函数中定义的变量,shell中可以使用,shell中定义的变量,函数中也可以调用,使用local的话则是只在函数中使用
子进程不能调用父进程中定义的函数,但可以使用export -f f_name将函数转换为环境函数
数组
将同一类型的数据取一个变量名字,数组的名称和数组的下标组合起来就能代表变量的唯一,从0表示第一个下标,最后一个下标的元素个数就为n-1,数字下标则成为数值索引
索引可支持自定义索引,而不止是数值索引,即为关联索引,bash4.0之后支持(bash --version)
bash的数组支持稀疏格式(索引不连续)
声明数组:
declare -a "数组名称"
declare -A "数组名称"(关联数组;自定义索引的为关联数组,先声明再调用)
数组赋值
(1)一次只赋值一个元素
"数组名称[索引]"="值"
(2)一次赋值全部元素
ARRAY_NAME=("VAL1" "VAL2" "VAL3")
(3)只赋值特定元素
ARRATY_NAME=([0]="VAL1" [3]="VAL2")稀疏格式的时候不能以这种方法补全
(4)交互式赋值
read -a
引用数组
echo ${ARRAY_NAME[INDEX]}显示某个特定的数组中的索引
引用数组所有元素
echo ${ARRAY_NAME[*]}显示所有数组索引
数组的长度(数组中元素的个数)
${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
删除数组中指定元素
unset 数组[数字]
删除整个数组中的元素
unset 数组
数组数据处理
引用数组中的元素:
数组切片:${ARRAY[@]:offset:number}
offset:要跳过的元素个数
number:要取出的元素个数
取偏移量之后的元素
${ARRAY[@]:offset}
向数组中追加元素:
ARRAY[${#ARRAY[*]}]=value
字符串切片
${#变量名}:返回字符串变量名的长度
${变量名:offset}:跳过offset
${变量名:offset:number}:跳过offset取number个
${变量名: -offset}:取倒数三个
${变量名:offset:-number}:去掉前面offset个,也去掉后number个
${变量名: -offset:-number}:取后面offset个,取出的offset中去掉number个,在7里面用
字符串处理
基于模式取字串
${变量名#*word}:其中word可以使指定的任意字符
功能:从左往右,查找"变量名"所存储的变量值,匹配到后将匹配到的字符以及匹配到的字符前面的字符全部删除,问号代表一个 单独字符;
${变量名##*word}:同上,贪婪模式,删除的是字符串开头到最后一次由word指定的字符之间的所有内容
${变量名%word*}:从右向左,查找变量所存储的字符串中,第一次出现的word,删除从右向左发现的第一个匹配的word以及word右面的所有字符
${变量名%%wird*}:从右向左,贪婪模式,删除的是字符串开头到最后一次由word指定的字符之间的所有内要
查找替换
${变量/匹配的字符串/新替代的字符串}:查找变量所表示的字符串中,匹配的字符串替换为新替代的字符串,默认只替代第一次匹配到的
${变量//匹配的字符串/新替代的字符串}:贪婪模式,替换所有匹配到的字符串
${变量//#匹配的字符串/新替代的字符串}:替换以匹配的字符串开头的行
${变量/%匹配的字符串/新替代的字符串}:替换以匹配的字符串结尾的行
${变量/匹配的字符串}:删除匹配的字符串,非贪婪模式
${变量//匹配的字符串}:贪婪模式,删除所有匹配的字符串
${变量/#匹配的字符串}:删除以匹配的字符串开头的字符串
${变量/%匹配的字符串}:删除以匹配的字符串结尾的字符串
${变量^^}:将变量的值转换为大写
${变量,,}:将变量的值转换为小写
var=${str-"expr"};当str没有值的时候:var=expr;当str值为空的时候:var=$str;当str有值的时候:var=$str
var=${str:-expr};当str没有值的时候:var=expr;当str值为空的时候:var=expr;当str有值的时候:var=$str
........
高级变量用法-有类型变量
Shell变量一般是无类型的,但是bash shell提供了declare用于指定变量类型,bash中只支持整数
declare [选项] 变量名
-r 声明或显示只读变量
-i 声明整数
-a 将变量定义为数组
-A 将变量定义为关联数组
-f 显示已定义的函数内容
-F 显示已定义的所有的函数名
-x 声明环境变量和函数
-l 声明变量为小写字母
-u 声明变量为大写字符
eval命令
eval命令会将命令进行两次扫描,在第一次扫描的时候,查看目标是否为变量,有值的话则会置换,第二次扫描则执行
间接变量引用
如果第一个变量的值是第二个变量的名字,从第一个变量引用第二个变量的值就称为间接变量引用
variable1的值是variable2,而variable2又是变量名,variable2的值为value,间接变量引用是指通过variable1获得变量值value的行为
variable1=variable2
variable2=value
mktemp:创建临时文件,并且显示
mktemp [OPTION]... [TEMPLATE]
TEMPLATE:filenameXXX
X至少要出现三个
OPTION:
-d:创建临时目录
-p:指明临时文件所存放目录位置
安装复制文件
install命令:
install [option] 源文件 目标文件
install [option] 源 目标
install [option]
选项option:
-m MODE,默认权限755
-o OWNER:指定属主
-g GROUP:指定属组
-d 指定目录
expect介绍
主要应用于自动化交互式操作的场景,将交互式的操作改为非交互式的操作
expect语法:
expect [选项] [-c command] [[ -[f|b] ] cmdfile ] [ args ]
选项:
-c:从命令行执行expect脚本,默认expect是交互执行的
-d:可以输出调试信息
expect中相关命令
spawn:启动新的进程
send:用于向进程发送字符串
expect:从进程接收字符串
interact:允许用户交互
exp_continue 匹配多个字符串在执行动作后加此命令
expect最常用的语法(模式-动作)
单分支:expect "hi" {send "You said hi\n"}(捕获hi,而输入别的没有反应)
多分支
expect "hi" { send "You said hi\n" } \ (发现hi打印You said hi)
"hehe" { send "Hehe yourself\n" } \ (发现hehe打印Hehe yourself)
"bye" { send "Good bye\n" }(发现bye打印Good bye)
一:
#!/usr/bin/expect
spawn scp /etc/fstab 用户@对方IP地址:/app
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "fang\n" }
}
expect eof
二:
#!/usr/bin/expect
spawn ssh 用户@对方IP地址
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "用户密码\n" }
}
expect eof
interact(执行完上述命令不退出执行交互式命令)
三:
#!/usr/bin/expect
set ip "IP地址"(定义名为ip的变量,值为后方ip地址)
set user "用户名" (定义名为user的变量,值为root)
set password "密码"
set timeout 10
spawn ssh [email protected]$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
interact
四
#!/usr/bin/expect
set ip [lindex $argv 0](定义名为ip的变量,值为第一个参数)
set user [lindex $argv 1] (定义名为user的变量,值为第二个参数)
set password [lindex $argv 2] (定义名为password的变量,值为第三个参数)
spawn ssh [email protected]$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
interact
五:Bash中调用expect
#!/usr/bin/expect
#!/bin/bash
ip=$1
user=$2
password=$3
expect <<EOF
set timeout 10
spawn ssh [email protected]$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
expect "]#" { send "useradd hehe\n" }
expect "]#" { send "echo magedu |passwd --stdin hehe\n" }
expect "]#" { send "exit\n" }
expect eof
EOF
以上是关于Linux shell命令讲解的主要内容,如果未能解决你的问题,请参考以下文章
Linux常用命令精华讲解 上部 (下部下回分解)不要催很忙的