shell脚本编程入门教程 第二部分
按文件大小输出并排序ll -S -h 这个在运维时候,很有用,用来查找大文件
复制代码 代码示例:
[root@h1 ~]# ll -S -h
总用量 321M
-rw-r--r-- 1 root root 138M 7月 28 19:30 abc1.txt
-rwx------. 1 root root 92M 11月 20 2013 jdk-7u25-linux-x64.gz
-rw-r--r--. 1 root root 92M 6月 9 17:27 hadoop-2.2.0.tar.gz
-rw-r--r--. 1 root root 7.9K 6月 13 19:06 install.log
drwxr-xr-x 3 root root 4.0K 7月 29 04:47 hivesrc
drwxr-xr-x. 8 search 143 4.0K 6月 6 2013 jdk1.7.0_25
drwxr-xr-x 3 root root 4.0K 7月 9 04:08 login
drwxr-xr-x 3 root root 4.0K 6月 20 02:51 tsethadoop
-rw-r--r--. 1 root root 3.4K 6月 13 19:06 install.log.syslog
-rw-r--r--. 1 root root 2.1K 6月 16 13:10 initserver.sh
-rw-------. 1 root root 1.1K 6月 13 19:06 anaconda-ks.cfg
-rw-r--r-- 1 root root 1.1K 6月 19 03:31 setlimit.sh
-rw-r--r-- 1 root root 52 7月 31 19:46 count.txt
按文件名,排序ll -X
复制代码 代码示例:
[root@h1 ~]# ll -X
总用量 328444
drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc
drwxr-xr-x 3 root root 4096 7月 9 04:08 login
drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop
drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25
-rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg
-rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz
-rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz
-rw-r--r--. 1 root root 7995 6月 13 19:06 install.log
-rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh
-rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh
-rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog
-rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt
-rw-r--r-- 1 root root 52 7月 31 19:46 count.txt
ll -i显示文件或目录的索引节点inode,第一列的参数
复制代码 代码示例:
[root@h1 ~]# ll -i
总用量 328444
655837 -rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt
659103 -rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg
674329 -rw-r--r-- 1 root root 52 7月 31 19:46 count.txt
660638 -rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz
663837 drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc
660644 -rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh
654083 -rw-r--r--. 1 root root 7995 6月 13 19:06 install.log
654084 -rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog
659106 drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25
659105 -rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz
663800 drwxr-xr-x 3 root root 4096 7月 9 04:08 login
663149 -rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh
663148 drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop
[root@h1 ~]#
ls命令还支持,文件过滤,熟悉正则的同学应该都很熟悉
ls -l i* 代表显示以i开头文件或目录
复制代码 代码示例:
[root@h1 ~]# ls -l i*
-rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh
-rw-r--r--. 1 root root 7995 6月 13 19:06 install.log
-rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog
intest:
总用量 0
-rw-r--r-- 1 root root 0 7月 31 21:19 abc.txt
更多命令语法支持,请使用man命令,还记得用法么?好吧man ls这个命令。
3,touch命令,用来创建一个新文件,还可以改变文件的访问时间,在实际开发中使用较少,请使用man命令,来学习即可。
4,cp 命令 用法: cp source destination,实际开发使用较多,
例子:
cp test.txt test2.txt 拷贝当前的test.txt并新命令一个test2.txt
cp test.txt /home 拷贝test.txt到home目录下,名字不变
cp -a /abc/ /xyz 拷贝abc文件夹下所有内容到xyz下,xyz目录可以不用提前建立
cp -R /a /b 递归的拷贝文件或文件夹,到另一个目录下。
5,介绍下linux中的软链接和硬链接的区别 (www.jb200.com 脚本学堂)
软链接类似windows下的快捷方式,引用的文件还是原始文件,软链接,可以跨挂载的存储设备使用。
命令: ln -s source destination
硬链接软件开发中双写模式,建立硬链接的文件,只要向其中一个写入内容,所有的硬链接的内容都会改变,但是硬链接的文件是各自独立的,只能同一个挂载的存储设备下使用。
命令 ln -d source destination
延伸阅读:
实际开发中用的较多的是软链接:
例子,演示了散仙对jdk所建立的一个软连接:
复制代码 代码示例:
[root@h1 ~]# ll
总用量 328464
-rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt
-rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg
-rw-r--r-- 1 root root 52 7月 31 21:29 count2.txt
-rw-r--r-- 1 root root 52 7月 31 19:46 count.txt
-rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz
-rw-r--r-- 1 root root 1 7月 31 21:25 hh.txt
drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc
-rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh
-rw-r--r--. 1 root root 7995 6月 13 19:06 install.log
-rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog
drwxr-xr-x 2 root root 4096 7月 31 21:19 intest
drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25
-rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz
drwxr-xr-x 3 root root 4096 7月 31 21:33 li
drwxr-xr-x 3 root root 4096 7月 9 04:08 lo
drwxr-xr-x 3 root root 4096 7月 9 04:08 login
-rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh
drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop
[root@h1 ~]# ln -s jdk1.7.0_25/ jdk
[root@h1 ~]# ll
总用量 328464
-rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt
-rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg
-rw-r--r-- 1 root root 52 7月 31 21:29 count2.txt
-rw-r--r-- 1 root root 52 7月 31 19:46 count.txt
-rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz
-rw-r--r-- 1 root root 1 7月 31 21:25 hh.txt
drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc
-rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh
-rw-r--r--. 1 root root 7995 6月 13 19:06 install.log
-rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog
drwxr-xr-x 2 root root 4096 7月 31 21:19 intest
lrwxrwxrwx 1 root root 12 7月 31 21:45 jdk -> jdk1.7.0_25/
drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25
-rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz
drwxr-xr-x 3 root root 4096 7月 31 21:33 li
drwxr-xr-x 3 root root 4096 7月 9 04:08 lo
drwxr-xr-x 3 root root 4096 7月 9 04:08 login
-rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh
drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop
[root@h1 ~]#
6. 重命名一个文件使用命令mv
用法mv source destination
重命名目录或文件都可以,例子:
mv a.txt b.txt 重名名a文件为b文件名字
具体详细的用法,请使用man mv查看,退出按q即可!