学习linux系统管理,shell命令和编程会让系统管理员大展身手,如何学习linux shell编程呢?
既然是学习,就从最基础的开始,一步一步循序渐进。
本节内容:
man命令的用法,ls、ll、ln、mv等命令的用法
1,man命令是一个帮助我们快速掌握某个命令的使用方法的命令,当然前提是安装了man命令模块。linux手册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目录下,切换路径的命令,主要用法是用来浏览文件系统,和遍历目录所需。linux cd命令切换目录命令用法详解
用法(一)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下使用的。