2.4 Linux常用操作命令

六月 4, 2015 Linux por DeanGao

728915243186942831_副本

1. 前言
2.文件目录操作
ls——获取文件目录属性
pwd——获取当前工作目录路径
cd——切换工作目录
tree——显示目录结构
file——显示文件类别等信息
mv——移动文件目录或修改文件目录名称
cp——拷贝文件目录
scp、sz、rz——文件传输
touch、vim、重定向——创建文件
mkdir——创建目录
rm、rmdir——删除文件或目录
ln——创建快捷方式
小测试

3.打包压缩文件
gzip/gunzip——gz压缩解压相关
zip/unzip——zip打包压缩相关
bzip2/bunzip2——bz2压缩相关
xz/unxz——xz压缩相关
compress/uncompress/zcat——Z压缩解压相关
tar——tar包相关
4.文本内容处理
cat、tac——打印文件内容
more、less——分页查看文本内容
head、tail——从头或者从尾查看
wc——统计文本内容
nl——计算文件中的行号
grep——文本内容查找
cut——按需分割文件
sort——对文本内容进行排序
uniq——对文本内容进行去重计数
comm——比较两个文件中的内容
vim——文本内容编辑
sed——文本的过滤和转换(流处理)

5.系统信息操作
fdisk、df、du——查看系统磁盘空间信息
lscpu——查看系统cpu配置情况
free——查看系统内存使用情况
top——查看系统实时运行状态
ps——查看当前运行程序信息
kill——杀掉某个进程
date、cal——查看当前系统时间与日历
bc——系统自带简易计算器
ifconfig、ping、route——查看系统网络信息
wget——从网上下载数据
bg、fg、jobs——让程序前后台切换运行
which——查看命令的位置
who、w——查看谁在登陆,在干什么
history——查看历史命令
man——查看命令函数等帮助文档

6. 重要备注
alias——命令重命名
|——管道操作符
.bashrc——环境变量设置
screen、nohup——程序不中断运行

7. 小结

总结


1. 前言

类别:

  • 1.文件目录操作
  • 2.打包压缩文件
  • 3.文本内容处理
  • 4.系统信息操作
  • 5. 其它

overview

 

注意:

  • 1. Linux中的大部分命令都是一些单词的缩写,只要能够充分理解操作意图就能巧妙的掌握这些命令。
  • 2. Linux中的命令是大小写敏感的(如cd和CD不相同)。
  • 3. 终端(Xshell或者窗口模式中的Terminal应用)中 按下回车即为执行该命令(如 ls 回车, 即为执行ls命令)。
  • 4. 命令的参数前一般有-或者–,而且参数之间通常是用空格隔开,也有多个参数连在一起的。
  • 4. 熟能生巧、多加练习。
  • 5. Linux命令用法多样,掌握常用即可

 

学习资料:

http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html
http://www.oschina.net/translate/useful-linux-commands-for-newbies
http://www.php100.com/html/webkaifa/Linux/2009/1106/3485.html
http://blog.csdn.net/xiaoguaihai/article/details/8705992
niaoge

 

Linux 重要的几个热

  • [Tab] 按键具有命令补全的功能——要有意识的经常使用
  • [Ctrl]-c 按键—让当前的程序『停掉』
  • [Ctrl]-d 按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
  • [Ctrl]-r 按键—可以打开反向搜索历史命令功能,可以用户根据输入进行匹配,   回车就表示执行搜索到的命令, 左右键表示复制当前搜到的命令到命令行但不执行

 

注:进入终端后会显示如下默认内容:


2.文件目录操作

ls0

 

基本的文件目录操作是Linux的基础知识,如果这些都不能掌握更何谈后面的分析

ls ——获取文件属性

ls(list)意思就是列举出指定文件或目录的基本属性(List Directory Contents),下面我们直接执行ls命令来看下输出结果。用的最多的Linux命令之一。

ls1

 

上面的图中列举了文件和目录的基本属性,包括权限(r-read, w-write,x-executive),d-Directory。

下面详细介绍下文件及目录的权限属性:

-rw-r–r–

  • 第一个字符为文件类型(-为普通文件;d为目录(可以理解为特殊的文件);l表示这是一个符号链接文件,实际上它指向另一个文件;b、c分别表示区块设备和其他的外围设备,是特殊类型的文件;s、p:这些文件关系到系统的数据结构和管道,通常很少见到。)
  • 第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

  • 权限除了可以用字母表示外,还可以用对应的数字表示:

文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。
r: 对应数值4
w: 对应数值2
x:对应数值1
-:对应数值0

