2016年1月15日 雨 珠海
刚上手Ubuntu,有很多地方可能理解较为浅显,目前以实用为主。
topic - 1 关于ubuntu硬盘挂载
主要参照Avril的blog,http://www.cnblogs.com/avril/archive/2010/03/23/1692783.html
要注意的几个问题:
1、ubuntu挂载硬盘的本质,实际是在文件目录中添加(新硬盘)信息,挂载点本身其实就是个目录;
2、有两个命名规则,sda1、sda2、sda3、sda4,实际是一个硬盘,最多能4个分区,这似乎是不能更改的,添加新硬盘,不是添加新分区,所以不会是sda5、sda6等出现,在ubuntu的命名序列里,第一块硬盘是sda、第二块是sdb、第三块是sdc……
3、step1,找到新硬盘: sudo hdparm -I /dev/sdb 硬盘硬件安装后,此命令测试linux系统是否能找到挂载的未分区硬盘,如果是找第三块硬盘,就应该改成-I/dev/sdc,以此类推,执行此命令后,会出现很多硬盘的信息,比如standards、configuration、capabilities,我感觉这些其实就是新挂载硬盘的一个参数表。
4、step2,硬盘分区: sudo fdisk /dev/sdb 第一次执行会报Error: Unable to open /dev/sdb - unrecognised disk label. 提示找不到磁盘标签,可以使用 parted 进行分区,这时,需要执行 sudo parted /dev/sdb。
5、step3:执行parted之后会出现一系列需要选择的项目,屏幕会提示:Command (m for help): 这时输入m,会出现parted的命令的各个参数,要做的第一步是输入p(查看新硬盘的分区),这时会显示硬盘的容量等信息,第二部是输入n(创建新分区),输入n之后,会有一系列提示,需要选择,第一个提示File system type (default ext2): (输入想使用的分区格式),ubuntu的文件格式有很多种,比如ext2、ext3、ext4、ReiserF、VFS、nfs、vfat、ntfs、fat32,一般情况下,如果只是ubuntu专用的硬盘,建议输入ext4,如果想要在新硬盘上装windows系统,则需要输入ntfs ,关于linux环境下装windows系统的问题不在本文讨论范围,选好了文件格式之后,会让选择文件存放的柱面起止区间,First cylinder (default 0cyl): 直接回车默认,Last cylinder or +size or +sizeMB or +sizeKB (default 0cyl):继续回车默认,然后会有个提示,选Y,提示写的是输入yes或者no,输入Y一样,输完之后,要等待,不要以为死机就强行退出terminal,虽然没试过,但是我感觉,如果不是两个默认,应该可以自己设置分成几个区之后,每个区的容量。
6、各种信息出现之后,会提示分区已完成,这时,再次出现,Command (m for help): 再次输入p,此时,就能看到分区的结果了,仔细看结果,此时出现了较大的变化,不再是/dev/sdb,而是/dev/sdb1,表示已经出现分区,sdb盘整个就一个区,所以显示的是sdb1,如果在上一步,设置了多个区,当然,最多4个,会显示每个区,sdb1、sdb2……,我没有试,但结果推断应该如此;
7、此时,屏幕会提示Command (m for help):输入 w,表示“write table to disk and exit 保存退出 ”,至此,分区结束了;
8、step 4:格式化硬盘,老实说,这个过程跟windows差不多。先分区,再格式化,此时,执行命令sudo mkfs -t ext3 /dev/sdb1,因为我只有sdb1,所以就对它格式化,若是有多个区,还得多搞几次;这个命令结束后会稍等几秒;
9、设置卷标(给新的分区命名),sudo e2label /dev/sdb1 /Airy 这里/Airy 就是在/dev/sdb1根下起了个名字 Airy是我自己取的,以后操作就针对这个名字了;
10、设置挂载点,输入 sudo mkdir /Airy 在根路径下创建挂载点,这个命令将把/Airy这个新硬盘挂载到根目录下面,如果想挂在其他目录,建议查一下mkdir的命令参数,照着来;
11、设置开机挂载,如果上一步干完,就直接不管了,下次开机,还得挂一次,为避免这种事出现,就要改一下/etc/fstab,在终端输入:sudo gedit /etc/fstab,当然,也可以是sudo vim /etc/fstab,gedit稍微省事点儿;
12、在gedit的页面里,最后一行,输入/dev/sdb1 /Airy ext4 defaults 1 2
13、如果修改/etc/fstab没有按照上一条说的输入正确,会出现开不了机的情况,此时屏幕显示,可以输入S、或者M,是代表skip,跳过,即虽然etc配置不对,忽略之,我第一次挂载没成功,一直进不了系统,此时,就要输入M,进入维护模式,这里面需要用root权限,此时,补救办法是,在terminal模式中输入sudo vim /etc/fstab,gedit是用不了的,在vim软件中,对/etc/fstab进行重新修改,保存后,再输入shutdown -r now,重启。关于vim的操作,下文有具体叙述。
14、检查一下,在ubuntu的图形桌面中,在terminal中是否都能看到Airy的内容了。
topic -2 关于vi和vim
主要参照 Ubuntu下使用VI编辑文件必知的常用命令 http://zeuscn.net/archives/2012/12/09/ubuntu-vi-edit-file-common-command.html
vi是个强大的文本编辑器(对于用惯了windows的用户来说,这货折腾人的能力很强大),对于bash等文件的编辑十分重要。在某些环境下,gedit不好用的时候,vi基本是唯一选择。
另外一个,vi基本脱离鼠标以及键盘上的方向键,但似乎这也并不是什么太便利的事,但如果命令足够熟悉,相信效率上也不会有问题。
1、vi有三个模式,命令模式,插入模式,底行模式。刚刚打开vi的时候是命令模式,这时候只能看,无法动手改文件,作为ubuntu的初学者,会十分恼火,这玩意特么的不是找事儿吗?不管怎么样,vim要稍微好用点,但ubuntu不会自带,要下载一个,sudo apt-get install vim
2、这三个模式的说明如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
3、模式切换:
1) 切换至插入模式(Insert mode)编辑文件
在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候可以开始输入文字了,如果输入的是大写的I,则在行首开始写。
2) 插入模式到命令行模式的切换
处于「插入模式(Insert mode)」,可以采用方向键,backspace、delete
3) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)【相当于‘另存为’】
: wq (输入「wq」,存盘并退出vi)【相当于‘保存’】
: q! (输入q!, 不存盘强制退出vi)【相当于‘退出不保存’】
4、在插入模式中,输入过程中,发现想undo了,得先esc退出来,在命令模式中,按‘u’,要向redo,同样esc,‘.',对,不是r,是句号。
5、编辑命令
① 从常用的先来吧:删除,命令模式下,小写x,相当于delete,大写X,即shift+x,相当于backspace
② 行号:先进入底行模式,命令为:”:set nu“,取消行号,”:set nonu"
③ 移动光标: 在命令模式下:h,左移,l右移,j下移,k上移,gg移到第一行,G(shift+G)移到最后一行,删除键(backspace)左移,空格键(space)右移,w,右移字头,e右移词尾,b左移字头,回车(enter)下一行,括号(,移动到句首,反括号,移动到句尾。
④ 文档搜索:输入"/",自动进入底行模式,如果我要向下查找shit这个单词,就输入/shit,这时会自动找出第一个shit,用n,找下一个shit,用N向上找shit。当输入的是“?“时,则是向上方搜索,vim里面搜索是有方向的。
⑤ :s/p1/p2/g:将当前行中所有p1均用p2替代、:n1,n2s/p1/p2/g(主意都好):将第n1至n2行中所有p1均用p2替代 、:g/p1/s//p2/g:将文件中所有p1均用p2替换
6、复制粘贴,这是个十分繁琐的问题:
可以参照:http://blog.51yip.com/linux/1140.html,《vim复制,粘贴,删除,撤销,替换,光标移动等用法》
7、常用命令集合:
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
topic -3 关于ROMS安装
主要参照“ROMS WIKI”,https://www.myroms.org/wiki/ROMS_UNSW2008,以及”自由海岸“的blog,http://blog.sina.com.cn/s/blog_c104a6a50101acyu.html
首先,ROMS WIKI这个网站很重要,将伴随着ROMS学习的始终。
安装之前,你需要去ROMS网站上注册一个用户,https://www.myroms.org/,假设我的用户名是Airy,密码是111111,这只是假设。
下面开始安装:
step1: 在根目录下建文件夹,命令如下:
cd ~
mkdir src
如果你建的夹子不在根目录,后续的命令需要稍作修改;
step2:下载一个svn
sudo apt-get install subversion
step3:开始下载安装ROMS
svn checkout --username Airy https://www.myroms.org/svn/src/trunk src
注意,上面标红的Airy,是你在ROMS网站上注册的名字,该命令输入后,终端会提示你输入Airy用户名的密码。
输完密码,验证通过后开始进入安装。
topic -4 关于OPENFOAM安装
主要参照OPENFOAM官方网站,http://www.openfoam.org/download/ubuntu.php
几条命令就ok的,很好装,前提是ubuntu的系统要升级到14.04 LTS。
step1:终端输入:sudo add-apt-repository http://www.openfoam.org/download/ubuntu
step2:终端输入:sudo apt-get update
step3:终端输入:sudo apt-get install openfoam30
step4:终端输入:sudo apt-get install paraviewopenfoam44
完成这四个步骤之后,openfoam和paraview就被装到/opt目录下。
step5:环境变量设置:
① 终端输入:gedit ~/.bashrc
② 在bashrc中最后一行输入:source /opt/openfoam30/etc/bashrc,保存、关闭gedit
③ 终端输入:icoFoam -help,会看到Usage: icoFoam [OPTIONS]……
官网上给了个算例,大体意思是把tutorials中的一个简单的算例拷贝到FOAM_RUN的文件夹里,然后运行
step1:终端输入:mkdir -p $FOAM_RUN ,建立一个叫做FOAM_RUN的文件夹;
step2:终端输入:cp -r $FOAM_TUTORIALS $FOAM_RUN ,把算例拷贝到FOAM_RUN文件夹中;
step3:终端输入:cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity,进入算例
step4:终端输入:blockMesh、icoFoam、paraFoam
算完之后,会出现一个paraview的界面,到此算例结束。