1.命令的组成基本分为 命令字+选项+参数
2.命令字:常见的基本命令
3.选项:对命令字进行详细的区分
(1)长选项:格式为 (--加一个或多个单词)
(2)短选项:格式为(-加上一个字母,这里多个字母可以在一起写)
4.参数:将命令作用于谁
5.注意一点:大多数的选项和参数可以翻转顺序,有些参数格式是定死的只能是:命令字+选项+参数
来些例子看看
1.cd + 路径(结尾一定是个目录,否则会报错)
(1)cd 在我看来cd像是一个导航,只要你能告诉我你要到那里去,cd可以帮你完成。
(2)cd + 回车(这个是直接切换到当前用户的家目录一般用~表示,root用户的是/root,其他的用户放在/home/用户名)
(3)cd + -(返回上一次的目录)
(4)cd + ..(返回上一级的目录)
(5)这里补充下 . 的作用(. 表示当前目录,也可以使用. +可执行文件)
[root@localhost ~]# ./1.sh
1
2.路径
(1)相对路径:只作用于当前目录(头可以不加/)
(2)绝对路径:作用于所有目录(头要加/)
3.pwd + 回车
(1)pwd(显示当前你在哪个路径下面,是以绝对路径显示的)
4.ls
(*补充)ls -R (查看多层目录) ls -b(查看特殊字符:比如空格)
(1)ls + 回车(默认显示当前目录下的文件)
[root@localhost ~]# ls
1 2.c ha log scriptfifo tining.LOG
zabbix-3.0.4
1.c anaconda-ks.cfg install.log mariadb-10.0.20-linux-x86_64.tar.gz sun.txt zabbix-3.0.0alpha2
zabbix-3.0.4.tar.gz
2 file_sum.md5 install.log.syslog output.session
-----
(2)ls + a(显示当前目录下的所有文件包括隐藏的文件,隐藏文件一般是以 . 开头的文件)
[root@localhost ~]# ls -a
. 1.sh .bash_history .cshrc install.log.syslog output.session .ssh
tining.LOG zabbix-3.0.0alpha2.tar.gz
.. 2
(3)ls -l (列方式显示详细信息,由于经常使用此命令所以给ls -l设置了别名,使用 ll 一样的效果)
[root@localhost local]# ls -l
total 48
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
drwxr-xr-x. 2 root root 4096 Sep 23 2011 etc
以空白作为分隔对应的意思分别是 (权限,硬链接数,拥有者,所属组,文件大小-字节,日期,文件/目录名)
(4)ls -t(以时间的方式显示文件)
[root@localhost local]# ls -lat
total 56
drwxr-xr-x. 14 root root 4096 Apr 16 15:06 .
lrwxrwxrwx. 1 root root 29 Apr 16 15:06 mysql -> mariadb-10.0.20-linux-x86_64/
drwxr-xr-x. 12 root mysql 4096 Apr 16 15:06 mariadb-10.0.20-linux-x86_64
drwxr-xr-x. 6 root root 4096 Apr 16 14:01 zabbix-server
drwxr-xr-x. 13 root root 4096 Apr 11 22:41 ..
drwxr-xr-x. 5 root root 4096 Apr 11 22:41 share
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
(5)ls -lh(人性化显示文件大小)
[root@localhost local]# ls -lh
total 48K
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 bin
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 etc
(6)ls -ld + 目录名(显示目录本身的信息)
[root@localhost local]# ls -ldh src/
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 src/
(7)补充一下(如果命令项不知道怎么用可以 命令项 + --help,出来的帮助信息是英文的,也可以自己设置为中文字体)
(8)touch + 文件名(创建新文件,也可以修改文件的时间戳)(*补充):(touch "可包含特殊字符"创建出来是一个文件)
[root@localhost local]# touch dajiahao
[root@localhost local]# ls
bin dajiahao
(9)stat + 文件/目录名(类似于windows的右键属性)
[root@localhost local]# stat dajiahao
File: `dajiahao‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 915067 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-04-18 12:12:51.850001341 +0800
Modify: 2018-04-18 12:12:51.850001341 +0800
Change: 2018-04-18 12:12:51.850001341 +0800
(10)touch -a 文件名(修改文件时间戳)
[root@localhost local]# touch -a dajiahao
[root@localhost local]# stat dajiahao
File: `dajiahao‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 915067 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-04-18 12:16:29.883002668 +0800
Modify: 2018-04-18 12:12:51.850001341 +0800
Change: 2018-04-18 12:16:29.883002668 +0800
Access:访问时间,Modify:内容修改时间,Change:文件修改时间
(11)touch -c 文件(不创建该文件,大多用于脚本里面)
(12)touch 文件 文件 文件 .....(创建多个文件)
[root@localhost boke]# touch a b c
[root@localhost boke]# ls
a b c
(13)touch {1..5}(创建1-5,5个文件。{}两边可以添加字母,文字,数字)
[root@localhost boke]# touch {1..5}
[root@localhost boke]# ls
1 2 3 4 5 a b c
(14)rm + 文件(删除文件,原始命令应该是带提示的删除文件rm -i,这里做了alias别名所以直接用带提示的rm删除)
[root@localhost boke]# ls
1 2 3 4 5 a b c
[root@localhost boke]# rm a
rm: remove regular empty file `a‘? y
[root@localhost boke]# ls
1 2 3 4 5 b c
[root@localhost boke]# alias
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
(15)rm -f + 文件(不带提示的删除文件)
[root@localhost boke]# ls
1 2 3 4 5 b c
[root@localhost boke]# rm -f b
[root@localhost boke]# ls
1 2 3 4 5 c
(16)rm -r(递归删除或者删除目录都可以)
[root@localhost boke]# ls
1 2 3 4 5 c mulu
[root@localhost boke]# tree mulu/
mulu/
├── 1
└── 2
1 directory, 1 file
[root@localhost boke]# rm -rf mulu/
[root@localhost boke]# ls
1 2 3 4 5 c
(17)rm + 通配符(?代表一个字符??代表两个字符--没有包含关系,*代表全部。)
[root@localhost boke]# touch 123 1234
[root@localhost boke]# ls
1 123 1234 2 3 4 5 c
[root@localhost boke]# rm -f ???
[root@localhost boke]# ls
1 1234 2 3 4 5 c
[root@localhost boke]# rm -f ????
[root@localhost boke]# ls
1 2 3 4 5 c
[root@localhost boke]# rm -f *
[root@localhost boke]# ls
[root@localhost boke]#
(18)mkdir + 目录名(创建目录)
[root@localhost boke]# mkdir a b
[root@localhost boke]# ls
a a1b b c2d
(19)mkdir -p 目录名/目录名...(递归创建目录)
[root@localhost boke]# mkdir -p a/c/d
[root@localhost boke]# tree a
a
└── c
└── d
2 directories, 0 files
(20)rmdir 空目录(只能删除空目录)
[root@localhost boke]# rmdir a
rmdir: failed to remove `a‘: Directory not empty
[root@localhost boke]# rmdir a/c/d/
[root@localhost boke]# tree a
a
└── c
1 directory, 0 files
(21)cp + 文件名+目录/文件(如果最后的cp目标为目录,那么文件会存放到该目录下,如果是文件,里面的内容会被覆盖:这个会有提
醒)
[root@localhost boke]# cp a1b /opt/
[root@localhost boke]# cd /opt/
[root@localhost opt]# ls
a1b rh
(22)cp -pr(-r 递归复制或目录复制)(-p 保留原属性)
[root@localhost boke]# cp -pr a /opt/
[root@localhost boke]# cd -
/opt
[root@localhost opt]# ls
a a1b rh
[root@localhost opt]#
(23)mv 文件/目录(移动或者修改名称)
[root@localhost opt]# mv a c
[root@localhost opt]# ls
a1b c rh
[root@localhost opt]# mv a1b -
[root@localhost opt]# cd -
/usr/local/boke
[root@localhost boke]# ls
a a1b b c2d
[root@localhost boke]# mv c2d /opt/
[root@localhost boke]# cd -
/opt
[root@localhost opt]# ls
(24)mv 1目录/1文件 2目录/2文件 (移动并改名,同理cp亦可以做到)
[root@localhost boke]# mv /opt/- c
[root@localhost boke]# ls
a a1b b c
[root@localhost boke]# cd -
/opt
[root@localhost opt]# ls
c c2d rh
[root@localhost opt]#
(25)scp + 用户@ip/域名:文件/目录 + 路径(远程复制,可跨系统相互传输,亦可以作为中间人scp+机器1 机器2,可以做免密,亦可
以手打两个机器密码,如果传输的事目录scp后面要加-r的,这个scp基于ssh协议工作)
(26)cat/tac +文件(正序/倒叙查看小文件)
[root@localhost boke]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost boke]# tac /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
(27)more + 大文件(查看大文件,空格为显示下一页,回车显示下一行,b显示上一页,q或者ctr+c退出)
(28)less + 大文件(操作方法与more相通,比more多了一项查找的功能,按下 / 在后面跟上你要查找的内容,会高亮显示)
(29)head -n行数 + 大文件(默认输出文件前十行,可自定义)
(30)tail -n行数+大文件(默认输出文件尾十行,可自定义,tail -f 为实时查看)
(31)echo + 内容 > 文件(echo 具有创建文件的功能,>这个是覆盖文件内容,>>这是追加文件内容)
[root@localhost boke]# echo 1 > file
[root@localhost boke]# cat file
1
[root@localhost boke]# echo 2 > file
[root@localhost boke]# cat file
2
[root@localhost boke]# echo 3 >> file
[root@localhost boke]# cat file
2
3
(32)grep +关键字+文件(筛选文件内容包含关键字的全部行)
[root@localhost boke]# grep root /etc/passwd --color (这里我是6.5系统所以,加了一个--color长选项,7系统不用)
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
(33)grep + ^关键字$ + 文件(以关键词开头或结尾的行过滤出来)
[root@localhost boke]# grep ^root /etc/passwd --color
root:x:0:0:root:/root:/bin/bash
(34)cut -d: -f1,6 + 文件(cut是用来截取列的-d后面如果跟的是非合法字符必须加" ",-f后面跟上列数,多行用,分开)
[root@localhost boke]# cut -d: -f1,6 /etc/passwd
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd
(35) | (|管道,前一个命令的输出是后一个命令的输入,管道可以连用,但必须遵守秩序)
[root@localhost boke]# cut -d: -f1,6 /etc/passwd | grep ^root
root:/root
(36)sort(默认以26个英文字母最为排序方式,就是ACII码)
-r 降序排序
-n 数字大小排序(小-大,1-10)
-u 剔除重复的行
-k 指定某一列
-t 分隔符
(37)uniq +文件(剔除重复的行,但是我这里试了不行,大家试过之后也可以评论补充下)
(38)diff +文件+文件(这是对于两个内容类似的文件对比,diff会将有区别的地方显示出来)
[root@localhost boke]# uniq file
2
o3
2
o3
[root@localhost boke]# vim file1
[root@localhost boke]# cat file
2
o3
2
o3
[root@localhost boke]# cat file1
2
[root@localhost boke]# diff file file1
2,4d1
< o3
< 2
< o3
(39)wc +目录/文件(目录/文件统计)
-l 只显示行
-w 只显示字节
-c 只显示大小
[root@localhost boke]# ll |wc -l
8
[root@localhost boke]# ll |wc
8 65 328
[root@localhost boke]# ll |wc -w
65
[root@localhost boke]# ll |wc -c
328
好了,今天先跟大家分享这些吧,明天我会继续的。
原文地址:http://blog.51cto.com/13293172/2104867