-r或-R: 递归
一、命令列表
01-05 ls ls -l cd pwd cp
06-10 scp mv touch mkdir rmdir
11-15 rm find less cat more
16-20 nl head tail grep cut
21-25 wc sort uniq diff patch
26-30 tr sed uname exit clear
31-35 init reboot shutdown tar gzip/bzip2
36-40 ifconfig ping free df
du
41-45 vmstat rpm passwd su useradd
46-50 userdel userdel useradd sudo id
51-55 ftp data cal whatis man
56-60 info file chown chgrp chmod
61-65 umask history ps kill alais
66-70 ssh mail mount ln service network restart
71-75 env which
ipcs ipcrm md5sum
二、常用命令
1 ls 显示目录内容
ls –l(字母”l”) //以长格式显示目录下的内容列表。简写为"
ll"。
ls –a
//显示
包括隐藏文件(文件名以”.”开头)在内的所有文件
ls –m //以水平紧凑方式显示文件(文件之间用“,”和一个空格隔开)
ls –i file1 //显示文件的inode(索引节点号)信息
ls -R //
递归的显示目录里面的内容,注意不是"r"
ls -ld //显示目录本身的信息
ls abc*
//列出以"abc"开头的文件或目录
ls -lt //列出目录,按时间排序
ls -ltr //列出命令,按时间反序
2 ls-l命令得到的格式,即"ll"命令
结果:
-rw-r—r— 1 root root 1488 2008-11-06 vimrc
drwxr-xr-x 3 root root 4096 04-03 17:46 vmware-tools
解释:
第一列:第1位表示文件类型和权限。234位表示拥有者的权限。567位表示拥有组的权限。8910位表示其他用户的权限。
第一位:"-"表示是文件;"d"表示是目录;"p"是管道文件。linux最多有16种文件。
” r ”: 读。对文件来说指可以读文件的内容;对目录来说是可以
列出目录里有哪些文件、文件夹(需要与"x"同时使用)。
” w”: 写。对文件来说指可以修改内容;对目录来说是指可以
创建目录,删除文件。
” x ”: 执行。对文件来说可以执行;对于目录,需要与"r"同时使用。
” - ”: 没有权限。
第二列表示文件的连接数(这里指的是硬链接)。
第三列表示文件所有者。
第四列表示文件所属组。
第五列表示文件的大小。
第六列表示文件最后一次访问的时间。
第七列表示文件名称。
3 cd 将当前工作目录切换到指定目录
cd 或 cd ~ 或 cd $HOME //每个用户都有家目录,它是用户登录之后所在的默认目录。当用户切换到其他目录后,希望快速回到家
目录,则可使用这三个中的任何一个。
cd /var/log //将当前工作目录切换到/var/log目录
cd –P etc //如果要切换的目标“目录”是一个符号链接,直接切换到符号连接所指向的实际目录,而不是符号链接所代表的目录。
cd .. //返回上级目录
cd ../../ //返回上两级目录,等价于"cd ../.."
cd ../../../ //返回上三级目录
cd - //返回上一个工作目录
4 pwd 显示当前工作目录
pwd //显示当前所在的目录
pwd -P //显示真实目录,比如是一个连接文件,则显示连接文件的真实目录
5 cp 复制文件或目录 -a -p -r -i -v
cp –v /etc/fstab /root/fstab.bak //”-v”选项来显示cp指令执行的详细过程。如果fstab.bak存在,则覆盖;如果不存在,则改名
fstab.bak。
cp –v file1 file2 file3 Desktop/ //复制多个源文件。当使用cp指令复制多个文件时,目标文件参数(最后一个参数)必须是一个已 经存在的目录,否则将出现错误。
执行结果:’file1’->’Desktop/file1’ ‘file2’->’Desktop/file2’ ‘file3’->’Desktop/file3’
cp –v file[1-3] Desktop/ //上例中源文件名有一定规律,可以借助于shell的通配符来简化命令的输入。等价于上一条语句。
cp –r /etc/ /root/ // 默认情况下,cp指令只能复制普通文件。如果要进行
目录的复制,则必须借助于”-R”或”-r”选项, 否则将忽略复制目录。
cp –r /etc /root/ //等价于”
cp –r /etc /root”,”
cp –r /etc/ /root”,”
cp –r /ctc/ /root/”。将目录tec及其子目录和文件复制 到root目录下。
cp –r /etc/* /root/ //将etc下面的文件复制,而不是将目录etc复制到toot下。
cp –s lvm.conf liu //不进行真正的复制,仅为源文件创建符号链接。(与”ln -s”指令功能相同,但是”cp -s”只能在当前目
录中创建相对的符号连接。
cp –l lvm/lvm.conf ccc/liu2 //为源文件建立一个硬链接(与”ln”指令的功能相同)。此选项可以节省硬盘空间,但是要求源文件和
目的文件必须在同一分区(或文件系统)上。
cp lvm/lvm.conf . //将lvm/lvm.conf复制到当前目录下
cp lvm/lvm.conf liu3 //如果”liu3”是当前的一个目录,则将lvm/lvm.conf复制到liu3目录下;如果”liu3”不是当前的一个目录,
则将lvm/lvm.conf复制到当前目录下,文件名为”liu3”.
cp -p /etc/fatab /root //
"-p"表示将原来的文件拷贝过来的时候会继承原来的权限。这个参数很有用。
cp -a lvm/lvm.conf ccc/liu2/lvm.txt //把连接拷过来,而不是把真实的文件拷过来。
cp -rf abc /home/bbb //如果在/home/bbb目录下有abc目录,则/home/bbb下的abc目录被abc目录覆盖;如果在/home/bbb目录
下没有abc目录,则在/home/bbb目录下创建abc目录。所以:cp -rf abc /home/bbb/abc 这条命令并不是
将abc目录覆盖/home/bbb下的abc目录
6 scp
//远程拷贝
scp -rp
10.10.10.106:/home/d5000/shunyi/.cshrc /home/d5000/shunyi/ //拷贝.cshrc文件到我自己的目录下
scp -rp
sypc01:/home/d5000/shunyi/.cshrc .
scp -rp king@sypc01:/home/d5000/shunyi/.cshrc . //使用什么用户登录
7 mv 移动文件或改名
mv /etc/redhat-release /tmp //将版本信息移动到tmp文件夹下
mv abc.txt abd.txt //将abc.txt改名为abd.txt
mv -i //重名的话提醒
mv -f //强制
8 touch 创建一个空文件或更新时间戳
touch abc.txt //当abc.txt不存在时,创建abc.txt文件;当abc.txt存在时,更新abc.txt的时间戳,但是不会改变它的内容。
9 mkdir 新建目录
mkdir aaa //新建一个名为”aaa”的目录
mkdir bbb/ccc //当前路径下有bbb目录时,则在bbb下新建ccc目录;当前目录下没有bbb时,报错
10 rmdir 删除一个空目录
rmdir aaa //当目录aaa为空(下面没有东西)时,删除目录aaa
11 rm 删除文件或目录 -i -r -f
rm –r aaa //如欲删除目录,需要加参数”-r”,否则预设仅会删除文件。如果aaa目录下还有其他文件或目录,则递
归处理,依次进入目录,删除。
rm –v aaa //用参数
”-v”表示,显示指令执行过程
rm –rf aaa //简写为”
rm –rf aaa”,不管目录是否为空,统统删除,而且不给提示,使用时要小心。
12 find 在所给的路经名下寻找符合表达式相匹配的文件
find /etc -name passwd //在etc目录下查找名字为"passwd"的文件或文件
find . -name The*.txt //已知开头和结尾,查找文件
find . -name "f*" //找以f开头的
find . -name "file[1-9]" //找file1或file2或....或file9
find . -name "file?" //问好代表一个任意字符
find /home/user -name aa -a -type d //找文件名是"aa"同时是目录的文件。-a就是and:与
find /home/user -name aa -o -name dd //找文件名是"aa"或"bb"的目录或文件。-o就是or:或
find . ! -name main.c //列出不是main.c的文件或目录
find /home/user -name main.c|xargs ls -l //先找到main.c 然后用xargs分解出每一条,对每一条ll
13 less 查看文件的内容 //less命令能够像vi一样打开文档,而不是在命令后面列出。所以按"v"能够进入编辑状态。
less /proc/version //查看linux版本信息。
less命令和cat命令的区别:当内容显示不完时,less命令可以翻页,而cat命令一次全部显示出来。
less命令和more命令的区别:less命令上下翻页,而more命令只能向下翻页。
/abc //在less命令中输入"/"再输入内容,则为查找。按"n"向下查找,按"N"向上查找。按"v"进入编辑模式。
14 cat 查看文件(可以是二进制的)内容
cat /etc/redhat-release //打开redhat-release文件,查看redhat的版本信息
cat /proc/version //To determine the version of Linux installed
cat file1 file2 //顺序显示file1和file2的内容
cat -b ccc.txt //对非空行进行编号
cat -E ccc.txt //在每行行尾处显示$.有时在有乱码的时候看
cat -n ccc.txt //对输出的所有行进行编号
cat -s ccc.txt //不输出多行空行。没啥用。
15 more 查看文件内容 //cat和more命令是把文件的内容显示在命令后面,而不是像vi一样打开一个文档。more可以翻页。
more /etc/redhat-release //打开redhat-release文件,查看redhat的版本信息
cat /etc/redhat-release|more //与上条命令相同。”cat file”是以连续显示方式查看file的内容。more file 或 cat file|more 以分页方式查 看文件的内容
16 nl 查看文件内容,前面加上行号
nl /etc/sysconfig/i18n //查看字符集,将内容显示在命令后面,并加上行号
17 head 显示文件的前十行(默认行数)
head /etc/inittab //显示文件"inittab"的前10行
head -n 15 /etc/inittab //显示文件"inittab"的前15行
head -15 /etc/inittab //显示前15行的简写
18 tail 显示文件的后十行(默认行数)
tail /etc/inittab //显示文件"inittab"的后10行
tail -n 15 /etc/inittab //显示文件"inittab"的后15行
tail -f /etc/inittab //动态实时地显示文件"inittab"的后10行的内容。这种方法经常用来看日志,实时排错。
head -n 20 /ect/inittab |tail //查看第11到20行的内容
head -n 20 /etc/inittab |nl|tail //查看第11到20行的内容,并编号11-20
head -n 20 /ect/inittab |tail > /tmp/init.txt //查找第11到20行的内容,并重定向输出到/tmp下,文件名为init.txt
19 grep 过滤关键字。查找文件中符合条件的字符串,或查找目录下符合条件的文件。以行为单位。
grep MemTotal proc/meminfo //将proc/meminfo文件中含有字符串”MemTotal”的整行都显示出来
grep abc file1 //将file1中包含字符串”abc”的行显示出来
grep ^d file1 //搜索以d开头的行
ls -l | grep sh$ //搜索以sh结尾的文件
grep -F a$ file1 //把"$"作为字符处理
grep --color=auto redhat etc/passwd //查看有没有含有"redhat"关键字的用户,并用颜色把关键字标出来
data --help|grep year //在data的帮助文件中查找"year"关键字
ls|grep abc //找到该目录下名字含有"abc"的文件。在目录下查找文件名不能用"grep abc /home/etc"这种形式,只能用ls显示再查找
ls|grep -i abc //找到该目录下名字名字含有"abc"的文件,忽略大小写。即查找:"abc"、"Abc"、"ABC"等
ls|grep -n abc //找到该目录下名字还有"abc"的文件,列出来的行前面加上行号。
ls|grep -v abc //将不含有关键字"abc"的行显示出来。
ls|grep -A 3 abc //将含有关键字"abc"的行显示出来,包括每个匹配的后3行。
ls|grep -B 5 abc //将每个匹配的行及前5行显示出来。
ls -R |grep -B 20 abc //应用:如果一个文件结构很复制,不知道"abc"在那一层目录里面,可以通过此命令来查看。
grep --color=auto ^user /etc/passwd //查找以"user"开头的行。应用:不想让别人上网,则处理"http"开头的地址。
ls|grep --color=auto avi$ /tmp //在tmp文件下查找以avi为结尾的文件或目录。这种方法的应用为:以后如果不想让用户下载
以"avi"格式的视频,可以先用正则表达式查看别人下载的文件,然后再处理。
find /usr -name stdio.h|xargs grep FILE
20 cut 以列为单位过滤关键字
cut -d: -f1 /etc/passwd //查看都有哪些用户。"-d:"表示以":"为分隔符;"-f1"表示显示第一列。
cut -d: -f1 /etc/passwd >/tmp/user.txt //不在命令行下面显示,而是重定向到tmp下。
cut -d: -f1-3 /etc/passwd //将1到3列显示出来
cut -d: -f1,3 /ect/passwd //将第1,3两列显示出来
last|cut -d' ' -f1 //last命令中以空格(tab键)为分隔符,输出第一列。
cut -c2-5 /etc/passwd //截取第2到5个字符
ifconfig|grep addr|cut -d: -f2|cut -d' ' -f1|head -n 2|tail -n 1 //把IP地址显示出来
21 wc 查看字数
wc /etc/passwd //输出结果:39 237 1901 passwd。表示:行数、单词数、字节数、名称。
用处:可以查看某个用户访问了文件多少次等等。
ls |wc -l //-l参数表示看行数。所以这条命令的意思是:查看当前目录下总共有多少文件和目录。
ls -l|grep ^-|wc -l //查看当前目录下有多少个文件
ls -l|grep ^d|wc -l
//查看当前目录下有多少个文件夹
22 sort 排序
sort /etc/passwd //显示passwd的文件内容,并排序
cat passwd|sort -r //反序排
cat passwd|sort -t: -k3 -n //"-t:"表示以":"为分隔符;"-k3"表示以第三列为准进行排序;"-n"表示按数字排序,因为正常情况下,是按 字符串进行排序的:1>12>>2>22...
sort -f passwd|more //忽略大小写进行排序
sort -u passwd|cat //排序时删除重复行。等价于:sort passwd|uniq
23 uniq 比较相邻行,然后去掉重复行
uniq abc.txt //如果abc.txt文件中,第一行为abcd,第二行为aaa,第三行为abcd,则显示的仍然为三行,因为一三行不是相邻行
sort abc.txt|uniq //先进行排序,再删除重复行。这样一般就可以删除重复行了。
sort abc.txt|uniq -c //删除重复行,并在行前加上重复了多少次。
24 diff 比较两个文件的差异
diff abc.txt abcd.txt //比较abc.txt和abcd.txt的差异
diff -u abc.txt abcd.txt> aaa.patch //对比abc.txt和abcd.txt,生成补丁文件aaa.patch
25 patch 补丁
diff -u abc.txt abcd.txt> aaa.patch //对比abc.txt和abcd.txt,生成补丁文件aaa.patch
patch -b aaa.txt aaa.patch //给aaa.txt文件打补丁
26 tr 大小写转化
tr 'a-z' 'A-Z' <abc.txt //将abc.txt中的小写转化为大写。写法:tr 'a-z' 'A-Z' abc.txt 是错误的。
tr 'A-Z' 'a-z' <abc.txt>abcd.txt //将abc.txt大写转化为小写,并重定向输出到abcd.txt文件中
27 sed 查找替换
sed 's/dog/cat/g' //搜索"dog",替换成"cat",g表示全局替换。
28 uname 显示系统信息
uname –a //显示全部的信息。结果:Linux liupc.taiji.com 2.6.18-128.e15 #1 SMP Wed Dec 17 11:42:39 EST 2008 i686
i686 i386 GNU/Linux.kernel version is "2.6.18",errata level is"-128.e15";
”i386”对应的是32位,”x64”对应的是64位。
uname -r //内核的版本
29 exit 退出当前的终端或用户
exit //当前为用户是,退出到root用户。当前为root用户时,退出当前终端
30 clear 清屏
clear //清屏
31 init
init 0 //重启
32 reboot 重启
reboot //重启
33 shutdown 关机
shutdown -h 0
34 tar 压缩、解压tar压缩文件
tar –xvf VMwareTools-8.4.6-385536.tar.gz //解压tar包
tar xvf VMwareTools-8.4.6-385536.tar.gz //解压tar包
tar zcvf abc.tar.gz abc
//将abc压缩成abc.tar文件
tar zcvf abc.tat.gz abc def ghi //将三个文件abc、def、ghi一起打包并压缩成一个文件
35 gzip/bzip2 压缩 这是两种压缩算法
gzip -v aaa.txt //压缩成aaa.txt.gz 。 -v:显示过程
gzip -d aaa.txt.gz //解压变成原来的aaa.txt -d表示:解压
36 ifconfig 查看自己的ip地址
ifconfig //查看自己的ip地址
ifconfig –a //查看自己的ip地址
37 ping 查看网络是否通
ping 127.0.0.1 //查看自己的网络
ping 192.168.0.4 -t //windows下会一直ping下去
38 free 显示内存的状态
free //指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
39 df 显示磁盘的相关信息
df –h //显示磁盘空间的使用情况,“-h”表示以容易阅读的方式
df –h /tmp //显示给定文件"/tmp"所在分区的磁盘使用情况。如果不指定“文件”参数,则df指令显示所有磁盘分区的使用情况。 如果指定了文件参数,则仅显示给定文件所在分区的磁盘空间使用情况。
40 du 查看目录大小
du -sh /etc
du -m aaa
41 vmstat 报告关于内核进程,虚拟内存,磁盘,cpu的的活动状态
42 rpm 对软件包进行操作
rpm -qpi mplayer-1.0pre7try2-2.i386.rpm //查看一个软件包的用途、版本等信息
rpm -qpl mplayer-1.0pre7try2-2.i386.rpm //查看一件软件包所包含的文件
rpm -ivh foo-1.0-1.i386.rpm //安装软件
rpm -e foo //卸载软件,注意输入的是软件名
rpm -Uvh file.rpm //这是用来升级一个rpm 包
43 passwd 修改密码
passwd //修改密码,而且不需要以前的密码
passwd u1 //修改用户u1的密码,需要在root用户下执行
44 su 切换用户
su - u1 //切换到u1,注意"-"后面有空格
exit //退出普通用户到root用户
45 useradd 增加普通用户
useradd -m u1 //增加普通用户u1,并在/home/下建立文件夹
useradd u1 //增加普通用户u1
useradd -m u1 -s /bin/bash //显式制定所用的shell.很多操作系统都会默认shell为bash,但有的没有默认制定,如ubantu就不指定。
useradd -u 505 u2 //增加用户u2,指定UID为"505"
useradd oracle -g oracle -d /home/d5000/oracle -p ora123 //创建用户oracle,组为oracle,家目录为/home/d5000/oracle,密码为ora123
46 userdel 删除普通用户
userdel u2 //删除普通用户u2
47 groupadd 增加组S
groupadd u1 //增加组u1
48 groupdel 删除用户组
groupdel u1
49 sudo 权利委派 委派给普通用户具有root的权限
step1:vim /etc/sudoers //在root用户下执行
step2:增加行: u1 ALL=(ALL) /usr/sbin/useradd //委派u1可以建立账号
step3: sudo /usr/sbin/useradd u2 //在u1用户下执行
step4: more /etc/passwd //查看用户u2是否建立
50 id 用来查看当前用户的信息:uid多少,gid多少,属于哪个组等等
id //在用户下执行,则为查看该用户的信息
id u1 //查看用户u1的信息,要有查看的权限
51 ftp 上传下载
上传:
ftp 10.85.18.221
Name:zhejiang
Password:zj123456
ftp>binary
ftp>put abc.dmp
52 date 用来显示当前的时间或设置时间
date //显示当前的时间
date 05151720 //设置当前的时间为5月15日17:20
53 cal 显示当前的日历
cal //显示当前的日历
cal 04 2009 //显示2009年4月的日历
cal 2009 //显示2009年全年的日历
54 whatis 显示要查询的命令是干嘛的
whatis cal //问一下"cal"命令是干嘛的
55 man 显示帮助。
"--help"选项不是所有命令都支持的,但是所有命令都支持"man"。"[]"表示可选,"<>"表示必选,"..."表示范围。
一行显示不完时,可以停住。按空格翻页、enter翻行。还可以查找,写"/G"表示查找"G"。按"q"退出。
man ls //列出ls的帮助信息。man 没有数字的话,是命令。
man 2 read //2是系统调用。
man 3 //prosix标准放在3里面
56 info 当"man"显示的信息还是不能满足要求时,用"info"命令显示更详细的信息,但是这个命令内容比较混乱。
info ls //更加详细的列出"ls"命令的帮助文档
57 file 查看文件的类型
file abc.txt //列出文件的类型
file abc.doc //列出文件的类型
58 chown 改变文件的所有者,只有root用户可以使用此命令。还可以同时改变所有者和所属组,中间用":"隔开。
chown u1 /liu/abc.txt //将文件abc.txt的所有者改为u1
chown -R u1 /liu/ //以递归的方式将文件夹/liu的所有者改为u1
chown u1:u2 /liu/abc.txt //将文件abc.txt的所有者和所属组分别改为u1、u2
59 chgrp 改变所属组,文件拥有者和root都可以做
chgrp u1 /liu/abc.txt //将文件abc.txt的所属组改为u1
chgrp -R u1 /liu/ //以递归的方式将文件夹/liu的所属组改为u1
60 chmod命令 改变文件访问权限
chmod o-rw /liu/abc.txt //在其他用户上减去读写权限。u、g、o表示三种用户,a表示所有用户;+、-表示允许或拒绝。
chomod a-w /liu/abc.txt //在所有用户上减去写权限
chmod 755 /liu/abc.txt //给文件rwxr-xr-x权限。数字相加代表权限,其中r:4;w:2;x:1。
61 umask //掩码值,指文件(0666)或目录(0777)创建时在全部权限中要去掉的一些权限。
umask //查看当前用户的umask值。普通用户缺省时umask的值是002,root用户为022。
666-002=664;666-022=644。所以普通用户创建的文件权限为664,root用户创建的文件权限为644.
777-002=775;777-022=755。所以普通用户创建的目录权限为775,root用户创建的目录权限为755.
umask 001 //改变掩码值
可以通过umask查看默认的缺省的掩码值。通过umask 001修改掩码值。
62 history //查看历史命令
history //查看曾经使用过哪些命令。默认保留1000条。
history -c //清除历史记录
!297 //执行历史命令中第297条
!chown //执行最近的一条chown命令
63 ps
ps -elf
ps -aux
ps -elLf
64 kill
kill -l //查看信号列表
kill -9 //发9号信号
65 alias 命令别名
alias //列出所有的别名设置
alias cp='cp -i' //效力仅及于该次登入的操作。
66 ssh
ssh -l root 192.168.0.11 或ssh root@192.168.0.11 //指定用户为root
67 mail
68 mount
69 ln 硬链接、软链接
见后面详细的解释
70 service network restart 重启网络服务
service network restart //重启网络服务
71 env //查看环境变量
env
72 which 查看可执行文件的绝对路径
whicd passwd //查找命令passwd的绝对路径
73 ipcs 查看共享内存或信号量集
ipcs
74 ipcrm 删除共享内存或信号量集
ipcrm -m shmid //shmid为共享内存ID
ipcrm -s semid //semid为信号量集ID
75 md5sum 用来查看两个文件是否相同
shell:最难的三个命令:grep/sed/awk
4 虚拟机下linux与本机网络连接配置
要修改的地方:
a Edit->Vertual Network Editor->修改Bridged或Host-only
b VM->Setting->Network Adapter ->选择Bridged 或Host-only
c System –>Administration->Network->Edit修改IP地址
d打开网络和共享中心->更改适配器设置->修改本地连接的IP地址或VMware Network Adapter的IP地址
e service network restart 重启网络服务
f 当内部想与VMware Network Adapter ping通时,选择Host-only;当要与本地连接地址ping 通时,选择Bridged