linux的目录结构:
目录名称 | 意义 |
bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。 | |
/boot | 这里存放的是启动Linux时使用的一些核心文件。 |
/dev | dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。 |
/etc | 这个目录用来存放系统管理所需要的配置文件和子目录。 |
/home | 用户的主目录,比如说有个用户叫wang,那他的主目录就是/home/wang也可以用~wang表示。 |
/lib | 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。 |
/lost+found | 这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点类似于DOS下的.chk文件。 |
/mnt | 这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。 |
/proc | 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。 |
/root | 系统管理员(也叫超级用户)的主目录。作为系统的拥有者,总要有些特权啊!比如单独拥有一个目录。 |
/sbin | s就是Super User的意思,也就是说这里存放的是系统管理员使用的管理程序。 |
/tmp | 这个目录不用说,一定是用来存放一些临时文件的地方了。 |
/usr | 这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。其中包含以下子目录; |
/usr/X11R6 | 存放X-Window的目录; |
/usr/bin | 存放着许多应用程序; |
/usr/sbin | 给超级用户使用的一些管理程序就放在这里; |
/usr/doc | 这是Linux文档的大本营; |
/usr/include | Linux下开发和编译应用程序需要的头文件,在这里查找; |
/usr/lib | 存放一些常用的动态链接共享库和静态档案库; |
/usr/local | 这是提供给一般用户的/usr目录,在这里安装软件最适合; |
/usr/man | man在Linux中是帮助的同义词,这里就是帮助文档的存放目录; |
/usr/src | Linux开放的源代码就存在这个目录,爱好者们别放过哦! |
/var | 这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。 |
命令格式:命令 -选项 参数
说明:命令区分大小写,且命令和参数之间用空格隔开;
当有多个参数时,参数可以写在一起;
选项是对命令的特别定义,以'-'开始,多个选项可用一个'-'连起来;如“ls -l -a”与“ls -la”相同;
linux文件类型:
- 一般文件(ordinary file):文本文件;二进制文件
- 目录文件(directory)
- 特殊文件(special file):块设备文件;字符设备文件
- 符号链接文件(symbolic links)
linux文件命名规则:
- 最大长度为255字节;
- 大小写敏感(file1和File1表示两个不同的文件);
- 无专用扩展名(unix文件名可出现多个小数点,并无特殊含义)。
- / 表示根目录
- . 表示当前目录
- .. 表示当前目录的父目录
- .字符串 表示隐含文件,如“.profile”文件
绝对路径:是从根开始一级一级的进入各个子目录,最后指定该命令或文件
相对路径:是从当前目录进入某目录,最后指定该命令或文件
* :匹配任何字符或任何数目的字符
? :匹配任何单字符
目录操作命令:
名称:ls(list)
功能:列出当前目录下的文件和目录
路径:/usr/bin/ls
ls (显示当前目录下的内容,不包含隐含文件)
ls -a (显示所有内容,包含隐含文件)
ls -l (以长格式列出当前目录下所有内容的详细信息) -rw-r--r-- 1 root root 24477 4月 2 20:35 install.log
依次是:操作权限 链接数目 所有者 用户组 大小 创建时间 名称
操作权限中-rw-r--r--,有十个小格,最前面一个是特殊标记,用来区分目录和链接,其中d表示目录,l表示链接,-表示普通文件。后面的每3个小格是一组,第一组代表文件所有者的权限,第二组代表组用户的权限,第三组代表其他用户的权限。
linux是一个多用户、多任务操作系统,同一文件可能同时被很多人使用,因此,一定要为文件设置好相应的权限,这样才能保护好重要的数据。
名称:cd (change directory)
功能:切换目录
路径:Shell内部指令
cd /home/ (切换到/home/目录)
cd dwj/ (切换到当前目录下dwj子目录中)
cd .. (切换到上一级目录)
cd ~ (切换到用户主目录:home)
名称:pwd (print work directory)
功能:显示当前工作目录
路径:/usr/bin/pwd
由于Linux的树状目录结构非常庞大,用户经常会忘记当前所处的目录。命令提示符一般又只显示最后一级的目录名称,这时pwd能帮上你的大忙。
名称:mkdir (make directory)
功能:创建目录
mkdir student (创建student子目录)
名称:rmdir (remove directory)
功能:删除目录,但要求该目录中不包含任何文件或子目录
rmdir student (删除student子目录)
文件操作命令:
名称:touch
功能:建立空文件
格式:touch 文件名
名称:cp(copy)
功能:复制文件,将文件从一个地方复制到另一个地方,在进行文件复制时,需要指定复制的源位置和目标位置。
路径:/usr/bin/cp
(1)复制文件
cp source.txt dest.txt (将source.txt复制成dest.txt)
cp source.txt tmp/ (将source.txt复制到tmp/目录中,tmp是当前路径下的目录)
(2)覆盖文件前询问
如果要复制的目标位置上已经存在了相同名称的文件,若用强行复制将会覆盖该文件,这时可以用“-i”参数来询问用户是否确实需要覆盖该文件。
cp -i source.txt dest.txt (将source.txt复制成dest.txt)
cp: overwrite dest.txt? (dest.txt已经存在,询问用户是否覆盖该文件,按Y键覆盖,按N键不覆盖)
(3)强制复制
如果在要复制的目标位置上已经存在了相同名称的文件,用“-f”参数可以强制覆盖该文件
cp -f source.txt dest.txt (强制复制文件source.txt成dest.txt)
(4)递归复制
cp命令也可用来复制目录,由于目录中可能包含子目录,因而需要用到“-r”参数来进行递归复制。
cp -r dwj/ imp/ (将目录dwj/ 复制到 imp/目录下)
cp -r dwj/* imp/ (将目录dwj的内容复制到imp/目录下)
名称:rm (remove)
功能:删除文件
路径:/usr/bin/rm
(1)删除文件
rm student.txt (删除文件student.txt)
rm * (删除当前目录下的所有文件)
(2)强制删除文件
若确信要删除文件,可以用“-f”参数来强制删除文件,此时Linux将不会再作提示。
rm -f *.bat (强制删除当前目录下所有后缀为.bat的文件)
(3)删除文件前询问
如果不是很确定,删除文件时最好带上“-i”参数,避免误操作,Linux中删除文件是不可恢复的,文件一旦被删除,就可能永远无法找回它了,所以一定要认真对待。删除文件时习惯性的加上“-i”参数,说不定在某个时候会帮上你的大忙。
rm -i *.txt (询问删除所有后缀为.txt的文件)
rm: remove regular empty file 'student.txt' (询问是否删除文件,按Y键删除,按N键不删除)
(4)递归删除
除删除文件外,rm命令还能删除目录,它不像rmdir那样要求被删除的目录是空的。由于目录下可能会包含子目录,因此需要用“-r”参数进行递归删除。
rm - r /tmp/dwj/ (删除/tmp/dwj/目录)
名称:mv(move)
功能:移动文件或目录
路径:/usr/bin/mv
mv命令可以将文件或目录移动到另一个位置,或者更改文件或目录的名称。
mv student.txt /imp/ (将student.txt移到/imp/目录)
mv student.txt teacher.txt (将student.txt更名为teacher.txt)
文件查找命令:
名称:whereis
功能:定位文件所在的目录
whereis ls (定位ls命令的位置)
ls: /bin/ls (ls位于/usr/bin目录下)
whereis命令不是通过查找磁盘上的所有文件来实现定位的,你可以随便指定一个可执行的文件,估计whereis会找不到,是因为whereis是根据环境变量PATH来查找文件的,而PATH通常设置成存放命令的那些路径,如/bin、/usr/bin等,因此whereis的用途仅限于定位shell命令所在的位置。
名称:find
功能:查找文件
路径:/usr/bin/find
find命令可以用来从指定的目录开始查找文件,它的速度比不上whereis命令,但没有任何限制,而且功能要比whereis命令强。
find -name student.txt
/tmp/student.txt (查找结果)
名称:locate
功能:查找文件或目录
locate student.txt (查找student.txt文件)
locate命令和find一样没有任何限制,但执行速度却比find要快不少,其主要原因在于,locate不是从磁盘中实时查找文件,而是到由updatedb命令产生的信息库中查找相应的文件和目录,这样一来速度当然快了。
updatedb
如果locate找不到某个文件,而你又确信该文件肯定存在,那一定是updatedb生成的信息库已经过时了。此时,你要以root的身份登录,然后执行updatedb命令,重新建立整个系统所有文件和目录的资料库,虽然这个过程可能会浪费一点时间,但以后再查找就方便了。
文件处理(显示)命令:
名称:cat (concatenate)
功能:显示和合并文件,如果文本文件很长,一个屏幕显示不完,cat是不会自动分页的,只能看到最后几行。
路径:/usr/bin/cat
cat ~/.bashrc (显示用户主目录下隐藏文件bashrc的内容)
cat 1.txt 2.txt > 0.txt (连接多个文本文件)
Linux中有个概念是I/O重定向,可以用输出重定向符“>”将输出内容写入到一个指定的文件中。通常命令的执行结果都会显示在屏幕上,但如果你想将结果记录到一个文件中,就可以利用该输出重定向的功能了。
名称:more
功能:分页显示文件内容
路径:/usr/bin/more
more /etc/passwd (分页显示/etc/passwd文件的内容)
当文件内容一屏显示不下时,more命令将暂时显示文件中的其他内容,同时在屏幕的底部左侧显示“--more--”,提示还有未显示完的内容,此时可以按空格键来显示下一屏内容,也可以按Q键结束显示。
名称:less
功能:分页显示文件内容
less命令的作用和more类似,唯一不同的是less命令除了可以按空格键显示文件内容外,还可以利用上、下键来上下翻动显示内容,而more只能向下显示文件内容,不能回头去看已经出现过的内容。
名称:head
功能:查看文件的前几行
语法:head -num [文件名] -num显示文件的前面num行
head -20 /etc/services
名称:tail
功能:查看文件的最后几行
语法:tail -num [文件名] -num显示文件的后面num行
tail -30 /etc/services
名称:grep
功能:查找字符串
grep命令可以在一个或多个文件中查找某个指定的字符串,如果找到则显示文件中包含该字符串的每一行。
grep xxxy /etc/passwd (从文件/etc/passwd中查找字符串xxxy)
磁盘管理命令:
名称:df (disk filesystem)
功能:显示文件系统的当前占用情况
df可以用来获得文件系统当前占用的磁盘空间大小,以及剩余的可用空间的大小。
filesystem | 1K-blocks | Used | available | Use% | Mounted on |
/dev/hda2 | 13203660 | 1869264 | 10663684 | 15% | / |
none | 30768 | 0 | 30768 | 0% | /dev/shm |
filesystem:显示各个文件系统对应的硬盘分区名称
1K-blocks:每个分区占用的磁盘空间大小,单位是1KB
Used:已经使用的磁盘空间的大小
available:目前剩余的可用磁盘空间的大小
Use%:各个分区磁盘空间的使用率
Mounted on:分区在整个Linux文件系统中的加载位置
名称:du (disk usage)
功能:显示文件或目录占用的磁盘空间大小
du -s /bin/ (查看/bin/目录占用的磁盘空间大小)
7 /bin/
du命令的输出结果显示/bin/目录共占据7MB磁盘空间,如果不加“-s”参数则可以显示此目录下每个文件的大小。
名称:mount
功能:加载存储设备。Linux中使用光盘必须先将这些设备映射到系统中的某个目录之后,才可以存取上面的数据。将软盘或光盘映射到文件系统指定目录的过程叫加载(mount)。加载的目的就是把某个存储介质(软盘或光盘)与文件系统中的某个目录建立联系,此后凡是对该目录的操作实际上就是读写此存储介质上相应的数据。
#mount /dev/cdrom/mnt/cdrom/ (将光盘加载到文件系统的/mnt/cdrom/目录)
名称:umount
功能:卸载存储设备
#umount /mnt/cdrom/ (将光盘卸载,不再与目录/mnt/cdrom/相关联)
进程管理命令:
名称:ps
功能:查看进程(类似于windows下的任务管理器)
名称:kill
功能:结束进程,必须告诉系统想要结束哪个进程。所有的进程在Linux中有一个编号,叫进程标识符(PID),在ps命令查看的输出信息中的第二个字段就是PID。
#kill 1309 (若使用了kill进程还不能结束,试试用“-9”参数)
名称:killall
功能:结束所有进程
#killall -9 mount (结束名称为mount的进程)
名称:top
功能:监视进程状态
#top (监视系统状态)
软件包管理命令:
名称:rpm
功能:RedHat Package Manager软件包的管理
名称:tar
功能:打包文件
压缩及解压命令
名称:gzip
功能:压缩文件
名称:gunzip
功能:解压缩文件
名称:bzip2
功能:压缩文件
bzip2 也是Linux 下的一个常用文件压缩命令,Linux 内核源码在发布时就是采用bzip2
进行压缩的。用bzip2 可以将一个文件压缩成.bz2 格式。
#bzip2 data.txt (# 压缩文件data.txt)
名称:bunzip2
功能:解压缩文件