1,GUI shell ,Linux shell(包含X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE)
CDE GNOME KDE XFCE 都是桌面环境。
2,shell语言适合那些易用性、可维护性和便携性比效率更重要的任务
3,shell版本,当当前Linux发行版的默认shell是 bash shell ,是兼容性比较好的shell。
************************************************************** 极客学院 shell 课程
一,Linux基本命令:
-------目录命令
echo 输出,返回。
man 查看命令手册,后面跟着 命令,例如 man echo 。
ls 用来列出所有的文件和目录 (参数有,/ 根目录,-a 所有文件,-l 长列表含权限用户大小时间,蓝色是目录,白色是文件,-F 目录后加斜线,组合参数 -alF ,全部长列表且目录后加斜杠),别名 ll 返回同 ls -alF 。
cd 切换目录,进入某目录,cd etc 当前目录变为 etc 目录。cd .. 两个点,返回上级目录。
pwd 查看,返回当前目录的绝对路径。
mkdir 创建目录
rm 删除命令,删除文件,rm 文件名,删除目录 rm -d 目录名 (一般是删除空目录),强制删除非空目录,“rm -rd 目录名 v” 加v查看删除过程。
------文件命令
touch 创建文件
cat / more / less / tell / head 等查看文件
cp 复制
mv 重命名,移动
rm 删除,而且是彻底删除。。。
------命令组合举例
touch tf1
cat tf1 (返回空,并没有返回)
echo hello world > tf1 (向tf1中输入 hello world ,大于号> 是个输出流的标志)
cat tf1 (返回 hello world )
cat /etc/passwd 根目录/etc文件夹,passwd文件,内容会全部显示出来。如果比价多,就会很多。
more /etc/passwd 显示一页内容,并显示当前内容为全部内容的百分比,用空格进行翻页。
less /etc/passwd 显示一页内容,用空格翻页,用上下方向键逐行滚动
mkdir testfile1
mkdir testfile2
cd testfile1
touch tf1
cp tf1 ../testfile2/ ( ../ 是相对目录的意思)
ls testfile2 (返回是 tf1)
mv tf1 tf2
ls (返回tf2,目录中没有了tf1 文件)
mv tf2 ../testfile2/ (使用mv命令,将文件移动到目的目录)
---------------编辑器工具:vim gedit 两个编辑器
----vim 的使用
vim vt1 ( vim加上文件名,进入文件,如果文件名不存在,则会创建并进入新的文件 vt1 ,此时是在新文件中的编辑状态,如果输入:冒号,则会显示成接受命令的状态而非编辑状态。
:q 退出,如果没写入且没保存,这文件不被保存,:q! 强制退出却不保存。
:w 写入命令,进入编辑状态。
:i 插入模式,进行文件写入。
:wq 写,保存并退出
----gedit 图形化编辑工具(界面友好,功能直观,但是服务器端很多系统是不包含图形用户界面的)
gedit 命令直接启用
二,shell 脚本编写
mkdir shellscript
cd shellscript
touch helloworld
vim helloworld
i 进入编写模式。
#!/bin/bash
echo hello world
wq 保存并退出
chmod u+x helloworld 为文件的所有者添加执行权限。(网页上看到 #!/bin/sh chmod +x filename)
./helloworld 执行当前目录中的helloworld文件。(注,path 变量并没有配置的,所以要写上路径)
加法脚本
#!/bin/bash 标识为bash文件,bash shell
echo "please type first number :"
read param1
echo "please type second number:"
read param2
result = $[ $param1+$param2] bash shell脚本中,运算符使用,可以用 $[ ]
echo "the result is :"$result 引用变量时,在变量前使用$符号。
--------------
echo "this is the ${num}nd" 直接用${ } 来直接应用变量
****************************** DormancyCypress
理解shell脚本的主要应用
******************************摘抄网络文章中常用命令
一,常用命令语法及功能
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l file wc -w file wc -c file: 计算文件行数 计算文件中的单词数 计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm file: 删除文件
grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
cat file.txt: 输出文件内容到标准输出设备(屏幕)上
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
sort file.txt: 对file.txt文件中的行进行排序
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
expr: 进行数学运算Example: add 2 and 3expr 2 "+" 3
find: 搜索文件比如:根据文件名搜索find . -name filename -print
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin
head file: 打印文本文件开头几行
tail file : 打印文本文件末尾几行
sed: Sed是一个基本的查找替换程序。sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, '{print $1 "," $3 }'这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA
二,管道, 重定向和 backtick 这些不是系统命令,但是他们真的很重要。
1,管道 (|) 将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l 在file.txt中搜索包含有”hello”的行并计算其行数。 在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。
2,重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件 。
>> 加到文件的尾部,保留旧文件内容。
3,
********************************************************** 文档
catkeyword | awk '{print $1}'|head -10
http://www.centoscn.com/shell/2013/0802/884.html awk 指令
1,awk 和后面的单引号要空格啊啊啊啊啊啊啊!【← ← 有坑的教材】
shell的 与 和 或
1、或操作
grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行 egrep '123|abc' filename // 用egrep同样可以实现 awk '/123|abc/' filename // awk 的实现方式
2、与操作
grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行。
3、其他操作
grep -i pattern files //不区分大小写地搜索。默认情况区分大小写, grep -l pattern files //只列出匹配的文件名, grep -L pattern files //列出不匹配的文件名, grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep -C number pattern files //匹配的上下文分别显示[number]行,
AWK 数组操作
awk'!a[$1]++' 这种格式的每个部分的意义。
1、awk数组知识
2、awk的基本命令格式 awk 'pattern{action}'
省略action时,默认action是{print},如awk '1'就是awk '1{print}'
3、var++的形式:先读取var变量值,再对var值+1
awk处理第一行时:先读取a[$1]值再自增,a[$1]即a[1]值为空(0) 【判断该行的$1第一列,在数组中是否存在,如果是第一次出现,a[$1]则是空】,即为awk '!0',
即为awk '1',即为 awk'1{print}',就会执行print
awk处理第二行时: 先读取a[$1]值再自增,a[$1]即a[1]值为1【判断该行的$1第一列,在数组中是否存在,如果不是第一次出现,a[$1]则是真】,即为awk '!1',
即为awk '0',即为awk '0{print}',就不会执行print
效果就是有重复$1的行只有第一次出现被打印,其他的都过滤了
shell 中特殊符号!
http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2218846.html
【带附件,多收件人】
mail -s "邮件标题“ -a /../../xx/txt xxx@xx.com yyy@yy.com