《大话脑成像》之十二:Linux基础命令

话说孔乙己时常混迹于磁共振基础班,处理功能数据算是得心应手了。虽然时常拖欠学费,但不出几月,定然还上,从粉板上拭去了孔乙己的名字。因此,DTI班第一天,当他悄悄溜进来的时候,掌柜并未在意。

彼时,寿镜吾老先生正在一板一眼地教授大家Linux基础命令:

-------------------------------

1.Linux命令:

在Windows系统下,我们已经习惯了图形界面操作。而在Linux系统下,许多程序没有图形界面、或者使用命令更为方便。在Linux下执行命令,首先要打开终端:

终端左侧的siying@siying-vbox,意思是在用户siying已经登陆了电脑siying-vbox,而且当前文件夹在~位置下(即个人文件夹下)。在白色方块提示符处输入命令,按回车键即可执行。

Linux命令包括系统自带命令:比如ls、cd、cp等。

第三方软件的程序也可以作为命令执行:比如,如果自己安装了FSL或者Freesurfer等软件,他们也包含了一些命令工具集。如下图中的fslmerge、fslmaths等等。

2. Linux文件管理:

2.1根目录、/home目录的概念

与Windows的C盘D盘E盘不同,Linux系统下的文件都在/目录下边。/,即右斜杠,称之为根目录。

观察一下,上图中即是 Linux根目录中的文件夹和文件,整个Linux系统里的文件(夹)都可以由/出发找到。

/home目录则放置Linux用户的个人文件夹。比如用户siying的个人文件夹的路径是/home/siying;如果新建一个用户zhangsan,该用户的个人文件夹路径是/home/zhangsan。个人文件夹也可以用~来代替

/目录下的其他文件夹,比如/opt,一般存放自己安装的第三方软件;/bin,一般存放系统的二进制文件,比如我们用的cd等常用命令都在这里;/etc,一般用于存放系统及其他软件的配置文件;/lib,存放系统的库文件;如果插入了移动硬盘,则一般挂载在/media下面。这些了解即可。

2.2基本文件管理命令

(1)列出文件(夹)ls:即列出某个目录下的文件(夹)。命令ls可以跟一个参数,即目录。

输入命令ls /,可列出根目录下的文件(夹)。

输入命令ls ~,可列出个人文件夹下的文件(夹)。

输入命令ls,后边任何参数都不带,可列出当前文件夹下的文件(夹)。比如,当前文件夹在/opt,可列出/opt下的文件(夹)。

(2)改变路径cd:即改变当前文件夹的意思。命令cd可以跟一个参数,即目录。

比如当前文件夹在~下,执行cd sharefolder可以把当前文件夹改变到~/sharefolder。

输入命令cd,后边任何参数都不带,则可切换到个人文件夹,即~。

(3)复制文件cp:把文件从一个位置复制到另一个位置。命令cp可以跟两个参数,前一个是源文件,后一个是目标路径。

(4)移动文件mv:把文件从一个位置移动到另一个位置。命令mv可以跟两个参数,前一个是源文件,后一个是目标路径。

命令mv还可以用以重命名,比如把list.txt重命名为new.txt:

(5)删除文件rm: 把某(些)文件删除。比如删除list.txt:

删除所有sa开头的文件:

(6)创建文件夹mkdir: 创建一个文件夹。比如在~下创建test文件夹:

3. *号的含义

*代表“任意”的意思。比如*.txt就代表任意以.txt为后缀的文件,sub*则代表任意以sub为开头的文件,sub*.nii代表任意以sub开头.nii结尾的文件,s*i代表任意以s开头i结尾的文件。如果你的文件夹里有sub01.nii,sub02.nii,s03.nii三个文件,sub*.nii会筛选出前两个,s*i则会把三个全筛选出来。

4 文件夹简称:~ . ..

在Linux系统中,~代指用户个人文件夹,比如对于用户siying,~代指/home/siying。. ,也即一个点,代表当前文件夹;.. ,也即两个点,代表上层文件夹。比如,在终端执行cd .. 就切换到了上层目录,其他同理。

5 相对路径和绝对路径:相对路径,指目标文件(夹)相对当前文件夹的路径。比如,~目录下的文件(夹)如图所示:

切换当前文件夹到~/test。

则~/sharefolder相对于~/test的相对路径便是:../sharefolder。也就是上层文件夹下的sharefolder文件夹。

绝对路径,指某个文件(夹)从根目录开始的路径。比如~/sharefolder的绝对路径是/home/siying/sharefolder。

