Shell编程总结
1. Ls
用来查看目录的内容
-a 列举目录中的全部文件,包括隐藏文件
-l 列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创 建日期、文件是否是到系统其它地方的链接,以及链接的指向。
-f 文件类型(File type)。在每一个列举项目之后添加一个符号。这些 符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表 明是一个可执行文件。
-r 逆向(reverse)。从后向前地列举目录中的内容
-R 递归(recursive)。该选项递归地列举所有目录(在当前目录之下) 的内容。
-s 大小(size)。按文件大小排序。
1. touch
生成新的空文件或者改变现有文件的时间戳
-t 设定时间与日期,格式与date相同,yyyyMMddhhmm
3. who
who 查看有哪些人登陆了系统
who am i 查看自己的账户信息
which ls 查看ls程序所在的路径。
1. mkdir
建立一个目录,同时设置目录权限
mkdir f1 创建目录f1
-p: 可以是一个路径名称(多层文件)。
例:
$ mkdir –p d2/d3 在当前目录中建立目录d2和d2下的d3目录,也就 是连续建两个目录。
5. pwd
pwd 显示当前目录
6. cd
cd 回到起始目录,也即刚登陆到系统的目录,cd后面无参数
cd / 回到根目录
cd .. 返回上一级目录
cd - 返回到最近使用的目录
7. rm
rm -rf f1 删除目录f1及其子目录,即使目录不空
rm -rf f1/* 删除目录f1下的所有内容,但不删除f1本身
rm -rf * 删除当前目录下所有文件,包括子文件加及其中的文件,-r表示递归,-f表示 强制删除,不询问。
rmdir f1 删除空目录f1
8. cat
cat e1 浏览文件e1的内容
cat e1 e2浏览多个文件的内容
cat -n e1浏览文件e1的内容并显示行号
9. grep
在一个或多个文件中搜索是否包含给定的字符串
grep ‘the’ 1.txt
-a:以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行
10. head
head命令在屏幕上显示指定文件的开头若干行,行数由参数值来确定
–n,表示显示从第一行开始的n行内容
11. tail
tail命令在屏幕上显示指定文件的末尾10行
tail f.c
-n,显示后几行
例:
tail -5 f.c
12. find
查找符合条件的文件或目录
find /etc -name *ab* 包含ab的
find /etc –name ab* ab开头的
13) rmdir
删除空目录
dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。
注意:一个目录被删除之前必须是空的。删除某目录时也必须具有对父目录的写权限
- p : 删除指定目录后,该目录的上层目录已变成空目录时,将其一并删除
注意: 是递归删除,即先删除内层后,外层为空,则一并删除
13) cp
实现文件和目录的复制。即将源文件或目录复制到目标文件或目录中
cp [选项] 源文件或目录 目标文件或目录
注意:不写绝对路径,表明是当前目录下
-a:递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接 和文件属性不变。它等效于-dpR。
-i:在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。 这是交互式复制。
-R,-r:递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置。
13) mv
对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
-i,--interactive 交互式操作。如果源文件与目标文件或目标目录中的文 件同名,则询问用户是否覆盖目标文件。用户输入“y”,表示将覆盖目标文 件;输入“n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
-f 与“-i”相反,它禁止交互式操作。在覆盖已有的目标文件时,不给任 何提示。
13) Shutdown
关闭或者重启Linux系统;允许用户在指定的一个时间点或者一个指定的时间段之后关 闭或重启Linux系统
–h:关机
-r:重启
13) Df
查看磁盘空间的使用情况
-a 列出所有的文件系统,包括系统特有的/proc等文件系统。
-k 以KB为单位显示个文件系统
-m 以mb为单位显示各文件系统
-h 以gb格式显示
-T 显示物理文件系统的文件格式类型。
-i 以inode数量来显示
13) Du
查看某个目录所占空间大小
a 列出目录和文件的大小
-h 以易读方式表示大小
-s 只列出总量而不列出子目录大小
13) Free
查看系统内存的使用情况,包括已用的、剩余的物理内存和交换内存,以及共享内存和 被内核使用的缓存区
-b:字节为单位
-k:千字节为单位
-m:兆字节为单位
20、passwd
为已有用户修改密码
21、sudo
临时为普通用户授权为超级用户的命令,将sudo放到要执行的命令前即可,授权时间 在5分钟左右,过期后会再次要求输入密码
22) Echo
在标准输出设备-显示器上输出一段文字。
例:
echo “hello”
22) Clear
清空屏幕上的信息,清屏后命令提示符移动到屏幕左上角。
22) Who
列出所有正在使用系统的用户、所用终端名和注册到系统的时间
22) Date
在屏幕上显示或设置系统的日期和时间
22) More
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出 至今已显示的该文件的百分比.
22) Less
允许用户向前或向后浏览文件,而more命令只能向前浏览。
22) bzip2/bunzip2:
扩展文件名为.bz2的压缩/解压工具
22) gzip/gunzip:
扩展文件名为.gz的压缩/解压工具
22) zip/unzip
扩展文件名为.zip的压缩/解压工具
22) tar:
打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
32.Eixt
立即退出正在执行的shell脚本,并设定退出值。
九九乘法表的表示方法
1) for的俩种方法
(1)
for((i=1;i<=9;i++))
do
for((j=1;j<=i;j++))
do
echo -ne "$i*$j=$((i*j))\t"
done
Echo
done
(2)
for i in {1,2,3,4,5,6,7,8,9}
do
for j in {1,2,3,4,5,6,7,8,9}
do
((p=$i*$j))
echo -ne $i\*$j=$p"\t"
done
echo
done
2、while的表示方法
i=1;
j=1;
while((i<=9))
do
while((j<=i))
do
let "temp=i*j"
echo -ne "$i*$j=$temp\t"
let j++
done
let i++
let j=1
echo ""
Done
3) until的表述方法
i=1
until ((i>9))
do
let j=1
until ((j>i))
do
let "temp=i*j"
echo -ne "$i*$j=$temp\t"
let j++
done
let i++
echo ""
done
1. Ls
用来查看目录的内容
-a 列举目录中的全部文件,包括隐藏文件
-l 列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创 建日期、文件是否是到系统其它地方的链接,以及链接的指向。
-f 文件类型(File type)。在每一个列举项目之后添加一个符号。这些 符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表 明是一个可执行文件。
-r 逆向(reverse)。从后向前地列举目录中的内容
-R 递归(recursive)。该选项递归地列举所有目录(在当前目录之下) 的内容。
-s 大小(size)。按文件大小排序。
1. touch
生成新的空文件或者改变现有文件的时间戳
-t 设定时间与日期,格式与date相同,yyyyMMddhhmm
3. who
who 查看有哪些人登陆了系统
who am i 查看自己的账户信息
which ls 查看ls程序所在的路径。
1. mkdir
建立一个目录,同时设置目录权限
mkdir f1 创建目录f1
-p: 可以是一个路径名称(多层文件)。
例:
$ mkdir –p d2/d3 在当前目录中建立目录d2和d2下的d3目录,也就 是连续建两个目录。
5. pwd
pwd 显示当前目录
6. cd
cd 回到起始目录,也即刚登陆到系统的目录,cd后面无参数
cd / 回到根目录
cd .. 返回上一级目录
cd - 返回到最近使用的目录
7. rm
rm -rf f1 删除目录f1及其子目录,即使目录不空
rm -rf f1/* 删除目录f1下的所有内容,但不删除f1本身
rm -rf * 删除当前目录下所有文件,包括子文件加及其中的文件,-r表示递归,-f表示 强制删除,不询问。
rmdir f1 删除空目录f1
8. cat
cat e1 浏览文件e1的内容
cat e1 e2浏览多个文件的内容
cat -n e1浏览文件e1的内容并显示行号
9. grep
在一个或多个文件中搜索是否包含给定的字符串
grep ‘the’ 1.txt
-a:以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行
10. head
head命令在屏幕上显示指定文件的开头若干行,行数由参数值来确定
–n,表示显示从第一行开始的n行内容
11. tail
tail命令在屏幕上显示指定文件的末尾10行
tail f.c
-n,显示后几行
例:
tail -5 f.c
12. find
查找符合条件的文件或目录
find /etc -name *ab* 包含ab的
find /etc –name ab* ab开头的
13) rmdir
删除空目录
dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。
注意:一个目录被删除之前必须是空的。删除某目录时也必须具有对父目录的写权限
- p : 删除指定目录后,该目录的上层目录已变成空目录时,将其一并删除
注意: 是递归删除,即先删除内层后,外层为空,则一并删除
13) cp
实现文件和目录的复制。即将源文件或目录复制到目标文件或目录中
cp [选项] 源文件或目录 目标文件或目录
注意:不写绝对路径,表明是当前目录下
-a:递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接 和文件属性不变。它等效于-dpR。
-i:在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。 这是交互式复制。
-R,-r:递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置。
13) mv
对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
-i,--interactive 交互式操作。如果源文件与目标文件或目标目录中的文 件同名,则询问用户是否覆盖目标文件。用户输入“y”,表示将覆盖目标文 件;输入“n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
-f 与“-i”相反,它禁止交互式操作。在覆盖已有的目标文件时,不给任 何提示。
13) Shutdown
关闭或者重启Linux系统;允许用户在指定的一个时间点或者一个指定的时间段之后关 闭或重启Linux系统
–h:关机
-r:重启
13) Df
查看磁盘空间的使用情况
-a 列出所有的文件系统,包括系统特有的/proc等文件系统。
-k 以KB为单位显示个文件系统
-m 以mb为单位显示各文件系统
-h 以gb格式显示
-T 显示物理文件系统的文件格式类型。
-i 以inode数量来显示
13) Du
查看某个目录所占空间大小
a 列出目录和文件的大小
-h 以易读方式表示大小
-s 只列出总量而不列出子目录大小
13) Free
查看系统内存的使用情况,包括已用的、剩余的物理内存和交换内存,以及共享内存和 被内核使用的缓存区
-b:字节为单位
-k:千字节为单位
-m:兆字节为单位
20、passwd
为已有用户修改密码
21、sudo
临时为普通用户授权为超级用户的命令,将sudo放到要执行的命令前即可,授权时间 在5分钟左右,过期后会再次要求输入密码
22) Echo
在标准输出设备-显示器上输出一段文字。
例:
echo “hello”
22) Clear
清空屏幕上的信息,清屏后命令提示符移动到屏幕左上角。
22) Who
列出所有正在使用系统的用户、所用终端名和注册到系统的时间
22) Date
在屏幕上显示或设置系统的日期和时间
22) More
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出 至今已显示的该文件的百分比.
22) Less
允许用户向前或向后浏览文件,而more命令只能向前浏览。
22) bzip2/bunzip2:
扩展文件名为.bz2的压缩/解压工具
22) gzip/gunzip:
扩展文件名为.gz的压缩/解压工具
22) zip/unzip
扩展文件名为.zip的压缩/解压工具
22) tar:
打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
32.Eixt
立即退出正在执行的shell脚本,并设定退出值。
九九乘法表的表示方法
1) for的俩种方法
(1)
for((i=1;i<=9;i++))
do
for((j=1;j<=i;j++))
do
echo -ne "$i*$j=$((i*j))\t"
done
Echo
done
(2)
for i in {1,2,3,4,5,6,7,8,9}
do
for j in {1,2,3,4,5,6,7,8,9}
do
((p=$i*$j))
echo -ne $i\*$j=$p"\t"
done
echo
done
2、while的表示方法
i=1;
j=1;
while((i<=9))
do
while((j<=i))
do
let "temp=i*j"
echo -ne "$i*$j=$temp\t"
let j++
done
let i++
let j=1
echo ""
Done
3) until的表述方法
i=1
until ((i>9))
do
let j=1
until ((j>i))
do
let "temp=i*j"
echo -ne "$i*$j=$temp\t"
let j++
done
let i++
echo ""
done