其实很简单,我们将rwx看成二进制数(不懂的话百度),如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100,再将其每三位转换成为一个十进制数,就是754。

ls命令格式及参数:

其它更详细的参数:

ls2 ls3

 

应用举例:

 

pwd——获取当前工作目录

直接运行pwd即可

cd——切换工作目录

cd(change directory) 就是切换当前工作目录的意思。

使用示例:

tree——显示目录结构

file——显示文件类别等信息

mv——移动文件目录或修改文件目录名称

move (rename) files, 同时具备移动和重命名的功能。用的最多的Linux命令之一。

cp——拷贝文件目录

copy files and directories, 复制文件或目录。用的最多的Linux命令之一。

使用示例:

scp、sz、rz——文件传输

scp、sz、rz是一组提供文件传输功能的命令,其中scp(secure copy)主要是针对远程服务器之间的拷贝,而sz(send)是从服务器上将文件下载到本地电脑,而rz(receive)则是将本地电脑上的文件传输到服务器相应的路径,有的服务器上不一定自带了sz rz功能,需要利用root账户安装相应的软件lrzsz.x86_64(yum install lrzsz.x86_64)。

scp一般的格式是  scp [参数]  [[user@]host1:]file1 [[user@]host2:]file2, 其中参数部分和cp类似,像最常用的-r

sz 后面直接跟文件即可从服务器上进行下载,如下:

rz 在终端敲入rz后会弹出文件选择器对话框(注:本地需要上传的文件最好不要存放在中文路径,否则会出错)

scp在服务器之间进行数据的传输很有效,rz sz则在与服务器进行小文件的传输很多效,大数据的传输可以使用一些专业的传输软件,如filezilla、winscp等。

touch、vim、重定向——创建文件

上面讲了很多与文件相关的命令,那么如何去创建一个文件呢?(好比windows下单击邮件->New->New Documents txt)。Linux中有很多创建文件的方式,下面介绍几种。

touch——change file timestamps,touch的主要用途是改变文件的时间戳,但同时也是可以去创建一个空白的文本文件。

使用示例:

vim——Vi IMproved, a programmers text editor, 是vi的一个升级版,强大功能的文本编辑工具,和我们普通的视窗编辑器不同,用熟练了后效率会很高。vim可以创建一个空白的文档,也可以打开编辑多个文档,多以是指令的方式来完成相应的操作。这里简单提及下利用vim 创建一个文档。

重定向——我们默认运行的一些命令,其输出结果(包括标准正确输出标准错误输出)一般是直接输出到屏幕上去的,有时我们希望把这些结果存在文件中,这就涉及到了结果的重定向输出。

mkdir——创建目录

mkdir——看着英文缩写就应该知道该命令的意思了(make directory)常见文件夹。linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。用的最多的Linux命令之一。

使用示例:

rm、rmdir——删除文件或目录

rm——remove files and directory, 删除文件和目录,用的最多的Linux命令之一。

  • 该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
  • rm是一个危险的命令,使用的时候要特别当心,尤其对于新手

使用示例:

rmdir——remove empty directory 主要是用来删除空目录的,可以用rm –r dir 来替代。

ln——创建快捷方式

  • ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
  • 分为硬连接软链接

连接也是实现数据共享,避免数据冗余的一种方法。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接

硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建

使用示例:

 

小测试

从本地电脑上传一个txt文件到服务器,将该txt文件修改为example.txt,创建example目录并将example.txt移动到该目录。查看该文件的文件类别信息,拷贝一个example.txt并命名为example.copy.txt。最后删除example目录及其所包含的所有内容。

part1


 

3.打包压缩文件

文件及目录的打包压缩可以使文档更加整洁和减少磁盘存储,如window上的zip,rar等类似。压缩的算法有很多种,也对应下面不同的命令,但是基本的参数都很相似。

gzip/gunzip——gz压缩解压相关

最简单用法(一般压缩文件后缀名为gz):

解压:gunzip somefile.gz,或者,gzip –d somefile.gz

压缩:gzip somefile

gzip

使用示例:

gunzip

使用示例:

zip/unzip——zip打包压缩相关

上述介绍的gzip只是压缩但并不能对多个文件或者文件夹打包,zip具有打包和压缩功能,这和我们在windows上常见的zip是一样的,这种文件在windows和linux上是通用的,后缀名一般为zip。(package and compress (archive) files)

使用语法: zip some.zip  addfile1 addfile2 adddir1

使用示例:

 

使用示例:

bzip2/bunzip2——bz2压缩相关

与上述的zip不同,bzip2只能压缩而不提供打包功能,这与gzip相同。(a block-sorting file compressor),一般后缀名为.bz2。