6 . Linux系统下的编辑器:

nano编辑器:

终端输入nano 文件名即可,如果文件名存在,则编辑此文件,如果不存在,则新建此文件。

在出现的编辑器界面输入内容,按ctrl+x键保存关闭即可。

Gedit

如果想使用图形界面编辑器,也可使用gedit,在Ubuntu系统左上角搜索gedit点击打开即可启动。或者在终端输入gedit命令也可以打开。

其他编辑器:Emacs/vim 。熟悉了Linux系统后,编辑任务较多时推荐使用其中一个。

查看某文件内容则可以使用:cat。

7.常见命令错误

(1)No command ** found。找不到命令,原因多为命令输错了。

如上图,输入一个不存在的命令“catdog”,系统里没有猫猫狗狗命令,故而报错。

又比如,命令大小写输错,系统照样不认,报错。

(2)参数输错。比如0和O不分(数字0和OPQ的O),下换线漏输,参数连在了一起。总之,Linux命令及参数的输入,不能有一丁点错误!

8.Linux Shell脚本:

Linux脚本即一系列Linux命令的集合。原本在Linux终端里一次可以执行一个命令,使用Linux Shell脚本,可以依次执行多条Linux命令。使用nano新建一个new.sh文件:

输入要依次执行的命令,保存。

在终端执行bash new.sh即可执行该脚本。对于上图,会在~下创建一个test2文件夹,并且复制~/list.txt到~/sharefoler下。

。。。

寿镜吾老先生快要讲完的时候,孔乙己已经溜出去了,怕掌柜的出去要账。掌柜倒并不在意,知道孔乙己这人过一阵想必又补上了,于是只是默默在电脑里记下了账目。

------------------------------------------

眼见过了年关,DTI班又开了,掌柜再次结账的时候,关下电脑,忽然说,“孔乙己长久没有来了。还欠五百学费呢!”我才也觉得他的确长久没有来了。一个正在练习Linux的学员说道,“他怎么会来?他打折了腿了。”“这一次,是他自己发昏。蹭了一节培训班,就自告奋勇给丁举人家修电脑去了。丁举人家的东西,碰得了么。”“后来怎么样?”“怎么样?他输错了命令,把丁举人的电脑格式化了。先写服辩,后来是打,打了大半夜,再打折了腿。”“打折了怎样呢?”“怎样。。谁晓得?许是死了。”

(欲知后事,且看下回。)


原文发布于微信公众号 - 思影科技(siyingkeji)

原文发表时间:2018-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Oracle 常见故障及日常规划

对任何数据库系统而言,对显而易见的故障,应当避免发生本文列出了Oracle常见的故障并给出了解决方案,同时列出了一些日常规划。

8020
来自专栏Vamei实验室

树莓派:文本编辑器与文件

GNU nano是Unix系统下一款常用的文本编辑器,以简单易用著称。与之相比,功能更强大的Vi和Emacs编辑器,学习曲线比nano陡峭很多。由于nano对于...

32050
来自专栏影子

Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

20320
来自专栏从流域到海域

在CentOS 7上安装Magento

在这篇教程中,您将学习如何在CentOS 7上安装Magent。Magento Community Edition(CE,即社区版)是一个免费的开源电子商务平台...

68260
来自专栏dotnet & java

这可能是最low的发布dotnet core站点到centos7教程

不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash。。我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的。

9730
来自专栏惨绿少年

企业架构规划及服务器优化参数

第1章 企业架构规划 1.1 架构图 ? 1.1.1 用户访问网站组成 类型 作用 实现方式 顾客-用户 访问网站的人员 ...

33900
来自专栏晨星先生的自留地

脏牛漏洞

74060
来自专栏安全领域

使用JavaScript开发物联网设备也会非常安全

本文将引导你完成一个练习,向你展示如何在 IoTivity 安全框架上使用 Java 对 OCF 设备进行快速原型设计。

510100
来自专栏分享达人秀

安装Android模拟器,准备开发

完成以上所有步骤(JDK、ADT Bundle、SDK),那么就可以开始进行Android开发了。 Android程序必须运行在Android系...

2.1K70
来自专栏7号代码

Android 读取已安装应用列表需要申请权限吗?

我要实现读取已安装应用列表功能,Google了一下,可以通过PackageManager.getInstalledPackages()方法获取,我手头有三台手机...

2.6K20

扫码关注云+社区

领取腾讯云代金券