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

使用示例:

wget——从网上下载数据

有人可能会问如何在Linux上从网络上下载一下文件什么的呢,Linux下有很多这样的命令,这里介绍下常用的wget命令。这里大家掌握了这个命令后,就不用在windows下下载,再从windows上传到服务器 这么麻烦了。比如后面做RNA-seq分析需要用到的tophat软件,其下载地址为 http://ccb.jhu.edu/software/tophat/downloads/tophat-2.0.14.Linux_x86_64.tar.gz,那么如何直接下载到服务器呢?

使用示例:

bg、fg、jobs——让程序前后台切换运行

  • 有时候某个命令的运行时间过长,我们想让这个程序在后台运行,同时将标准输出标准错误输出重定向到文件,我们就可以利用前台的操作窗口进行其它操作,这时就需要将前台运行的程序切换到后台运行(好比把windows上播放视频的程序从桌面的最上面窗口缩小到后台运行,我们可以在桌面上运行其它程序,比如编辑word等。)(bg 等同于在程序最后面添加 & 后回车)
  • 有时候又想看看后台到底有多少程序在运行呢?(jobs
  • 有时候又想把后台运行的程序切换到前台运行,实时观察运行状态。(fg

  • bg:

回车运行某个程序
[Ctrl + z]
参看 stopped前面的 job id, 如 1 2 3等

bg job-id : #[bg 1 回车]

  • jobs:

jobs 查看当前被推至后台运行的程序

  • fg:

fg job-id # [fg 1 回车]    将job id 为1 的后台程序切换至前台运行

使用示例:

bg1

 

bg2
which——查看命令的位置

which命令是用来查看某个命令的具体位置是在哪里,比如pwd命令其实是位于/bin/pwd。
使用方法:which [参数] 命令,这简单介绍下-a参数,即列举出所有符合条件的命令的位置,因为有可能系统有多个同命令的命令,只是所在目录不同,后面会在环境变量中介绍。

who、w——显示谁在登陆、在干什么
who – show who is logged on
w – Show who is logged on and what they are doing.
这个命令用的也不是很多,如果你关系系统的运行情况则可以使用该命令查看下。

使用示例:

 

history——查看历史命令

在Linux中可以通过上下键来一条条地翻阅历史命令,history看名称我就可以猜到它是用于查看历史记录的,可以显示指定条数的历史命令,首先来看下常用的几个参数:

例子:

大家可以结合后面讲到的管道操作符 和 grep等命令来在history结果中搜索想要的历史命令。

man——查看命令函数等帮助文档

man – format and display the on-line manual pages, 主要是用来显示一些命令和函数等的帮助文档。

man [参数] name

使用示例:

 

 

all

6. 重要备注

alias——命令重命名
alias 为系统内置命令,用来简化负责的操作或者组合,依个人习惯不同,别名可以自己定。
比如,我们经常要利用ls -lh命令来查看文件及目录的一些情况,但是每次都这么输入就很麻烦,那有没有一个简单的办法来解决这个问题呢? alias就行:

|——管道操作符

管道操作符 | ,道是Linux中很重要的一种通信方式, 是把一个程序的输出直接连接到另一个程序的输入用于串联一系列的操作,比如:

.bashrc——环境变量设置

环境变量——让它知道,别让它来猜

  • 系统环境变量就是系统中一些约定俗称的变量,系统通过这些变量的值来搜索一些东西,好比冰箱(Fridge)是一个环境变量,里面的物品是一些元素(Element),我们可以根据自己的需求在冰箱中去搜索自己想要的东西。
  • Linux 内置环境变量:

  • 通过echo命令来显示变量内容

  • 通过export命令来设置临时变量(一般是在本次登陆有效,关闭连接后该变量消失)

 

而每个用户主目录下都有一个.bashrc隐藏文件(不同Linux发行版其文件名称可能不一样)用来记录用户的环境变量配置(不止环境变量配置),当用户登录远程服务器时,系统会自动通过执行这个文件来完成会话的一些基本环境配置(也可以利用source ~/.bashrc 来临时更新环境配置)。所以可以将export命令写入.bashrc文件来保证每次登陆时都能设置变量。
~/.bashrc文件中存放的其实就是一些shell命令
export命令用来设置相应的环境变量, #开头的行表示是注释信息
重新登录或者执行 source ~/.bashrc来应用修改后的配置

screen、nohup——程序不中断运行
程序持续运行——别让我被kill

  • 很多朋友可能在实际的linux服务器管理工作中,经常会为一些长时间运行的任务而头疼,当有事离开我们关掉了连接终端断开SSH,刚才运行着的程序也自动被中断。下面就介绍下如何让我们的程序在断开SSH后继续在后行运行的方法。
  • 问题1:为什么ssh一关闭,程序就不再运行了?

元凶:SIGHUP 信号
答案:关掉窗口/断开连接会使得正在运行的程序死掉

  • 问题2:使用后台运行命令&  能否将程序摆脱ssh进程组控制呢  也就是ssh关闭,后台程序继续运行?

我们做一个试验:

利用ctrl+d 注销以后 再进入系统  会不会看见这个命令再运行?
答案是  :命令被中止了!!


那么怎么去解决上述问题呢?
一、使用nohup让程序在后台继续运行
常用命令格式:
nohup ./home/nginx.sh &
注:如果运行成功刚默认会将标准输出重定向到当前目录的nohup.out文件中,查看此文件,可以了解运行的进度;
也可以重定向标准输出标准错误输出:
nohup somepragram [options] >log 2>errlog &

二、使用screen让程序在后台执行

screen是一个可以在多个进程之间多路利用(复用)一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样

  • 创建screen会话

screen -S wordname #创建一个名为wordname的会话

  • 暂时离开,保留screen会话中的任务或程序

当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a+d(即按住Ctrl,依次再按a,d)

  • 列出当前的会话列表

screen ls

  • 恢复screen会话

当回来时可以再执行执行:

screen -r wordname  # 或者screen -r screen-id
即可恢复到离开前创建的会话的工作界面。

  • 关闭screen会话

执行:exit  #或者ctrl + D

  • 远程演示

首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。


7. 小结

通过上面一系列的生物信息学常用Linux操作命令的讲解,相信大家对生物信息学的基本分析环境有了一个认识,大家也能体会将命令分门别类的学习效果更加明显。大家在学习的过程中也要逐步学会各种命令间的共同之处,这样可以举一反三,触类旁通。关键的一点还是要多加练习,慢慢领会各种命令的功能与使用诀窍。

原创文章,转载请注明: 转载自deangao's blog
本文链接地址: 2.4 Linux常用操作命令