最简单语法:

压缩:bzip2  [参数] file1 file2

解压:bunzip2 file.bz2

使用示例:

xz/unxz——xz压缩相关

xz压缩用的相对少一点,用法和bzip2、gz差不多。(a general-purpose data compression tool with command  line  syntax  similar  to  gzip(1)  and bzip2(1).)

使用示例:

compress/uncompress——Z压缩解压相关

compress 是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。

有的服务器上可能只有它的帮助文档,但是并没有其命令。(需root用户安装:yum install ncompress.x86_64)

使用示例:

tar——tar包相关
tar是非常重要打包压缩命令,因为它可以打包解包,而且还可以调用其它命令来进行压缩,是一个综合性的命令。
单纯的tar是打包而不是压缩
解包:tar -xvf somefile.tar,
打包:tar -cvf somefile.tar dir_or_file_list

使用示例:

大家可能会问,windows下常用的rar在linux下有对应的命令吗?由于rar在Linux不常用所以不自带rar相关的命令,需要另外安装,这里就不讲解了。

compress

 


4.文本内容处理

前两节讲解的主要是如何对文件系统的中的文件和目录进行操作(包括浏览、创建、打包、压缩等),那么这节就要讲解下如何去文件的内容进行操作(包括查看、统计、搜索、编辑等)。

cat、tac——打印文件内容

cat – concatenate files and print on the standard output
tac – concatenate and print files in reverse

使用示例:

more、less——分页查看文本内容

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

more 命令格式:

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]

more 常用操作命令(用more打开文件后,操作键盘):
Enter    向下n行,需要定义。默认为1行
Ctrl+F   向下滚动一屏
空格键  向下滚动一屏
Ctrl+B  返回上一屏
=       输出当前行的行号
:f     输出文件名和当前行的行号
V      调用vi编辑器
!命令   调用Shell,并执行命令
q       退出more

使用示例:

less – opposite of more, 应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

less 命令格式:

less [参数]  文件(s)

less 常用操作命令(用less打开文件后,操作键盘):

less 与 more 类似,但使用 less 可以随意浏览文件,而且 less 在查看之前不会加载整个文件。

/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

附加备注

1.全屏导航
ctrl + F – 向前移动一屏
ctrl + B – 向后移动一屏
ctrl + D – 向前移动半屏
ctrl + U – 向后移动半屏

2.单行导航
j – 向前移动一行
k – 向后移动一行

3.其它导航
G – 移动到最后一行
g – 移动到第一行
q / ZZ – 退出 less 命令

4.其它有用的命令
v – 使用配置的编辑器编辑当前文件
h – 显示 less 的帮助文档
&pattern – 仅显示匹配模式的行,而不是整个文件

head、tail——从头或者从尾查看

head – output the first part of files
tail – output the last part of files
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10
tail 命令从指定点开始将文件写到标准输出。

使用tail命令的-f选项可以方便的查阅正在改变的日志文件, tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

wc——统计文本内容

此wc非彼wc,wc – print newline, word, and byte counts for each file, 打印每个文件的行数、字数、字节数。

wc [OPTION]… [FILE]

使用示例:

nl——计算文件中的行号

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

nl [选项]… [文件]…

使用示例:

grep——文本内容查找

  • Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
  • grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
  • grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
  • grep [option] pattern file

其中-c -i -v -n 较常用。

使用示例:

grep在后面的日常操作中使用的很频繁,必须掌握。
cut——按需分割文件

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

使用示例:

sort——对文本内容进行排序

sort – sort lines of text files, 对文本内容按行或者(某一个字段进行排序),sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序(默认)输出。

sort [OPTION]… [FILE]…

其中的-k -n -r都很重要。

使用示例:

uniq——对文本内容进行去重计数

uniq – report or omit repeated lines, 报告或者删除重复的行,接受的输入文件必须是已经排序了的。

uniq [OPTION]… [INPUT [OUTPUT]]

comm——比较两个文件中的内容

comm – compare two sorted files line by line, 按行比较两个已经排好序的文件。主要是用来找文件间的共同行或者独有行。

comm [OPTION]… FILE1 FILE2

使用示例:

vim——文本内容编辑

  • vim – Vi IMproved, a programmers text editor, vim 是Linux上一款十分强大的文本编辑工具,不同于我们常用的记事本等可视化编辑工具,大部分操作是通过相应的命令来完成的,刚开始可能会不习惯,熟悉后会提高工作效率。
  • vim配有众多参数,我们只需掌握其中常用的几种。
  • vim在使用过程中有三种模式:

