字都是一个一个敲打的,进度也不会太快:
每天我都对自己说:现实很残酷,努力!!!!
Shell入门1
文件名通配
*:为任意长度通配符
?:为单字符通配符
[]:括号内内容单个匹配;
例如:
以123开头的任意文件名:[123]*;
[:alpha:]代表任意字母alpha希腊语的第一个字母
[:digit:]代表任意数字digit数字;手指,足趾;
[:lower:]代表小写字母
[:upper:]表示大写字母
[:space:]代表空格
Eg: 以字母开头的紧接着是数字的文件
[[:alpha:]][[:digit:]]*
显示/etc目录下的字母数字开头的文件
ls/etc/[[:alpha:]][[:digit:]]*
命令行和路径补全功能:
输入命令时补全键位TAB键,若无法补全连续两次TAB,显示与当前字符匹配的所有命令。
命令行展开
~:对应用户的家目录。
{}:mkdir –pv {z,p}_{1,2,3}则在当前目录下生成
命令行扩展
$()或者``反引号
[root@localhost /]# export
[root@localhost /]# ls
abootdevhomelib64mediaoptp_2procsbinsrvtmpvarz_2
bindetcliblost+foundmntp_1p_3rootselinuxsysusrz_1z_3
[root@localhost /]# mkdir zl-`date +"%y-%m-%d-%H-%M-%S"`
[root@localhost /]# ls
adhomelost+foundoptp_3sbinsysvarz_3
bindevlibmediap_1procselinuxtmpz_1zl-13-06-28-05-29-58
bootetclib64mntp_2rootsrvusrz_2
[root@localhost /]#
其中``为命令替换符,其作用是将`…`中的指令执行,并返回结果。
$变量:返回变量的值;
‘’:强引用,单引号内不会发生变量替换;
“”:弱引用,双引号内会发生变量替换。
ls-ldh /home/centos 列出/home/centos目录,并且查看格式化方式显示其大小;
nano
nano是一种单文本编辑器,你可以直接输入文字。如果你要编辑一个像/etc/fatab一样的配置文件,请使用-w参数,例如:
警告:如果在编辑配置文件时,忘加了-w参数,可能会导致系统无法启动或产生别的异常。
如果你要保存所做的修改,按下ctrl+o.想要退出,请按下ctrl+x.如果你退出前没有保存所做的修改,它会提示你是否要保存。如果不要,请按N,反之,则按Y。然后它会让你确认要保存的文件名,确认或修改后按Enter即可。
如果你没有修改好而不小心按了保存键,您可以在请求确认文件名时按CTRL+c来取消。
剪切和粘贴
要剪切一整行,请用CTRL+k。光标所在的行便消失了。粘贴它,只需把光标移动到您所要粘贴的位置,然后按CTRL+U即可。要移动多行,只需多按几次CTRL+k把需要移动的内容都剪切下来,然后按一次CTRL+u就可以把刚剪切的内容全部粘贴上来。
如果你想使用更精确地剪切控制,则需要给文本做标记。移动光标到需要剪切的文本的开头,按下CTRL+6(或者Alt+A).然后移动光标到待剪切文本的末尾:被做了标记的文本便会泛白,要撤销文本标记只需再按一次Ctrl+6.
用CTRL+K来剪切被标记的文本,用Ctrl+u来粘贴。
搜索特定文字
当你想搜索某特定文字时,只要想成“where is ”而不是“search”,事情就简单了。只要按下Ctrl+W,键入你要搜索的字符串,再按Enter键就可以了。想再次搜索相同的字符串,可以直接按Alt+W.
注意在nano帮助文档里,CTRL-键被表示成为一个脱字节(^),因此CTRL+w被写成了^W,等等。ALT键被表示成一个M(从“Meta”而来),因此ALT+w被写成了M-W。
[root@localhost ~]# ls -ldh /etc/
drwxr-xr-x. 58 root root 4.0K Jun 28 12:03 /etc/
ls-lh /home/centos 列出/home/centos下面的目录,并且显示其大小。
[root@localhost ~]# ls -lh /etc/
total 1.2M
-rw-r--r--.1 root root 4.4K Apr 282010 DIR_COLORS
-rw-r--r--.1 root root 5.1K Apr 282010 DIR_COLORS.256color
-rw-r--r--.1 root root 4.1K Apr 282010 DIR_COLORS.lightbgcolor
drwxr-xr-x.3 root root 4.0K Dec82011 NetworkManager
drwxr-xr-x.4 root root 4.0K Jun 26 20:57 X11
-rw-r--r--.1 root root45 Jun 292013 adjtime
Finger 显示一个账户的详细信息
简单脚本的编写:
实例:
写一个脚本:
复制/etc/skel目录至/home,并且重命名为centos
设定此目录及其内部文件或子目录的属主属组为redhat用户,redhat组
设定此目录及其内部文件或子目录的权限为属组和其它用户没有任何权限
修改redhat用户的家目录为/home/centos
切换至redhat用户,验正其家目录是否正常可用
写一个脚本:
via.sh
cp –r /etc/skel /home/centos
ls –ldh /home/centos
chown redhat:redhat /home/centos –R
ls-lh/home/centos
usermod –d /home/centos redhat
finger redhat
su – redhat
写一个脚本:
1、显示当前系统日期和时间,而后创建目录/tmp/lstest
2、切换工作目录至/tmp/lstest
3、创建目录a1d, b56e, 6test
4、创建空文件xy, x2y, 732
5、列出当前目录下以a、x或者6开头的文件或目录;
6、列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录;
[root@localhost scripts]# cat e.sh
#!/bin/bash
d=`date +"%y-%m-%d-%H-%M-%S"`
echo $d
e=/tmp/lstest
a=a1d
b=b56e
c=6test
f=xv
g=x2y
h=732
if [ -e $e ]
then
cd $e
pwd
mkdir $a $b $c
touch $f $g $h
ls [ax6]*
ls [[:alpha:]][[:digit:]]*
else
mkdir $e
pwd
ls –d 显示目录自身的属性,而不是目录中的文件。
Eg:
1、不加-d
[root@localhost scripts]# ls -l /tmp/lstest
total 12
drwxr-xr-x. 2 root root 4096 Jun 28 16:42 6test
-rw-r--r--. 1 root root0 Jun 28 16:42 732
drwxr-xr-x. 2 root root 4096 Jun 28 16:42 a1d
drwxr-xr-x. 2 root root 4096 Jun 28 16:42 b56e
-rw-r--r--. 1 root root0 Jun 28 16:42 x2y
-rw-r--r--. 1 root root0 Jun 28 16:42 xv
2、加-d之后
[root@localhost scripts]# ls -ld /tmp/lstest/
drwxr-xr-x. 5 root root 4096 Jun 28 16:42 /tmp/lstest/
两者本质如下:
[root@server55 ~]# ls -ld /tmp/lstest
[root@server55 ~]# ls -l /tmp/lstest
两者的本质区别是,由于ald是目录文件,所以不加-d就是查看其目录下的内容了。