既然是学习,就从最基础的开始,一步一步循序渐进。
1,man命令是一个帮助我们,快速掌握某个命令的使用方法的命令,当然前提时我们安装了man命令模块,man命令的用法,man command,后面跟自己不了解的命令,如果你的系统没有安装,先执行命令,yum install man* 安装。用法如下:
[root@h1 ~]# man ls LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print octal escapes for nongraphic characters --block-size=SIZE use SIZE-byte blocks. See SIZE format below -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime -C list entries by columns --color[=WHEN] colorize the output. WHEN defaults to ‘always’ or can be ‘never’ or ‘auto’. More info below -d, --directory list directory entries instead of contents, and do not dereference symbolic links -D, --dired generate output designed for Emacs’ dired mode -f do not sort, enable -aU, disable -ls --color -F, --classify append indicator (one of */=>@|) to entries --file-type likewise, except do not append ‘*’ --format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C :
2,cd命令,cd命令时linux目录下,切换路径的命令,主要用法是用来浏览文件系统,和遍历目录所需.
用法(一)cd 绝对路径
例如cd /etc/profile.d,cd /home等等
用法(二)cd 相对路径
例如cd ../ 上一级目录 cd ./当前目录 cd ../../上一级的上一级
3,ls命令,显示当前目录下所有文件盒目录
[root@h1 ~]# ls abc1.txt count.txt hivesrc install.log jdk1.7.0_25 login tsethadoop anaconda-ks.cfg hadoop-2.2.0.tar.gz initserver.sh install.log.syslog jdk-7u25-linux-x64.gz setlimit.sh [root@h1 ~]#
ls -F参数,可以给目录后面加/号,更容易区别文件和目录,注意是大写的-F
[root@h1 ~]# ls -F abc1.txt count.txt hivesrc/ install.log jdk1.7.0_25/ login/ tsethadoop/ anaconda-ks.cfg hadoop-2.2.0.tar.gz initserver.sh install.log.syslog jdk-7u25-linux-x64.gz* setlimit.sh [root@h1 ~]#
ls -F -R 可以递归打印某个目录下所有嵌套文件等多级路径。
ls -F -a 可以显示系统隐藏的文件比如我们的公钥文件.ssh/等
[root@h1 ~]# ls -F -a ./ anaconda-ks.cfg .bash_profile .cshrc initserver.sh jdk1.7.0_25/ .m2/ .ssh/ .viminfo ../ .bash_history .bashrc hadoop-2.2.0.tar.gz install.log jdk-7u25-linux-x64.gz* .mysql_history .tcshrc abc1.txt .bash_logout count.txt hivesrc/ install.log.syslog login/ setlimit.sh tsethadoop/ [root@h1 ~]#
ls -l可以以换行格式,显示更详细的信息。
[root@h1 ~]# ls -F -l 总用量 328444 -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 19:46 count.txt -rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz 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. 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月 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/
散仙在这里解释一下,这几个东西分别代表的含义,
1,第一列第一个字符目录(d),文件(-),字符文件(c),块文件(b)
2,第一列第二个rw,drwx,等等,代表文件权限,这个散仙会在后面的文章里介绍
3,第二列数字,代表硬链接总数(??不知道硬链接是啥?,没关系,下文会介绍)
4,第三列,代表用户名
5,第四列代表组名
6,第五列文件的大小
7,第六列,文件的修改时间
8,第七列,具体的文件或目录
更人性化的输出大小ls -F -l -h 命令将字节转为M来显示
[root@h1 ~]# ls -F -l -h 总用量 321M -rw-r--r-- 1 root root 138M 7月 28 19:30 abc1.txt -rw-------. 1 root root 1.1K 6月 13 19:06 anaconda-ks.cfg -rw-r--r-- 1 root root 52 7月 31 19:46 count.txt -rw-r--r--. 1 root root 92M 6月 9 17:27 hadoop-2.2.0.tar.gz drwxr-xr-x 3 root root 4.0K 7月 29 04:47 hivesrc/ -rw-r--r--. 1 root root 2.1K 6月 16 13:10 initserver.sh -rw-r--r--. 1 root root 7.9K 6月 13 19:06 install.log -rw-r--r--. 1 root root 3.4K 6月 13 19:06 install.log.syslog drwxr-xr-x. 8 search 143 4.0K 6月 6 2013 jdk1.7.0_25/ -rwx------. 1 root root 92M 11月 20 2013 jdk-7u25-linux-x64.gz* drwxr-xr-x 3 root root 4.0K 7月 9 04:08 login/ -rw-r--r-- 1 root root 1.1K 6月 19 03:31 setlimit.sh drwxr-xr-x 3 root root 4.0K 6月 20 02:51 tsethadoop/ [root@h1 ~]#
这么多命令是不是很烦,试试这个ll这个命令,散仙经常用的,一个加强命令
[root@h1 ~]# ll 总用量 328444 -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 19:46 count.txt -rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz 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. 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月 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 ~]#
解释一下,有些命令时不同的linu系统,演化而来,不用的linux分支演化可能不支持,散仙的命令是在centos下,使用的。
按文件大小输出并排序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中的软链接和硬链接的区别,
软链接类似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即可!