Linux平台运行常用命令
1. 平台账户操作命令
修改用户密码
语法:passwd
Old password: <输入旧密码> 。。。。
联机帮助
语法:man
远程登录
语法:rlogin 主机名 [-l 用户名]
如: rlogin ftp.IP -l usrname
远程协议登录
Telnet 命令允许您与使用 Telnet 协议的远程计算机通讯 如 telnet ip port
Ping 命令查看某一个ip地址是否能够连通 如:ping ip
查看目录所占磁盘容量
语法: du [-s] 目录 #显示目录和子目录总容量(以KB 为单位)
远程传输
语法: rcp [-r] 源地址 主机名:目的地址 类似于cp用法
语法: ftp 主机名 或 ftp ip地址 如:ftp 10.1.1.1
ftp相关命令参数 如 get data 复制远程数据 put data 传给远程数据 !pwd或!ls 本地文件或地址 prompt 切换交互式指令
用户信息
语法: who 或 finger #查看用户名
语法: su #改变用户名 su user 进入用户user的帐号
语法: rusers #查看当前系统上所有工作站的用户
语法: talk 用户名@主机名 或 talk 用户名@IP地址 #与某工作站上的用户交谈
增加或删除用户
root权限下添加新用户
语法:useradd <用户名> #home目录下未有同名文件夹,没有创建密码,无法登录系统
语法:useradd -m <用户名> #在/home目录下创建同名文件夹,用passwd <用户> 设置密码
参数解读 -c comment 指定一段注释性描述;-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录;-g 用户组 指定用户所属的用户组;-G 用户组,用户组 指定用户所属的附加组;-s Shell文件 指定用户的登录Shell;-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
useradd asu -g A -p aa #添加用户名asu用户组A和用户密码aa
语法:adduser <用户名> # /home目录下会自动创建同名文件夹,同时会在etc目录下的passwd文件中添加这个新用户的相关信息;
如果创建新用户后shell无法使用基本的shell命令,是由于默认的shell 是/bin/sh,将其修改为/bin/bash 后即可。操作如下:vi /etc/passwd
语法:userdel <用户名> #删除用户,使用命令:userdel -r <用户名>把用户在系统中的文件删除
语法:su <用户名> #su是switch user的缩写,表示用户切换
语法:groupadd testgroup #用户组的添加
语法:groupdel testgroup #用户组的删除
电子邮箱发送邮件
语法:mail -s “主题” 电子邮件地址 < file #发送file文件到邮箱 mail -s “hello” 电子邮件地址 < file
语法: mail 电子邮件地址
mail xxx@163.com
Subject : mail test
Cc: xx@12.com
按下 Ctrl+D 键或 . 键结束正文
连按两次C t r l + C键则中断工作,不送此信件
语法:/usr/magedu/sendmail -bp #查看邮件发送状态
2. 文件处理相关命令
文件权限的设定
语法: chmod [-R] mode file&dir
mode: 3个8位数字或rwx等组合。r-read w-write x-execute u-user g-group o-other
chmod 755 dir 对于目录dir任何使用者皆有读取及执行的权利
chmod 700 dir 对于文件dir只有所有者可以读、写和执行的权利
语法:chown [-R] user file&dir #改变文件或目录的所有权
chown user file 将文件file改为用户user 所有
chmod ow file #表示给其他人授予写这个文件的权限
文件联接
语法:ln 老文件名 新文件名
ln -s file1 file2
文件传输(非root用户rzsz命令)
搜索文件及路径
语法:grep string file
语法:whereis 显示命令的路径
语法:which 显示命令的路径,使用者所定义的别名
语法:whatis 显示命令功能的摘要
语法:find path -name filename -print 搜寻指定路径下某文件的路径
比较文件或目录的内容
语法:diff [-r] name1 name2
diff file1 file2 比较文件内各行的不同之处
diff -r dir1 dir2 比较目录内各文件的不同之处
文件打印输出
用 .login 文件中的 setenv PRINTER来设定打印机名
语法:lpr [-P打印机名] 文件名
3. 任务程序处理命令
SHELL任务递交
& 放置于命令尾部,程序将后台运行
watch -n 3 sh test.sh & #每3s在后台执行一次test.sh脚本
watch [commend] 命令定期运行一个命令并显示其输出
watch --differences=permanent 高亮不同的内容
nohup 放在程序开端 shell可以在后台执行 无关terminal 可利用ps 查看进程
进程查看和终止
语法:ps [-aux] 查看系统中的进程
参数解释 a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
ps或ps -x 查看系统中,属于自己的进程
ps -au 查看系统中,所有用户的进程
ps -aux 查看系统中,包含系统内部的及所有用户的进程
ctrl +Z 将一个正在前台执行的命令放到后台并且处于暂停状态
fg 将后台中的命令调至前台继续运行
bg 将一个在后台暂停的命令启动后台继续执行
ctrl + z 再bg,进程移到后台运行
Ctrl+c 前台进程终止
kill jobid 终止程序 语法:kill [-9] PID
kill -u usename #终止用户名下进程
查看命令行
history 显示命令记录
语法: !! 重复执行前一个命令
语法: ! n n为命令记录表的命令编号
语法: ! string 重复前面以 string 为起始字符串的命令
语法: !!:p 显示前一个命令
4. HPC服务器搭建
高性能计算(Highperformance computing,缩写HPC) 指通常使用很多处理器,大多数基于集群的HPC系统使用高性能网络互连,比如那些来自 InfiniBand 或 Myrinet 的网络互连。
搭建HPC平台
(1)安装openmpi
以两台电脑为例,现在在两台电脑上都安装好了Ubuntu19.04;名称为npuheart0和1,ip为192.168.1.105和106
安装ssh等软件
sudo apt-get install openssh-server
sudo apt-get install gcc g++ gfortran make cmake zlib1g-dev python m4 vim
sudo apt-get install openmpi-bin openmpi-doc libopenmpi-dev
(2)配置hosts文件信息
先更新一下两台机器的系统,在/etc/host中更新ip地址为用户便于沟通
(3)创建新用户
(4)启动SSH无密码访问:两台机器将会通过SSH通信,并且通过NFS共享数据
如:进入mpiuser账户- 生成密钥- 密钥拷贝给其他用户-无密通讯
#进入其中一个电脑端npuheart0
adduser user-A
su user-A
ssh-keygen -t dsa
ssh-copy-id -i ~/.ssh/id_rsa.pub npuheart1
(5)NFS服务器和NFS客户端的安装及启动
NFS服务器的安装;创建共享文件夹;设置文件夹入口export;重启nfs
#服务器安装
sudo apt-get install nfs-kernel-server
su - user-A
mkdir cloud:
sudo vi /etc/exports
/home/mpiuser/cloud *(rw,sync,no_root_squash,no_subtree_check)
sudo exportfs -a
sudo service nfs-kernel-server restart
#客户端安装
sudo apt-get install nfs-common
mkdir cloud
sudo mount -t nfs master:/home/mpiuser/cloud ~/cloud
df -h
$ cat /etc/fstab
#MPI CLUSTER SETUP
master:/home/mpiuser/cloud /home/mpiuser/cloud nfs
(6)运行MPI程序
Mpi有多个实现版本,我目前接触到的有intelmpi,mpich2 openmpi;其中HPC默认使用的mpi版本是mpich2,客户经常使用的是openmpi
整个HPC需要启用NIS服务来管理整个HPC系统的用户,这样登陆其中节点,可以不输入密码直接登陆HPC内部其他服务器
用户要使用mpich2,首先用自己的账号密码登陆HPC任意服务器节点,使用命令mpdboot -f {计算服务器列表} –n {计算服务器数量}在指定的计算服务器上启动mpi守护进程
用户要使用mpich2,首先用自己的账号密码登陆HPC任意服务器节点,使用命令mpdboot -f {计算服务器列表} –n {计算服务器数量}在指定的计算服务器上启动mpi守护进程
例如启动一个python程序:mpirun -n 5 -hostfile ./hostfile python ./Test.py
通常HPC中为了平衡科学计算的使用率,加入了PBS任务管理调度软件。我们将mpi任务编写进一个aa.pbs任务脚本中去,
如:PBS -q batch (作业运行的队列)
qsub aa.pbs #递交启动任务
qstat #查询所有任务
寄语初学者:学习语言就是如此,不管计划如何,一定要有耐心和恒心,才会有收获。