Linux最常用命令详解入门教程.docx
《Linux最常用命令详解入门教程.docx》由会员分享,可在线阅读,更多相关《Linux最常用命令详解入门教程.docx(65页珍藏版)》请在冰豆网上搜索。
Linux最常用命令详解入门教程
Linux系统命令及其使用详解(大全)
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991年的10月5日(这是第一次正式向外公布的时间)。
Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
文件类型
普通文件(regularfile):
就是一般存取的文件,由ls-al显示出来的属性中,第一个属性为[-],例如[-rwxrwxrwx]。
另外,依照文件的内容,又大致可以分为:
1、纯文本文件(ASCII):
这是Unix系统中最多的一种文件类型,之所以称为纯文本文件,是因为内容可以直接读到的数据,例如数字、字母等等。
设置文件几乎都属于这种文件类型。
举例来说,使用命令“cat~/.bashrc”就可以看到该文件的内容(cat是将文件内容读出来)。
2、二进制文件(binary):
系统其实仅认识且可以执行二进制文件(binaryfile)。
Linux中的可执行文件(脚本,文本方式的批处理文件不算)就是这种格式的。
举例来说,命令cat就是一个二进制文件。
3、数据格式的文件(data):
有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式的文件可以称为数据文件(datafile)。
举例来说,Linux在用户登入时,都会将登录数据记录在/var/log/wtmp文件内,该文件是一个数据文件,它能通过last命令读出来。
但使用cat时,会读出乱码。
因为它是属于一种特殊格式的文件。
目录文件(directory):
就是目录,第一个属性为[d],例如[drwxrwxrwx]。
连接文件(link):
类似Windows下面的快捷方式。
第一个属性为[l],例如[lrwxrwxrwx]。
设备与设备文件(device):
与系统外设及存储等相关的一些文件,通常都集中在/dev目录。
通常又分为两种:
块设备文件:
就是存储数据以供系统存取的接口设备,简单而言就是硬盘。
例如一号硬盘的代码是/dev/hda1等文件。
第一个属性为[b]。
字符设备文件:
即串行端口的接口设备,例如键盘、鼠标等等。
第一个属性为[c]。
套接字(sockets):
这类文件通常用在网络数据连接。
可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。
第一个属性为[s],最常在/var/run目录中看到这种文件类型。
管道(FIFO,pipe):
FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。
FIFO是first-in-first-out(先进先出)的缩写。
第一个属性为[p]。
[3]
文件结构
/:
根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
/bin:
bin就是二进制(binary)英文缩写。
在一般的系统当中,都可以在这个目录下找到linux常用的命令。
系统所需要的那些命令位于此目录。
/boot:
Linux的内核及引导系统程序所需要的文件目录,比如vmlinuzinitrd.img文件都位于这个目录中。
在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。
/cdrom:
这个目录在刚刚安装系统的时候是空的。
可以将光驱文件系统挂在这个目录下。
例如:
mount/dev/cdrom/cdrom
/dev:
dev是设备(device)的英文缩写。
这个目录对所有的用户都十分重要。
因为在这个目录中包含了所有linux系统中使用的外部设备。
但是这里并不是放的外部设备的驱动程序。
这一点和常用的windows,dos操作系统不一样。
它实际上是一个访问这些外部设备的端口。
可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
/etc:
etc这个目录是linux系统中最重要的目录之一。
在这个目录下存放了系统管理时要用到的各种配置文件和子目录。
要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/home:
如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。
/lib:
lib是库(library)英文缩写。
这个目录是用来存放系统动态连接共享库的。
几乎所有的应用程序都会用到这个目录下的共享库。
因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
/lost+found:
在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。
当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。
有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/mnt:
这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。
可以参看/etc/fstab的定义。
/media:
有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
/opt:
这里主要存放那些可选的程序。
/proc:
可以在这个目录下获取系统信息。
这些信息是在内存中,由系统自己产生的。
/root:
Linux超级权限用户root的家目录。
/sbin:
这个目录是用来存放系统管理员的系统管理程序。
大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。
/selinux:
对SElinux的一些配置文件目录,SElinux可以让linux更加安全。
/srv服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中
/tmp:
临时文件目录,用来存放不同程序执行时产生的临时文件。
有时用户运行程序的时候,会产生临时文件。
/tmp就用来存放临时文件的。
/var/tmp目录和这个目录相似。
/usr
这是linux系统中占用硬盘空间最大的目录。
用户的很多应用程序和文件都存放在这个目录下。
在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具
/usr/local:
这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。
它和/usr目录具有相类似的目录结构。
让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面、。
/usr/share:
系统共用的东西存放地,比如/usr/share/fonts是字体目录,/usr/share/doc和/usr/share/man帮助文件。
/var:
这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log这是用来存放系统日志的目录。
/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。
[4]
catcd
chmodchown
cpcut
名称:
cat
使用权限:
所有使用者
使用方式:
cat[-AbeEnstTuv][--help][--version]fileName
说明:
把档案串连接后传到基本输出(萤幕或加>fileName到另一个档案)
参数:
-n或--number由1开始对所有输出的行数编号
-b或--number-nonblank和-n相似,只不过对于空白行不编号
-s或--squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行
-v或--show-nonprinting
范例:
cat-ntextfile1>textfile2把textfile1的档案内容加上行号后输入textfile2这个档案里
cat-btextfile1textfile2>>textfile3把textfile1和textfile2的档案内容加上行号(空白行不加)之后将内容附加到textfile3
名称:
cd
使用权限:
所有使用者
使用方式:
cd[dirName]
说明:
变换工作目录至dirName。
其中dirName表示法可为绝对路径或相对路径。
若目录名称省略,则变换至使用者的homedirectory(也就是刚login时所在的目录).另外,"~"也表示为homedirectory的意思,"."则是表示目前所在的目录,".."则表示目前目录位置的上一层目录。
范例:
跳到/usr/bin/:
cd/usr/bin
跳到自己的homedirectory:
cd~
跳到目前目录的上上两层:
cd../..
指令名称:
chmod
使用权限:
所有使用者
使用方式:
chmod[-cfvR][--help][--version]modefile...
说明:
Linux/Unix的档案存取权限分为三级:
档案拥有者,群组,其他。
利用chmod可以藉以控制档案如何被他人所存取。
把计:
mode:
权限设定字串,格式如下:
[ugoa...][[+-=][rwxX]...][,...],其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限,-表示取消权限,=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c:
若该档案权限确实已经更改,才显示其更改动作
-f:
若该档案权限无法被更改也不要显示错误讯息
-v:
显示权限变更的详细资料
-R:
对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help:
显示辅助说明
--version:
显示版本
范例:
将档案file1.txt设为所有人皆可读取:
chmodugo+rfile1.txt
将档案file1.txt设为所有人皆可读取:
chmoda+rfile1.txt
将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmodug+w,o-wfile1.txtfile2.txt
将ex1.py设定为只有该档案拥有者可以执行:
chmodu+xex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取:
chmod-Ra+r*
此外chmod也可以用数字来表示权限如chmod777file
语法为:
chmodabcfile
其中a,b,c各为一个数字,分别表示User,Group,及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmoda=rwxfile
和
chmod777file
效果相同
chmodug=rwx,o=xfile
和
chmod771file
效果相同
若用chmod4755filename可使此程式具有root的权限
指令名称:
chown
使用权限:
root
使用方式:
chmod[-cfhvR][--help][--version]user[:
group]file...
说明:
Linux/Unix是多人多工作业系统,所有的档案皆有拥有者。
利用chown可以将档案的拥有者加以改变。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。
只有系统管理者(root)才有这样的权限。
把计:
user:
新的档案拥有者的使用者IDgroup:
新的档案拥有者的使用者群体(group)-c:
若该档案拥有者确实已经更改,才显示其更改动作-f:
若该档案拥有者无法被更改也不要显示错误讯息-h:
只对于连结(link)进行变更,而非该link真正指向的档案-v:
显示拥有者变更的详细资料-R:
对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help:
显示辅助说明--version:
显示版本
范例:
将档案file1.txt的拥有者设为users群体的使用者jessie:
chownjessie:
usersfile1.txt
将目前目录下的所有档案与子目录的拥有者皆设为users群体的使用者lamport:
chmod-Rlamport:
users*
名称:
cp
使用权限:
所有使用者
使用方式:
cp[options]sourcedest
cp[options]source...directory
说明:
将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
把计:
-a尽可能将档案状态,权限等资料都照原状予以复制。
-r若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案aaa复制(已存在),并命名为bbb:
cpaaabbb
将所有的C语言程式拷贝至Finished子目录中:
cp*.cFinished
名称:
cut
使用权限:
所有使用者
用法:
cut-cnum1-num2filename
说明:
显示每行从开头算起num1到num2的文字。
范例:
shell>>catexample
test2
thisistest1
shell>>cut-c0-6example##print开头算起前6个字元
test2
thisi
用法:
find
使用说明:
将档案系统内符合expression的档案列出来。
你可以指要档案的名称,类别,时间,大小,权限等不同资讯的组合,只有完全相符的才会被列出来。
find根据下列规则判断path和expression,在命令列上第一个-(),!
之前的部份为path,之后的是expression。
如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression
expression中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount,-xdev:
只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
-aminn:
在过去n分钟内被读取过
-anewerfile:
比档案file更晚被读取过的档案
-atimen:
在过去n天过读取过的档案
-cminn:
在过去n分钟内被修改过
-cnewerfile:
比档案file更新的档案
-ctimen:
在过去n天过修改过的档案
-empty:
空的档案-gidnor-groupname:
gid是n或是group名称是name
-ipathp,-pathp:
路径名称符合p的档案,ipath会忽略大小写
-namename,-inamename:
档案名称符合name的档案。
iname会忽略大小写
-sizen:
档案大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilobytes,w是二个位元组。
-typec:
档案类型是c的档案。
d:
目录
c:
字型装置档案
b:
区块装置档案
p:
具名贮列
f:
一般档案
l:
符号连结
s:
socket
-pidn:
processid是n的档案
你可以使用()将运算式分隔,并使用下列运算。
exp1-andexp2
!
expr
-notexpr
exp1-orexp2
exp1,exp2
范例:
将目前目录及其子目录下所有延伸档名是c的档案列出来。
#find.-name"*.c"
将目前目录其其下子目录中所有一般档案列出
#find.-ftypef
将目前目录及其子目录下所有最近20分钟内更新过的档案列出
#find.-ctime-20
名称:
less
使用权限:
所有使用者
使用方式:
less[Option]filename
说明:
less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动
以浏览已经看过的部份,同时因为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如vi)来的快速。
范例:
指令名称:
ln
使用权限:
所有使用者
使用方式:
ln[options]sourcedist,其中option的格式为:
[-bdfinsvF][-Sbackup-suffix][-V{numbered,existing,simple}]
[--help][--version][--]
说明:
Linux/Unix档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:
硬连结(hardlink)与软连结(symboliclink),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。
硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
lnsourcedist是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
-f:
链结时先将与dist同档名的档案删除-d:
允许系统管理者硬链结自己的目录-i:
在删除与dist同档名的档案时先进行询问-n:
在进行软连结时,将dist视为一般的档案-s:
进行软链结(symboliclink)-v:
在连结之前显示其档名-b:
将在链结时会被覆写或删除的档案进行备份-SSUFFIX:
将备份的档案都加上SUFFIX的字尾-VMETHOD:
指定备份的方式--help:
显示辅助说明--version:
显示版本
范例:
将档案yy产生一个symboliclink:
zz
ln-syyzz
将档案yy产生一个hardlink:
zz
lnyyxx
名称:
locate
使用权限:
所有使用者
使用方式:
locate[-q][-d][--database=]
locate[-r][--regexp=]
locate[-qv][-o][--output=]
locate[-e][-f]<[-l][-c]
<[-U][-u]>
locate[-Vh][--version][--help]
说明:
locate让使用者可以很快速的搜寻档案系统内是否有指定的档案。
其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。
在一般的distribution之中,资料库的建立都被放在contab中自动执行。
一般使用者在使用时只要用
#locateyour_file_name
的型式就可以了。
参数:
-u
-U
建立资料库,-u会由根目录开始,-U则可以指定开始的位置。
-e
将排除在寻找的范围之外。
-l
如果是1.则启动安全模式。
在安全模式下,使用者不会看到权限无法看到的档案。
这会始速度减慢,因为locate必须至实际的档案系统中取得档案的权限资料。
-f
将特定的档案系统排除在外,例如我们没有到理要把proc档案系统中的档案放在资料库中。
-q
安静模式,不会显示任何错误讯息。
-n
至多显示个输出。
-r
使用正规运算式做寻找的条件。
-o
指定资料库存的名称。
-d
指定资料库的路径
-h
显示辅助讯息
-v
显示更多的讯息
-V
显示程式的版本讯息范例:
locatechdrv:
寻找所有叫chdrv的档案
locate-n100a.out:
寻找所有叫a.out的档案,但最多只显示100个
locate-u:
建立资料库
名称:
ls
使用权限:
所有使用者
使用方式:
ls[-alrtAFR][name...]
说明:
显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
-a显示所有档案及目录(ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l除档案名称外,亦将档案型态,权限,拥有者,档案大小等资讯详细列出
-r将档案以相反次序显示(原定依英文字母次序)
-t将档案依建立时间之先后次序列出
-A同-a,但不列出"."(目前目录)及".."(父目录)
-F在列出的档案名称后加一符号;例如可执行档则加"*",目录则加