LINUX经常使用的命令详解
源地址:http://blog.itpub.net/29065182/viewspace-1189162/
1.man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就能查看ls相关的用法
注:按q键或ctrl+c退出,在linux下能使用ctrl+c终止当前程式运行
1. 文件管理命令
●名称:ls
功能:列出当前目录下的文件和目录
ls(list)是个最常用的命令,用于显示当前目录下的文件和子目录。
第一、显示当前目录的内容
[root@yanghsia root]#Is (# 显示当前目录下的内容)
install.log install.log.syslog
Linux约定以以“.”开头的文件为隐含文件,要显示这样的文件能使用ls命令的“-a”参数。
[root@yanghsia root]#Is-a (# 显示所有内容,包括隐含文件)
. .bash_logout .bashrc .gconfd intall.log .tcshrc
.. .bash_profile .cshrc .gtkrc install.log.syslog .Xresources
Linux的每一个目录中都包含“.”和“..”两个特别目录,分别代表当前目录和上级目录。“ /”表示系统的根;而“~”则为用户的主目录(home)。用户主目录是用户登录后所处的目录,例如用户root的主目录为
/root,而普通用户yanghsia的主目录则为/home/yanghsia。
第二、显示文件的周详信息(#ls –l)
[root@yanghsia root]#ls-l (# 以长格式列出当前目录下所有内容)
total 28
-rw-r--r-- 1 root root 24477 4月 2 20:35 install.log
-rw-r--r-- 1 root root 4096 4月 2 20:20 install.log.syslog
输出信息中各个部分的含义如表1所示。
表1 长格式显示的文件属性
第一项 第二项 第三项 第四项 第五项 第六项 第六项
操作权限 链接数目 所有者 用户组 大小 创建时间 名称
用ls命令显示的文件操作权限有10个小格,最前面的那个小格是个特别标记,用来区分目录和链接,其中d表示目录(如drwx--x--x),l代表链接(如lrwx--x--x),如果是“-”,则表明他只是个普通文件。其余的格于以三个为一组,其中第一组代表文件所有者的权限,第二组代表组用户的权限,第三组代表其他用户的权限,每个组中的三个小格依次分别代表读权限(r)、写权限(W)和可执行权限(x),如果是“-”,则代表不具有相应的权限。例如,-rwxrw-r--(用数字能表示为764),表明该文件的所有者拥有对该文件的全部权限,组用户拥有读和写权限,而其他用户则只有读权限。
由于Linux是个多用户、多任务操作系统,同一文件可能同时被非常多人使用,因此。一定要为文件设置好相应的权限,这样才能保护好重要数据。
名称:cd
功能:转换目录
cd(change directory)命令能改动用户当前所在的目录。
[root@yanghsia yanghsia]#cd /home/ (# 转换到/home/目录)
[root@yanghsia home]#cd yanghsia/ (# 转换到当前目录下yanghsia子目录中)
[root@yanghsia yanghsia]#cd .. (# 转换到上一级目录)
[root@yanghsia yanghsia]#cd~ (# 转换到用户主目录:home)
名称:pwd
功能:显示当前工作目录
由于Linux的树状目录结构非常庞大,用户经常会忘记当前所处的目录。命令提示符一般又只显示最后一级的目录名称,这时pwd能帮上你的大忙。
[root@yanghsia root]#pwd (# 显示当前所在的工作目录)
/root
名称:mkdir
功能:创建目录
mkdir(make directory)命令能用来创建目录。
[root@yanghsia root]#mkdir student (# 创建student子目录)
名称:rmdir
功能:删除目录
rmdir(remove directoy)命令能用来删除目录,但需求该目录中不包含所有文件或子目录。
[root@yanghsia root]#rmdir student (# 删除student子目录)
●名称:cp
功能:复制文件
cp(copy)命令用于将文件从一个地方复制到另一个地方,在进行文件复制时,需要指定要复制的源位置和目标位置。
第一、复制文件
[root@yanghsia root]#cp source.txt dest.txt (# 将source.txt复制成dest.txt)
[root@yanghsia root]#cp source.txt /tmp/ (# 将source.txt复制到/tmp/目录中)
第二、覆盖文件前询问
如果在要复制的目标位置上已存在了相同名称的文件,若用强行复制将会覆盖该文件,这时能用“-i”参数来询问用户是否确实需要覆盖该文件。
[root@yanghsia root]#cp –i source.txt dest.txt (# 将source.txt复制成dest.txt)
cp:overwrite dest.txt ? (# dest.txt已存在,询问用户是否覆盖该文件,按Y键覆盖,技N键不覆盖)。
第三、强制复制
如果在要复制的目标位置上已存在了相同名称的文件,用“-f”参数能强制覆盖该文件。
[root@yanghsia root]#cp -f source.txt dest.txt (# 强制复制文件source.txt成dest.txt)
第四、递归复制
cp命令不仅能用来复制文件,也能用来复制目录,由于目录中可能包含子目录,因而需要用到“-R”参数来进行递归复制。
[root@yanghsia root]#cp -R /home/yanghsia/ /imp/(# 将目录/home/yanghsia/复制到/imp/目录下)。
名称:rm
功能:删除文件
rm(remove)命令能用来删除文件。
第一、删除文件
[root@yanghsia root]#rm student.txt (# 删除文件student.txt)
[root@yanghsia root]#rm * (# 删除当前目录下的所有文件)
第二、强制删除文件
在删除文件时,有时Linux会询问你是否确实需要删除这些文件,其目的是避免误操作。如果确信要删除这些文件,能用“-f”参数来强制删除这些文件,此时Linux将不会再作提示。
[root@yanghsia root]#rm -f *.bak (# 强制删除当前目录下所有后缀为.bak的
文件)。
第三、删除文件前询问
如果不是非常确定,删除文件时最佳带上“-i”参数,Linux会询问你是否确实执行删除操作,这样做的好处是能避免误操作。Linux命令行方式下可没有像视窗系统那样的“回收站”,删除操作是不可恢复的,文件一旦被删除,就可能永远无法找回他了,所以一定要认真对待。删除文件时习惯性的加上“-i”参数,说不定在某个时候就会帮上你的大忙。
[root@yanghsia root]#rm *.txt (# 删除所有后缀为.txt的文件)
rm:remove regular empty file ’student.txt’? (# 询问是否删除文件,按Y键删除,按N键
不删除)。
第四、递归删除
除删除文件外,rm命令还能用来删除目录,他不像rmdir那样需求被删除的目录是空的。由于目录下可能会包含子目录,因此需要用“-r”参数进行递归删除。
[root@yanghsia root]#rm-r /tmp/yanghsia/ (# 删除/tmp/yanghsia/目录)
名称:mv
功能:移动文件或目录
mv(move)命令能将文件或目录或移动到另一个位置,或更改文件或目录的名称。
[root@yanghsia root]#mv student.txt /imp/ (# 将student.txt移到/imp/目录)
[root@yanghsia root]#mv student.txt teacher.txt (# 将student.txt更名为teacher.txt)
2. 文件查找命令
名称:whereis
功能:定位文件所在的目录
使用whereis命令能定位常用命令的位置:
[root@yanghsia root]#whereis ls (# 定位ls命令的位置)
? ls:/bin/ls (# ls位于/usr/bln目录下)
whereis命令不是通过查找磁盘上的所有文件来实现定位的,你能随便指定一个可执行文件,估计whereis会未找到,这是因为whereis是根据环境变量PATH来查找文件的,而PATH通常设置成存放命令的那些路径,如 /bin、/usr/bin等,因此whereis的用途仅限于定位shell命令所在的位置。
●名称:find
功能:查找文件
find命令能用来从指定的目录开始查找文件,他的速度虽比不上whereis命令,但没有所有限制,而且功能要比whereis命令强。
? [root@yanghsia root]#find -name student.txt
? /tmp/student.txt (# 查找结果)
●名称:locate
功能:查找文件或目录
除find命令外,locate也是在系统中查找文件的常用方法。
[root@yanghsia root]#locate student.txt (# 查找student.txt文件)
用locate命令查找的文件和find相同没有所有限制,但执行速度却比find要快不少,其主要原因在于,locate不是从磁盘中实时查找文件,而是到由updatedb命令产生的信息库中查找相应的文件和目录,这样一来速度当然了。
[root@yanghsia root]#updatedb
如果locate未找到某个文件,而你又确信该文件肯定存在,那一定是updatedb生成的信息库已过时了。此时你要做的就是以root身份登录,然后执行updatedb命令,重新建立整个系统所有文件和目录的资料库,虽然这个过程可能会浪费一点时间,但以后再查找文件时就方便多了。
3. 磁盘管理命令
名称:df
功能:显示文件系统的当前占用情况
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
在df命令的输出结果中,Filesystem列显示各个文件系统对应的硬盘分区名称,1K-blocks列为每个分区占用的磁盘空间大小(单位是1KB),Used列是已使用的磁盘空间的大小,Available列是目前剩余的可用磁盘空间的大小,Use%列是各个分区磁盘空间的使用率,最后一列Mounted on则代表分区在整个Linux文件系统中的加载位置。
[root@yanghsia root]#df (# 查看磁盘使用情况)
名称:du
功能:显示文件或目录占用的磁盘空间大小
du(disk usage)命令用来统计文件或目录占用的磁盘空间大小。
? [root@yanghsia root]#du -sm /bin/ (# 查询/bin/目录占用的磁盘空间大小)
7 /bin
du命令的输出结果显示/bin/目录共占据7MB磁盘空间,如果不加“-s”参数则能显示此目录下每个文件的大小。
●名称:mount
功能:加载存储设备
如果你是个资深的视窗系统用户,肯定已习惯将光盘或软盘插入驱动器中后,就能通过相应的磁盘(如 A:)来访问这些存储设备上的数据了。但遗憾的是,在Linux中使用光盘和软盘就没有这么简单了。Linux采用的方式是,必须先将这些设备映射到系统中的某个目录之后,才能存取上面的数据。
将软盘和光盘映射到文件系统指定目录的过程称为加载(mount),他是Linux中非常重要的一个概念。其实,加载就是将某个存储介质(如软盘或光盘)和文件系统中的某个目录(如/mnt/floppy/或/mnt/cdrom/)建立起联系,此后凡是对该目录的操作,实际上就是读写此存储介质上相应的数据。
如果想在Linux中使用软盘,首先将软盘插入软盘驱动器中,然后执行mount命令,将软盘加载到文件系统中:
[root@yanghsia root]#mount /dev/fd0 /mnt/floppy/ (# 将软盘加载至文件系统的/mnt/floppy/目录)
同理,光盘的使用方法也是先加载后使用:
[root@yanghsia root]#mount /dev/cdrom /mnt/cdrom/ (# 将光盘加载到文件系统的/mnt/cdrom/目录)
名称:umount
功能:卸载存储设备
对初学者来说,在Linux命令行方式下使用软盘和光盘的确要比视窗系统麻烦许多,不仅需要在使用前先加载他们,使用完毕后还必须先卸载他们,然后才能将软盘或光盘从驱动器中取出。特别是对光盘来说,如果不先将其卸载,那无论怎么按光驱上的退出按钮,都无法于打开光驱的门,更别说取出光盘了,此时不要以为是自己的光驱出问题。
当软盘加载后不再需要使用时,必须先执行umount命令,然后才能取出软盘。
[root@yanghsia root]#umount /mnt/floppy/ (# 将软盘卸载,不再和目录/mnt/floppy/相关联)。
光盘的卸载和软盘类似。
[root@yanghsia root]#umount /mnt/cdrom/ (# 将光盘卸载,不再和目录/mnt/cdrom/相关联)
若当前正处于光盘加载的目录(即/mnt/cdroml/),或有其他用户正在使用该光盘,则无法成功地完成卸载。例如,在卸载存储设备时,Linux提示“device is busy”的错误信息,则需用cd命令将工作目录转换到其他目录,并需求其他用户退出此目录,然后才能卸载光盘。
如果是在Red Hat Linux 9的桌面环境使用光驱,那就不会有这些麻烦了。只要把光盘放进光驱,系统将自动在桌面上出现一个光盘图标,只要双击他打开,就能像在视窗系统 98/2000/XP下相同来查看光盘内容了。
4. 文件处理命令
名称:cat
功能:显示文件内容
cat(concatenate)命令能用来显示文件的内容。
[root@yanghsia root]#cat ~/.bashrc (# 显示用户主目录下隐藏文件bashrc的内容)
Cat命令还能用来将已有的多个文件合并成一个文件。
[root@yanghsia root]#cat 1.txt 2.txt > 0.txt (# 连接多个文本文件)
Linux系统中一个非常有趣的概念就是I/O重定向,能用输出重定向符“>”将输出内容写入到一个指定的文件中。通常命令的执行结果都显示在屏幕上,但如果你想将结果记录到一个文件中,就能利用该输出重定向的功能了。
●名称:more
功能:分页显示文件内容
当文件内容过长以至于整个屏幕都显示不下时,用cat命令只能看到最后几行,这时more命令可就大有处了,他能一页一页地查看内容冗长的文件内容。
[root@yanghsia root]#more /etc/passwd (# 分页显示/etc/passwd文件的内容)
当文件内容超过一屏以至于显示不下时,more命令将暂停显示文件中的其他内容,同时在屏幕的底部左侧显示“--more--”,提示更有未显示完的内容,此时能按空格键来显示下一屏内容,也能按Q键结束显示。
●名称:less
功能:分页显示文件内容
less命令的作用和more类似,都是用来浏览内容较多的文件,唯一的不同在于less命令除了能按空格键显示文件内容外,还能利用上、下键来上下翻动显示内容。而more只能向下显示文件内容,不能再回头去查看已出现过的内容。
当文件内容超过一屏时,less将暂停显示文件中的其他内容,同时在屏幕底部显示提示符“:”,此时能用上、下键来浏览文件内容,也能用空格键继续显示文件中的其他内容,或按Q键退出。
●名称:grep
功能:查找字符串 (从文件中匹配合适的字符串)
grep命令能在一个或多个文件中查找某个指定的字符串,如果找到则显示文件中包含该字符串的每一行。
? [root@yanghsia root]#grep xxxy /etc/passwd (# 从文件/etc/passwd中查找字符串xxxy)
xxxy:x:500:500:Xxxy Swau:/home/xxxy:/bin/bash (# 查找结果)
grep还能和其他命令搭配起来使用。例如,用ps命令能列出系统中当前正在运行的所有进程信息,但如果只对名为mount的进程感兴趣,就能用grep命令将其“过滤”出来。
[root@yanghsia root]#ps -aux | grep mount
“管道”是Linux中另一个非常特别的概念,用符号“|”表示,其功能是将某个程式的输出作为另一个程式的输入。在上面的例子中,ps命令执行完毕后所有的输出都将被作为输入传递给grep命令。
匹配字符串在行首的b开头的文件或文件名并ls列出:
[root@yanghsia root]#ls | grep ^b 或
[root@yanghsia root]#ls | grep ‘^b’ 或
[root@yanghsia root]#ls | grep ‘\
匹配字符串在行尾的t开头的文件或文件名并ls列出:
[root@yanghsia root]#ls | grep t$ 或
[root@yanghsia root]#ls | grep ‘t$’ 或
[root@yanghsia root]#ls | grep ‘t\>’
●名称:vi
功能:编辑文本
不管你使用的是哪种操作系统,总要使用文本编辑器编辑文件,在Win下能使用记事本或UltraEdit,那么在Linux下呢?一般有两种选择:emacs和vi,其中vi是所有和UNIX类似的系统都会提供的一个标准文本编辑器。对于初学者来说,emacs和vi掌控起来都不太容易,因为两者的功能都非常强大,而且操作方式和自己以前已习惯的文本编辑器截然不同。但相对而言,vi还是更容易上手一些。
在命令提示符后输入vi及要编辑的文件名后,就能进入vi全屏编辑界面。
[root@yanghsia root]#vi student.txt (# 编辑文件student.txt)
试着输入字符串“why”,没有反应是吧?这是你还没有了解他的“脾气”。
和你以前使用的普通文本编辑器不同,vi有三种操作状态,分别是命令模式(command mode)、输入模式(input mode)和末行模式(last line mode),理解vi的这三种模式是非常重要的。输入模式的主要功能是文本录入,这和常用的文本编辑器是一致的;命令模式的主要功能是移动鼠标和编辑文本;末行模式的主要功能是查找、替换、保存及退出。
vi启动后默认进入命令模式。
在命令模式下输入i、a、o都能进入输入模式。由命令模式转换到输入模式的三种方法是有细微差别的:按i键将从当前光标所在位置开始输入,按a键将从当前光标所在位置的下一个字符开始输入,按o键将添加一个新行,同时光标移到该行的第一个字符处开始输入。回到命令模式则按Esc键。
在命令模式下输入“:”能进入末行模式。命令错误或按Esc键将回到命令模式。键入pi、q、wq将退出vi回到提示符下。
在命令模式下输入dd可以删除当前行的内容;输入10d删除光标所在行的10行内容。
例如:
$vi testfile(创建testfile文件并进入编辑窗口)
:w filename(输入“w filename”,将文章存入指定的文件名filename)
:wq(输入“wq”,因为进入之时已经指定文件名testfile,所以会写入testfile并离开vi)
:q!(输入“q!”,强制离开并放弃编辑的文件)
如果没有指定文件,则可以用:wq filename保存并直接退出编辑界面。
●5. 进程管理命令
名称:ps
功能:查看进程
Linux一个非常突出的好处就是能同时高效地执行多个任务,为了更好地协调这些任务,Linux提出了进程的概念。什么是进程呢?简单地说就是系统中正在执行的各种工作,例如,在用文本编辑器修改一个文件时,在Linux看来就是有一个进程正在执行。退出编辑器后,相应的进程也就结柬了。
如果你对系统中正在运行的进程感兴趣,能使用ps(process status)命令查看。
[root@yanghsia root]#ps aux (# 列出系统中当前所有的进程)
......
xxxy 1234 1.0 2.2 4560 1392 pts/0 S 14:18 0:00 -bash
root 1265 0.1 1.6 4092 1008 pts/0 S 14:18 0:00 su-
root 1266 1.6 2.2 4568 1412 pts/0 S 14:19 0:00 -bash
root 1308 0.0 1.1 2700 732 pts/0 R 14:20 0:00 ps -aux
看到系统中当前所有正在运行的进程了吧。实际上ps就类似于视窗系统下的任务管理器。了解系统中正在执行的进程是管理员的一项必备基本功,如果你对系统的当前状态一点也不清晰,估计在同黑客周旋时要吃大亏的。
$ps -ef | more (分页显示所有进程)
-e显示所有进程 –f全格式
名称:kill
功能:结束进程
就像在视窗系统中能用任务管理器结束某个任务相同,在Linux中也同样能在需要时结束当前正在运行的一些进程,方法是使用kill命令。
[root@yanghsia root]#kill -9 1308 (# 结束进程标识符为1308的进程)
在使用kill命令时,必须告诉系统究竟想要结束哪个进程。所有的进程在Linux中都有一个编号,称为进程标识符(PID),在用ps命令查看进程时,输出信息中的第二个字段就是PID。
如果某个进程使用了kill命令仍不能结束他,试试用“-9”参数。
kill 使用说明:
1. kill [ -s signal | -p ] [ -a ] pid ...
2. kill -l [ signal ]
-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑, 砍掉, 结束; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号
-l (signal) : 列出所有可用的信号名称
示例:
将 pid 为 323 的行程砍掉 (kill) :
1. kill -9 323
将 pid 为 456 的行程重跑 (restart) :
1. kill -HUP 456
名称:killall
功能:结束所有进程
如果不知道PID但知道进程名称,能使用killall命令杀死指定名称的进程。例如,在用mount命令加载软盘时产生了硬件错误,mount命令不断地去读写磁盘,这时如果想结束该进程而又不知道其进程标识符,就能用下面的方法。
[root@yanghsia root]#killall -9 mount (# 结束名称为mount的进程)
如果系统中名称相同的进程有多个时(比如同时有多个用户在执行mount命令进行加载),该怎样区分他们呢?
以root身份执行killall,他会结束系统中每个用户正在运行的同名进程,而如果是普通用户,就只会影响属于自己的进程,不会影响系统中的其他用户。
名称:top
功能:监视进程状态
对一个称职的系统管理员来说,所有时候都能监视系统性能和进程状态是非常重要的,在视窗系统中能使用任务管理器,而在Linux中则能使用top命令。
[root@yanghsia root]#top (# 监视系统状态)
●6. 软件包管理命令
名称:rpm
功能:RPM软件包的管理
RPM的全名是Red Hat Package Manager(Red Hat软件包管理工具),由Red Hat公司研发的一个软件包管理系统。虽然RPM这一文件格式已打上了Red Hat的烙印,但其设计理念却是开放的,并且目前已成为公认的行业标准了。
使用RPM能非常轻松地实现软件的安装、查询和卸载,你甚至会发现他比在视窗系统中安装软件还要简单。
Red Hat公司一直鼓励Linux软件研发商以RPM方式来发布他们的软件,标准的RPM软件包都以 xxx-v-m.p.rpm命名,如tree-1.2-20.i386.rpm,他包含了软件包的名称(tree),主版本号(1.2),次版本号(20)及适用的硬件平台(i386),但并非所有的RPM软件包都按照这样的格式来命名。
目前RPM除了在Red Hat Linux中得到了广泛应用外,其实还能在许多其他的Linux和Unix系统上运行。
第一、软件安装
在用RPM安装软件包时,软件包内所有的文件都将自动被复制到Linux系统中的正确位置上,无需你亲自动手。
[root@yanghsia RPMS]#rpm -ivh tree-1.2-20.i386.rpm (# 安装软件包)
第二、卸载软件
要卸载已安装的RPM软件包也非常简单,使用“-e”参数就能了。
[root@yanghsia root]#rpm -e tree-1.2-20.i386.rpm (# 卸载软件包)
在卸载软件包时,只要给出软件包的名称(如“tree”或“tree-1.2”)就能了,而不必象当初安装软件包时要用完整的文件名。
第三、升级软件
Linux下软件升级的速度比视窗系统下的软件快多了,RPM将软件的升级变得空非常简单。
[root@yanghsia RPMS]#rpm -Uvh tree-1.2-20.i386.rpm (# 升级软件包)
在升级软件包时,RPM将首先删除系统中已有的旧版本,然后再安装新版本。其实不管以前是否原来安装过该软件,都能用“rpm-Uvh”来进行安装。
第四、查询软件
如果对某个软件包的相关信息感兴趣,能使用RPM的查询功能。例如,在使用gcc编译源程式时,可能关心他当前的版本号,通过执行命令:
[root@yanghsia root]#rpm -q gcc (# 查询gcc软件包)
gcc-3.2-7 (# 查询结果)
屏幕上将显示查找到的软件包的名称和版本号。
如果还不满足,想知道tree软件包中究竟包含哪些文件,RPM依然能够非常轻松地实现。
[root@yanghsia root]#rpm -ql tree (# 查询tree软件包中的文件)
能够知道系统中安装的所有软件包吗?当然没问题,对RPM来讲简直就是举手之劳。
[root@yanghsia root]#rpm -qa (# 查询系统中安装的所有软件包)
●名称:tar
功能:打包文件_
tar命令能将指定的文件和目录打包成一个文件,这是个在Unix系统中非常早就被广泛使用的一个文件备份工具。在没有光盘和烧录机的年代,系统管理员通常都将数据备份到磁带机上,由于磁带只能顺序读写,备份多个目录和文件是相当麻烦的,这时tar命令可就帮上大忙了。
第一、打包和解包
tar命令最常用的功能是打包和解包。
[root@yanghsia root]#tar cvf backup.tar (# 将当前目录下所有文件打包为backup.tar)
需要时能用下面的命令将其解包:
[root@yanghsia root]#tar xvf backup.tar (# 将backup.tar文件解包)
第二、压缩和解压
tar命令能将一个目录下的所有文件打包成一个文件,但并不进行压缩,也就是说,打包后的文件所占用的磁盘空间等于该目录下所有文件所占磁盘空间的总和。如果磁盘空间不足或为了便于传输时,能在打包文件时为tar命令指定相应的参数,告诉tar使用相应的压缩工具进行压缩。例如,执行命令:
[root@yanghsia root]#tar czvf backup.tar.gz /tmp/(# 将整个/tmp/打包并且压缩为backup.tar.gz)
要解包经过压缩的文件,能使用下面的命令:
[root@yanghsia root]#tar xzvf backup.tar.gz (# 解包经过压缩的backup.tar.gz文件)
tar本身并不具有压缩和解压缩的功能,通过为其加上参数“-z”,tar会使用gzip命令来对打包后的文件进行压缩和解压缩。习惯上将压缩后的打包文件命名为xxx.tar.gz或xxx.tgz。
●7. 压缩及解压缩命令
名称:gzip
功能:压缩文件
gzip是Linux中最常用的压缩工具,使用他能得到非常高的压缩率,这也就是为什么从FTP网站下载的文件大多都是采用gzip压缩的原因。虽然处理时间会比较长,但经gzip压缩后的文件大小将小非常多。下面的命令用来对文件进行压缩:
[root@yanghsia root]#gzip data.txt (# 压缩文件data.txt)
gzip只能用来对单个文件进行压缩,通常不能用来处理目录,如果要将整个目录压缩成一个文件,能将
gzip和tar结合起来使用:先用tar命令将其打包成一个文件,然后再用gzip对打包后的文件进行压缩。
名称:gunzip
功能:解压缩文件
用gzip压缩后的文件能用gunzip进行解压缩,但gunzip的功能并不仅限于此,还能用来解压缩扩展名为gz、tgz、z和Z的文件。
[root@yanghsia root]#gunzip data.txt.tgz (# 解压缩data.txt.tgz文件)
名称:bzip2
功能:压缩文件
bzip2也是Linux下的一个常用文件压缩命令,Linux内核源码在发布时就是采用bzip2进行压缩的。用bzip2能将一个文件压缩成.bz2格式。
[root@yanghsia root]#bzip2 data.txt (# 压缩文件data.txt)
名称:bunzip2
功能:解压缩文件
用bzip2压缩后的文件能用bunzip2进行解压。
[root@yanghsia root]#bunzip2 data.txt.bz2 (# 解压缩文件data.txt.bz2)
目前经常会在网上碰到名为*tar.bz2的文件,这些文件都是用tar打包并用bzip2进行压缩后的结果,在解压缩这类文件时能用下面的命令:
[root@yanghsia root]#bunzip2 -c backup.tar.bz2 | tar xvf
其他命令:
创建用户
useradd username 回车
passwd username 回车输入密码确认密码
删除用户
userdel username 回车
切换用户
su username 回车
列出文件夹下包含cron的文件
[root@yanghsia root]#ls *cron*
或者[root@yanghsia root]#find -name “*cron*”
修改用户密码
[root@yanghsia root]#passwd
将屏幕显示的内容记录于文本中
点接收ASCII,如下图所示。
选择路径即可。
Linux切换图形化界面到命令行模式:
正常情况下在物理机器上 Ctrl+alt +F5
在虚拟机里vm上 同时按下Ctrl+alt 之后 按下空格键 再按 F1 或者 F5
Linux从命令行切换到图形化界面
正常情况下在物理机器上 Ctrl+alt +F7
在虚拟机里vm上 同时按下Ctrl+alt 之后 按下空格键 再按 F7
linux开机命令行启动
以管理员权限编辑/etc/inittab
把
id:5:initdefault:
改为
id:3:initdefault:
就行了。
Linux开机进入命令行后切换至图形化界面
[root@yanghsia root]#startx
显示端口状态
#netstat –natp
-a或--all 显示所有连线中的Socket。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-t或--tcp 显示TCP传输协议的连线状况。
Linux 修改系统时间
#date显示当前时间 Fri Aug 3 14:15:16 CST 2007
我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。 #date -s 06/10/96 将系统时间设定成下午1点12分0秒的命令如下。#date -s 13:12:00
---- 注意,这里说的是系统时间,是linux由操作系统维护的。
---- 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
---- #clock -w ---- 这个命令强制把系统时间写入CMOS。
ntp时间同步 linux系统下默认安装了ntp服务,手动进行ntp同步如下 ntpd ...
配置linux操作系统ip方法
vi /etc/sysconfig/network-scripts/ifcfg-ethx
配置完以后重启动服务.,p地址就配置好了。其实前面3个的配置方法最终还是改变了/etc/sysconfig/network-scripts/ifcfg-ethx下的配置文件罢了。
配置完后,执行service network restart重启网络服务
远程登录linux系统命令
[root@yanghsia root]ssh 172.16.9.109
远程拷贝
[root@localhost ~]# scp test root@172.16.9.109:/root
root@172.16.9.109's password:
test 100% 21 0.0KB/s 00:00
查看主机名
[root@localhost ~]# hostname
localhost.localdomain
更改主机名
[root@localhost ~]# hostname hadoop2
localhost.localdomain
从windows下拷贝文件到linux下
[root@localhost ~]# rz
修改linux环境变量(以设置java环境变量为例)
[root@localhost ~] vi /etc/profile
添加如下内容
export JAVA_HOME=/usr/local/jdk1.6.0_02
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
[root@localhost ~]source /etc/profile
快速创建一个文件
[root@localhost ~]touch filename
远程拷贝172.16.9.109上的filename文件到本机
[root@localhost ~]scp root@172.16.9.109:/usr/local/filename /usr/local/
Ls按时间升排序
[root@localhost ~]ls -lnt 按修改日期降序排列
[root@localhost ~]ls –lrt 按修改日期升序排列
查看操作系统内核版本
[root@localhost ~]cat /proc/version
添加文件可执行权限
[root@localhost ~]chmod +x jdk-6u2-linux-i586.bin
执行可执行文件
[root@localhost ~]
./表明可执行文件在本地路径,执行可执行文件时,需指出其绝对路径
查看环境变量
[root@hadoop2 ~]# echo $JAVA_HOME
/usr/local/jdk1.6.0_02
启动防火墙
[root@hadoop2 ~]# service iptables start
防火墙配置文件
[root@hadoop2 ~]# vi /etc/sysconfig/iptables
查询服务运行状态