- 浏览: 250233 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
linux角本编程
文件的安全与权限
[root@localhost ~]# ls -l
总计 48 #所有文件所占空间
-rw------- 1 root root 913 12-26 13:50 anaconda-ks.cfg
-rw-r--r-- 1 root root 26586 12-26 13:50 install.log
-rw-r--r-- 1 root root 3488 12-26 13:47 install.log.sysl
- rw- --- --- 该文件的权限位
文件类型 文件属主权限 同组用户权限 其他用户权限
root 文件的属主
root 属主所在缺省组
913 文件长度
12-26 13:50 更新时间
anaconda-ks.cfg 文件名
文件类型
d 目录
l 符号链接
s 套接字文件
b 块设备文件
c 字符设备文件
p 普通管道文件
- 普通文件
权限
创建一个文件
[root@localhost tmp]# touch myfile
[root@localhost tmp]# ls -l
总计 12
-rw-r--r-- 1 root root 0 12-31 03:51 myfile
-rw-r--r-- 1 root root 56 12-30 20:32 tt.t26
r 读权限
w 写权限
x 执行角本或程序的权限
用户创建文件时,系统不会设置执行权限位
对文件属主来说,在只有读权限位被置空的情况下,仍然可以通过文件重定向写入文件
改变权限位
符号模式
chmod 命令格式
chmod [who] operator [permission] filename
who
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户
operator
+ 添加权限
- 取消权限
= 设置权限
permission
r 读
w 写
x 执行
s 文件属主和组set-ID
t 粘性位*
l 文件加锁,其他用户不能访问
示例代码:
添加执行权限,取消其他用户的写权限
[retacn@localhost tmp]$ chmod u+x o-w myfile
[retacn@localhost tmp]$ ls -l
总计 4
-rwxrw-r-- 1 retacn retacn 0 12-31 04:08 myfile
绝对模式
chmod [mode] filename
mode 是一个八进制数
r 4
w 2
x 1
目录
r 列出该目录中的文件
w 可以在该目录中创建或删除文件
x 可以搜索或进入该录
目录文件会覆盖目录中文件的权限
chown
修改文件的所有权
chown -R -h owner filename
-R 所有子目录下的文件也进行相同有操作
-h 在改变符号链接文件的属主时不影响该链接指向的目标文件
示列代码如下:
[root@localhost tmp]# ls -l
总计 4
-rwxrw-r-- 1 retacn retacn 0 12-31 04:08 myfile
[root@localhost tmp]# chown yue myfile
[root@localhost tmp]# ls -l
总计 4
-rwxrw-r-- 1 yue retacn 0 12-31 04:08 myfile
chgrp
同上
?????????????????????????????
常用的shell命令
函数 说明
echo "text" 将内容打印到屏幕
ls 文件列表
wc -l file 计算文件行数
wc -w file 计算文件中的单词
wc -c file 计算文件中的字符数
cp 源文件 目标文件 复制文件
mv 源文件 目标文件 移动或得命名
rm filename 删除文件
grep "text" filename 文件中搜索字符串
cat filename 输出文件内容到标准输出设备
file filename 获到文件类型
read var 提示用户输入,并将输入赋值给变量
sort filename 对文件中的行进行排序
uniq 删除文本文件中出现的行列
expr 进行数学运算 expr 1"+"1
find 搜索文件
tee 将数据输出到标准输出或文件
basename filename 返回不含路径的文件名
dirname filename 返回文件所在路径
head filename 打印文本文件开头几行
tail file 打印文本文件末尾几行
sed 基本查打替换程序,可以从标准输入读取文本
将结果输出到标准输出
awk 从文本文件中提取字符,默认分段分隔符为空格
角本编写
第一行格式#!/bin/sh 通知shell使用bourne shell解释器
第二行注释写入角本名
角本必须具有可执行属性
修改文件
chmod +x filename
示例代码
#!/bin/sh
# 角本名
# 角本解释
echo "starting 角本名...wait"
所执行命令
echo "finished 角本名"
增加角本执行权限
chmod u+x filename
运行角本
./filename
如果找不到命令
查看当前目录
pwd
编辑用户的.profile文件,添加
PATH=$PATH:$路径名
重新初始化.profile
../profile
条件测试
测试文件状态
test condition
[condition]
注:在使用[]时要在条件两边加上空格
0表示成功,其他表示件败
示例代码如下:
测试文件是否可写
[retacn@localhost tmp]$ ls -l
总计 4
-rw-rw-r-- 1 retacn retacn 0 12-31 05:05 myfile
[retacn@localhost tmp]$ [ -w myfile ]
[retacn@localhost tmp]$ echo $?
0
[retacn@localhost tmp]$ test -w myfile
[retacn@localhost tmp]$ echo $?
0
测试文件是否可执行
[retacn@localhost tmp]$ [ -x myfile ]
[retacn@localhost tmp]$ echo $?
1
测试是否存在tmp 目录
[retacn@localhost ~]$ [ -d tmp ]
[retacn@localhost ~]$ echo $?
0
常用文件操作符
-e 文件存在
-f 文件是一个普通文件
-s 文件大小为0
-d 文件是一个目录
-c 是一个字符
-p 是一个管道
-L 是一个符号链接
-S 是一个socket
-t 与一个终端设务相关
-r
-w
-x
-g 文件有sgid
-u 文件有suid的设置
测试时使用逻辑操作符
-a 逻辑与
-o 逻辑或
测试两个文件是否都可读
[retacn@localhost tmp]$ ls
myfile myfile1
[retacn@localhost tmp]$ [ -r myfile -a -r myfile1 ]
[retacn@localhost tmp]$ echo $?
0
字符串测试
test "stirng"
test string_operator "string"
test "string" string_operator "string"
[ string_operator string ]
[ string string_operator string ]
string_operator可为:
= 两字符串相等
== 同上
!= 两字符中不相等
> 按ascii大小比较是否大于
< 同上
-z 字符串是否为null
-n 非空串
测试数值
"number"numeric_operator"number"
[ "number"numeric_operator"number"]
numeric_operator可为:
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
expr用法
语法格式:
expr argument operator argument
手工命令行计数器
[retacn@localhost tmp]$ expr 1 + 1
2
注:使用乘号是要用\*
增量计数
示例代码:
LOOP=0
LOOP = `expr $LOOP + 1`
数值测试
如果是非整数返回错误
expr a+1
发表评论
-
u-boot Makefile 文件分析
2013-06-01 21:44 2378Makefile文件分析 # #(C)Copyri ... -
uboot start.S文件分析
2013-06-03 22:18 1288U-boot第一个开始文件arch\arm\cpu\arm1 ... -
u-boot mkconfig文件分析
2013-05-31 21:29 1114Mkconfig文件分析 #!/bin/ ... -
链接地址学习笔记
2013-05-05 12:40 1245链接地址 启动过程 示例代码如下: ... -
DDR学习笔记
2013-05-11 14:19 1004DDR 15条地址线32k 128M*2(20)=2(2 ... -
nand flash学习笔记一
2013-05-13 21:05 936Nandflash 原理图上有data0-data7 ... -
openJTAG学习笔记一
2013-05-22 21:45 2137安装软件 光盘Windows\install目录下的 01.O ... -
linux进程管理学习笔记
2013-03-28 20:57 1302linux 进程管理 1 linux进程控制 进程的四个要素: ... -
字符设备驱动程序学习笔记一
2013-04-01 21:55 830linux 驱动程序 字符设备驱动程序 网络接口驱动程序 块设 ... -
字符设备驱动程序学习笔记二
2013-04-04 10:29 717字符驱动程序 1 设备号 字符设备通过字符设备文件来存取 ls ... -
字符设备驱动程序学习笔记三
2013-04-04 14:03 733memdev.h文件示例代码如下: #ifndef _MEM ... -
字符设备驱动程序学习笔记四
2013-04-05 11:12 558竟争与互斥 程序调试 1 ... -
GPIO学习笔记
2013-04-14 19:50 774用汇编点亮一个led 1看原理图GPK4=0,led亮G ... -
系统时钟学习笔记
2013-05-04 21:59 80612m晶振----->pll------>cpu ... -
UART学习笔记
2013-05-04 22:00 1101串口(UART) DIV_VAL=(PCLK/(bpsx1 ... -
linux内存管理学习笔记
2013-03-12 20:50 10051 linux内存管理 地址类型 物理地址 出现在cpu地址 ... -
嵌入式linux系统学习笔记
2013-03-06 21:39 902嵌入式linux内核制作 1 清除原有配置文件与中间文件 x8 ... -
原理图学习笔记一
2013-02-17 22:24 373画个草图也挺过瘾 -
进程间通信学习笔记一(管道通信)
2013-02-01 20:08 1366进程间通信(ipc) 应用场景: 数据传输 资源共享 通知事件 ... -
进程间通信学习笔记二(信号通信)
2013-02-16 21:39 738信号通信 用户按某些键时,产生信号 硬件异常产生信号 进程用k ...
相关推荐
变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...
非常详细的Linux_shell编程学习笔记,能帮助到初学者增加理解。
该文档是本人阅读《linux命令行大全》对最后第四章节的shell脚本编程的学习笔记总结。可以在只看次笔记的情况下完全掌握shell编程
shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...
shell script学习中的笔记
「linuxshell编程学习笔记shell运算符号和运算命令」.docx
linuxshell编程学习笔记(5)shell运算符号和运算命令.pdf
本文由TinyLab.org原创。 这里只是个人学习笔记,主要包括Shell概述、Shell变量、位置参数、特殊符号、别名、各种控制语句、函数等Shell编程知识。
学习笔记:LINUX与UNIX_Shell编程指南
这是因为,在 Unix 中,shell 可不是简单的命令解释器(典型的有 Windows 中的 DOS ),而是一个全功能的编程环境。 这并不意味着 shell 非常容易学通,您知道,好事多磨,这还是要花点工夫的。;-) 但请相信我,这...
Shell编程笔记,有很多关于Shell编程的干货,适合学习
学习shell编程的资料
这次难得有时间和条件来学习,所以做好笔记。 一:shell 能做什么 二:shell 脚本的几种执行方式,我们创建文件 start.sh,并且赋予 执行权限 chomd +x start.sh #然后可以通过以下命令执行 #相对路径,或者绝对...
这是我的shell编程笔记,我有很多自己的学习笔记,供我以及大家复习使用,还有其他的哦 C语言笔记,java笔记,网页笔记,javaweb笔记,gcc笔记,等,我会慢慢传
。。。
。。。
提供unix shell脚本的编程指南,本书包含shell编程的经典开发实例
Linux Shell编程笔记,详情可以参考文档CSDN Linux 学习之路专栏http://blog.csdn.net/column/details/wgb-linux.html
shell编程,写的比较好的基础入门资源