- 浏览: 263414 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (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 2430Makefile文件分析 # #(C)Copyri ... -
uboot start.S文件分析
2013-06-03 22:18 1326U-boot第一个开始文件arch\arm\cpu\arm1 ... -
u-boot mkconfig文件分析
2013-05-31 21:29 1141Mkconfig文件分析 #!/bin/ ... -
链接地址学习笔记
2013-05-05 12:40 1287链接地址 启动过程 示例代码如下: ... -
DDR学习笔记
2013-05-11 14:19 1041DDR 15条地址线32k 128M*2(20)=2(2 ... -
nand flash学习笔记一
2013-05-13 21:05 962Nandflash 原理图上有data0-data7 ... -
openJTAG学习笔记一
2013-05-22 21:45 2184安装软件 光盘Windows\install目录下的 01.O ... -
linux进程管理学习笔记
2013-03-28 20:57 1368linux 进程管理 1 linux进程控制 进程的四个要素: ... -
字符设备驱动程序学习笔记一
2013-04-01 21:55 890linux 驱动程序 字符设备驱动程序 网络接口驱动程序 块设 ... -
字符设备驱动程序学习笔记二
2013-04-04 10:29 755字符驱动程序 1 设备号 字符设备通过字符设备文件来存取 ls ... -
字符设备驱动程序学习笔记三
2013-04-04 14:03 790memdev.h文件示例代码如下: #ifndef _MEM ... -
字符设备驱动程序学习笔记四
2013-04-05 11:12 590竟争与互斥 程序调试 1 ... -
GPIO学习笔记
2013-04-14 19:50 814用汇编点亮一个led 1看原理图GPK4=0,led亮G ... -
系统时钟学习笔记
2013-05-04 21:59 83812m晶振----->pll------>cpu ... -
UART学习笔记
2013-05-04 22:00 1168串口(UART) DIV_VAL=(PCLK/(bpsx1 ... -
linux内存管理学习笔记
2013-03-12 20:50 10791 linux内存管理 地址类型 物理地址 出现在cpu地址 ... -
嵌入式linux系统学习笔记
2013-03-06 21:39 974嵌入式linux内核制作 1 清除原有配置文件与中间文件 x8 ... -
原理图学习笔记一
2013-02-17 22:24 425画个草图也挺过瘾 -
进程间通信学习笔记一(管道通信)
2013-02-01 20:08 1419进程间通信(ipc) 应用场景: 数据传输 资源共享 通知事件 ... -
进程间通信学习笔记二(信号通信)
2013-02-16 21:39 795信号通信 用户按某些键时,产生信号 硬件异常产生信号 进程用k ...
相关推荐
变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...
Linux Shell编程学习笔记
shell脚本编程学习笔记汇总 本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是...
### Shell Script 编程学习笔记 #### 一、Shell 脚本初窥 ##### 示例: ```bash #!/bin/sh # 第1行:指定脚本解释器(声明使用的shell名称),这里是用/bin/sh做解释器的。“#!”是一个约定的标记 cd ~ # 第2行:...
Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!
shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...
Linux Shell编程是Linux系统管理与自动化任务中的重要一环,主要通过编写脚本来实现对操作系统进行交互和控制。本文将详细解析Linux Shell编程中的几个关键概念:正则表达式、find命令、grep命令以及sed命令。 1. *...
Linux Shell 编程学习笔记(5)Shell 运算符号和运算命令 本资源主要讲解了 Linux Shell 编程中的运算符号和运算命令,涵盖了基本的四则运算、自增自减运算、取余运算等多种运算符号和命令。下面是对该资源中涉及到...
这份学习笔记将深入探讨Shell编程的基础,包括文件权限与安全,这是理解Linux和Unix系统管理的关键。 首先,我们关注文件权限。在Linux和Unix中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。...
在这个学习笔记中,我们将深入探讨如何编写和理解Shell脚本。 首先,Shell是Linux操作系统中的一个用户界面,它作为用户与操作系统内核交互的接口。常见的Shell类型有bash(Bourne-Again SHell)、sh(Bourne Shell...
"Unix Shell编程第三版笔记"是铁道出版社出版的一本教材,它深入浅出地讲解了Unix Shell编程的基础和高级技巧。这份笔记涵盖了从基本的命令行操作到复杂的脚本编写,帮助学习者掌握这一强大的自动化工具。 Unix ...
Linux服务器Shell编程是系统管理员和开发者在日常工作中必备的技能之一。Shell脚本是一种通过Shell解释器执行的文本文件,可以包含一系列命令,用于自动化任务和管理系统。在Linux操作系统中,常用的Shell包括bash、...
总之,“shell编程笔记.pdf”很可能包含了以上所有这些内容,是一个全面学习Shell编程的宝贵资源。通过深入学习和实践,你可以掌握Shell编程技能,从而更高效地管理和自动化你的Linux系统任务。
描述:这是一份综合的Linux Shell编程笔记,适用于想要学习或加强对Linux操作系统下Shell脚本编程的理解的人。该笔记包含了Shell脚本的基础知识、常用命令和技巧,以及实际的编程示例和案例。无论您是初学者还是有...
本文将依据读书笔记,围绕Linux与Unix Shell编程这一主题,详述相关知识点。 一、Shell简介 Shell是用户与操作系统内核之间的接口,它接收用户的输入并执行相应的命令。在Linux和Unix系统中,常见的Shell类型有Bash...
Shell编程及自动化运维实现-第六章shell编程实战.学习笔记整理分享给需要的同学
《LINUX与UNIX SHELL编程指南》是一本深入探讨Linux和UNIX系统中Shell脚本编程技术的书籍。这本书旨在帮助读者理解和掌握Shell编程的核心概念,从而能够编写出高效、实用的自动化脚本,提高日常系统管理和任务执行的...