一般模式:在Linux终端中输入“vim 文件名”就进入了一般模式,但不能输入文字。

编辑模式:在一般模式下按i就会进入编辑模式,此时就可以写程式,按Esc可回到一般模式。

末行命令模式:在一般模式下按就会进入命令模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

vim的功能远不止这些,具体可以看下相应的博客。

http://www.cnblogs.com/tzhangofseu/archive/2011/12/17/2290955.html

http://blog.sina.com.cn/s/blog_50d43ad50100osd6.html

vim打开文件

vim somefile

编辑模式指令

i 在光标前进入 I 在行首进入
a 在光标后进入 A 在行末进入
o 在光标所在行的下一行行首进入 O 在光标所在行的上一行行首进入
cw 修改一个单词 dw 删除一个单词
dd 删除一行 u 撤销上一次操作
CTRL+r 重新上一次操作 GG 光标快速回到文件底部
gg 光标快速回到文件首部 4dd 删除光标所在行开始的4行
p 在光标下一行进行粘贴 yy 复制一行
d$ 删除光标后面的字符都行末    

键盘上的HOME END等快捷键依旧起作用

行命令模式

q 退出 q! 强制退出
w 保存 wq 保存并退出
wq! 强制保存并退出 set nonu 不显示行数
set autoindent 自动对齐 set noautoindent 取消自动对齐
1,5s/mail/gmail/g 全局替换(1-5行) 1,$s/mail/gmail/g 全局替换

sed——文本的过滤和转换(流处理)

sed – stream editor for filtering and transforming text

sed [-nefr] [动作] 文件

  • 动作:

动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则是『 10,20[动作行为] 』 ,不设置n1 和 n2 则表示是对整个流进行处理。

  • Function

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! 其中g为全行匹配替换

 

使用示例:

sed


5.系统信息操作
fdisk、df、du——查看系统磁盘空间信息

  • fdisk 命令是root用户用来查看系统分区情况和修改分区的命令
  • df – report file system disk space usage,报告磁盘使用情况
  • du – estimate file space usage,估计文件空间使用情况

df –h 以人类易懂的方式显示磁盘使用情况

du ./ -h以人类易懂的方式显示当前路径下的文件大小情况(明细)

du ./ -sh以人类易懂的方式汇总当前路径下的文件大小情况

http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html

http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html

使用示例:

lscpu——查看系统cpu配置情况

lscpu – display information about the CPU architecture

使用示例:

free——查看系统内存使用情况

Display amount of free and used memory in the system, 显示系统中的中内存和使用的内存。

使用示例:

top——查看系统实时运行状态

有时我们很关心系统正在运行什么程序以及系统现在的存储内存消耗等,这时就需要top命令来实时监测系统信息。首先来看下top命令的界面,也就是系统的一些状态信息:

top

任务区域中每列的具体含义:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

 

top命令运行后的相关指令:

针对top命令掌握常用的几个指令即可,如b,c,1等,更多信息请看下面的这篇博客:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
ps——查看当前运行程序信息

ps – report a snapshot of the current processes. 报告当前进程的快照。ps命令是Process Status的缩写。

ps [options]

使用示例:

kill——杀掉某个进程

有时需要终止一些错误程序的运行就需要利用到kill命令,看其单词意思就知道它的功能。

格式:

kill [ -s signal | -p ] [ -a ] pid

kill -l [ signal ]

使用示例:

date、cal——查看当前系统时间与日历

date和cal命令平时使用的也不是很多,但有时可以用来计算程序运行花了多长时间,这里简单介绍下:

date – print or set the system date and time

cal – displays a calendar

 

date [参数]… [+格式]

cal [-smjy13] [[[day] month] year]

 

详细内容可参考下面的博客:

http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html

http://www.cnblogs.com/peida/archive/2012/12/14/2817473.html

 

使用示例:

bc——系统自带简易计算器

bc是一个很实用的命令,简易的计算器程序。

bc – An arbitrary precision calculator language

用法:bc [ -hlwsqv ] [long-options] [ file … ]

运算符: + – / * % ^

调用标准数学库:s(x)、c(x)、a(x)、l(x)、e(x) 三角函数 指数函数等。

设置结果保留位数:启动bc后, 键入scale=4回车 设置4位小数点,

退出bc:quit

使用示例:

ifconfig、ping、route——查看系统网络信息

这些命令主要是用来查看系统的网络信息,一般是系统管理员需要掌握的,这里简单了解下:

  • ifconfig – configure a network interface
  • ping, ping6 – send ICMP ECHO_REQUEST to network hosts
  • route – show / manipulate the IP routing table

使用示例: