0
点赞
收藏
分享

微信扫一扫

Linux平台下UNIX SHELL运行任务常用命令

b91bff6ffdb5 2022-01-31 阅读 56

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 #查询所有任务

寄语初学者:学习语言就是如此,不管计划如何,一定要有耐心和恒心,才会有收获。



 

   

举报

相关推荐

0 条评论