查看本机IP
ifconfig
ip addr
查看当前用户
w
who
e.g
root@w:~# w
09:45:55 up 25 min, 1 user, load average: 0.15, 0.27, 0.37
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
w :0 :0 09:21 ?xdm? 47.70s 0.00s /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
root@w:~# who
w :0 2020-01-17 09:21 (:0)
查询所有用户
cut -d : -f 1 /etc/passwd
切换 root 用户
sudo su -
切换用户
su - username
修改密码
passwd
python 运行 http 服务器, 把当前目录内容作为静态服务器目录
gyw@gyw:~/public_html$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...
git bash 中操作 登录服务器
$ ssh [email protected]
[email protected]'s password:
...
[yw@login ~]$
sinfo 查询 slurm 节点和分区信息
[yw@login ~]$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
titan up 2-08:00:00 1 idle nodeX
STATE 状态:
idle
空闲
mix
使用中,资源不一定全部使用
nodeX 为空闲状态,使用 srun 进入 nodeX
--gres=gpu:1
使用一个 GPU
-p
指定分区
-w
指定节点
--pty -u bash -i
创建一个指定的 shell
环境
[yw@login ~]$ srun --gres=gpu:1 -p titan -w nodeX --pty -u bash -i
[yw@nodeX ~]$ ls
MitosisDetection perl5 test.py
srun
的操作命令里必须加入显存调取,如 --mem=10G
,否则会默认调用整个节点的显存
srun --gres=gpu:1 --mem=10G -p titan -w nodeX --pty -u bash -i
先开 screen 再开 singularity 容器
查看容器
ls /atlas/containers/
进入 singularity
容器 , -w
参数解决容器有时候无法正常打开问题
singularity shell /atlas/containers/kr-2tf-1py ... img
singularity shell -w /atlas/containers/mitosis_detcetion-2017-0724.img
screen 操作
创建新的交互窗口
screen -S name
退出,后台执行
ctrl+a+d
退出,关闭后台
exit
列出来
screen -ls
进入某个活动窗口
screen -x 名字
使用screen名字,kill掉
screen -S session_name -X quit
执行 screen -S python , 进入交互窗口
[yw@nodeX MD]$ ls
...
tar 打包
tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
tar 压缩
tar -czvf a.tar.gz a/
tar 解压
tar -xzvf a.tar.gz
scp 传文件到服务器
从当前目录传 .tar
文件到 172.0.0.0
, 需要输入服务器登录密码
gyw@gyw:~/Desktop/code/ $ scp node_modules.tar [email protected]:/atlas/home/yw/MitosisDetection/src/frontend
添加 -r
参数传文件夹
gyw@gyw:~/Desktop/code/ $ scp -r node_modules [email protected]:/atlas/home/yw/MitosisDetection/src/frontend
scp 从别人电脑取文件
从别人电脑家目录取文件到当前目录, 需要别人电脑用户名和密码
gyw@gyw:~/Desktop/code$ scp [email protected]:/home/sunliqun/cats_and_dogs_20170725.tar.gz .
[email protected]'s password:
cats_and_dogs_20170725.tar.gz 100% 3001MB 107.2MB/s 00:28
gyw@gyw:~/Desktop/code$ ls
cats_and_dogs_20170725.tar.gz project project_code
Documents project_annotation test_git_fetch
scp 传递文件夹
scp -r [email protected]:/home/sunliqun/git/MitosisDetection/src/backend/data/camelyon/* .
cp 复制文件夹下内容内容到当前文件夹 *
[yw@login frontend]$ cp -r /atlas/projects/MD/MitosisDetection/src/frontend/node_modules/* .
cp 复制文件夹到当前文件夹,创建文件夹
[yw@login frontend]$ cp -r /atlas/home/yw/code/MitosisDetection/src/frontend/node_modules/ .
[yw@login frontend]$ ls
build config index.html mock nightwatch.json node_modules package.json package-lock.json src static test
创建软链接
[yw@nodeX projects]$ ln -sv /atlas/projects/MD/data/data_mitosis data
'data' -> '/atlas/projects/MD/data/data_mitosis'
[yw@nodeX projects]$ ll data/
total 0
drwxr-x--- 4 liqunsun mitosis_detection 41 Aug 1 13:15 camelyon
drwxr-xr-x 4 liqunsun mitosis_detection 41 Jul 29 16:32 cats_and_dogs
drwxr-xr-x 4 liqunsun mitosis_detection 41 Aug 7 18:19 mitosis
drwxr-xr-x 4 liqunsun mitosis_detection 41 Jul 29 19:20 openslide_data
mv 移动当前目录 a.txt 到 bc 文件夹下
mv a.txt ./bc/
mv 更改文件名,把 a.txt 修改为 b.txt
mv a.txt b.txt
vim 从当前行删除文件到最后一行
,$d
vim 删除整行, 连续按两次 'D' 键
dd
动态查看服务器 .log 日志
tail master.log -f
Samba 挂载服务器目录
sudo mount -t cifs // 172.0.0.0/md /home/gyw/Desktop/samba -o username=yw,password=test123,uid=1000,gid=1000,iocharset=utf8,rw,dir_mode=0777,file_mode=0777
UID和gid是你正在使用的本地用户的id号
对应挂载的是 服务器上 /atlas/projects/MD/data 文件目录.可读可写. /mnt 是本地的目录 ./mnt目录该目录下最好
为空.否则原有文件会隐藏
如果要取消挂载,直接 umount /mnt 即可
查看本机用户 id 号
Linux id命令用于显示用户的ID,以及所属群组的ID。id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
gyw@gyw:~/Desktop/code/project/MitosisDetection$ id
uid=1000(gyw) gid=1000(gyw) 组=1000(gyw),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)
yw@nodeX:/atlas/projects/MD/MitosisDetection/src/backend$ ln -sv /atlas/projects/MD/data/data_mitosis data
'data' -> '/atlas/projects/MD/data/data_mitosis'
srun 登录 node 节点
srun -p common -w node3 --pty bash
ssh 登录节点
ssh node3
sjstat 查看节点使用状态
[]$ sjstat
Scheduling pool data:
-------------------------------------------------------------
Pool Memory Cpus Total Usable Free Other Traits
-------------------------------------------------------------
Running job data:
----------------------------------------------------------------------
JobID User Procs Pool Status Used Master/Other
----------------------------------------------------------------------
node 节点查询 GPU 资源运行状态 每1s更新
[]$ watch -n 1 nvidia-smi
lsblk 列出块设备信息
[yw@node3 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.1T 0 disk
lsof -i :3000 查询 3000 端口信息
gyw@gyw:~$ lsof -i :3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 3393 gyw 13u IPv6 6582569 0t0 TCP *:3000 (LISTEN)
ss -tnl 查询所有端口
$ ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 0.0.0.0:5999 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80
...
sudo ss -tnlp 查询所有端口,以及对应的程序名称
$ sudo ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 0.0.0.0:5999 0.0.0.0:* users:(("vncserver-virtu",pid=1350,fd=7))
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=5153,fd=8),("nginx",pid=5152,fd=8),("nginx",pid=5151,fd=8),("nginx",pid=5150,fd=8),("nginx",pid=5149,fd=8),("nginx",pid=5148,fd=8),("nginx",pid=5147,fd=8),("nginx",pid=5146,fd=8),("nginx",pid=4720,fd=8))
LISTEN 0 128 127.0.0.1:5939 0.0.0.0:* users:(("teamviewerd",pid=2259,fd=11))
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=687,fd=13))
...
kill -9 3393 杀死 3393 进程
kill -9 3393
Ubuntu 快捷键
粘贴快捷键 shift
+ insert
查询当前用户在当前节点下所有进程
ps -aux | grep yw
查询所有 python 进程
ps -aux | grep python
查询 main_start.py 文件相关的进程
ps -aux|grep main_start.py
查询 Linux 端口使用情况
[yw@login ~]$ ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:51848 *:*
...
top
命令实时显示系统中各个进程的资源占用状况
top - 10:57:26 up 9 days, 23:31, 1 user, load average: 1.60, 1.82, 1.85
Tasks: 315 total, 1 running, 311 sleeping, 3 stopped, 0 zombie
%Cpu(s): 4.0 us, 0.6 sy, 0.0 ni, 95.2 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 16287356 total, 5305532 free, 5711816 used, 5270008 buff/cache
KiB Swap: 3998716 total, 3751420 free, 247296 used. 9928180 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12289 gyw 20 0 1985088 326936 98856 S 14.6 2.0 2:46.06 chrome
2209 gyw 20 0 1783768 250216 84444 S 10.9 1.5 601:48.51 compiz
1490 root 20 0 933652 154892 115156 S 10.6 1.0 329:39.49 Xorg
...
Redis Docker (端口:6379)
docker run --name redis -d -p 6379:6379 --restart always -v /srv/redis:/data redis
test.py 文件在docker中使用,桌面用户无法正常修改,修改文件权限
sudo chown root.gyw test.py
sudo chmod 664 authenticator.py
squeue 查看 slurm 任务状态
[ywguo@login ~]$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
66151_1 fast username test12 R 1-23:27:21 1 nodex
66152_1 fast username test12 R 1-23:26:34 1 nodex
66153_1 fast username test12 R 1-23:26:20 1 nodex
nginx 重启, 更新配置
nginx -s reload
nginx 查看配置
vim /etc/nginx/nginx.conf
nginx 配置更新后检查语法
nginx -t
find 命令
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
查找当前目录下所有后缀名 pyc 文件
find -name "*.pyc"
find . -name "*.pyc"
查找当前目录下的 pyc 文件,然后删除
find -name "*.pyc" -delete
Linux 清空文件命令
echo > "filename"
echo > log.txt
chown 命令
将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
将文件 log.txt 的拥有者设为 users 群体的使用者 yw
chown yw:users log.txt
df
df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息
df -hl
:查看磁盘剩余空间
root@w:~# df -hl
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 3.7M 1.6G 1% /run
/dev/sdb2 234G 74G 149G 34% /
tmpfs 7.8G 470M 7.4G 6% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/loop4 384K 384K 0 100% /snap/gnome-characters/550
/dev/loop0 384K 384K 0 100% /snap/gnome-characters/539
/dev/loop3 1.0M 1.0M 0 100% /snap/gnome-logs/93
/dev/loop19 1.0M 1.0M 0 100% /snap/gnome-logs/100
/dev/loop18 2.3M 2.3M 0 100% /snap/gnome-system-monitor/148
/dev/loop16 2.5M 2.5M 0 100% /snap/gnome-calculator/748
/dev/loop7 133M 133M 0 100% /snap/postman/95
/dev/loop2 55M 55M 0 100% /snap/gtk-common-themes/1502
/dev/loop6 2.3M 2.3M 0 100% /snap/gnome-system-monitor/145
/dev/loop14 2.5M 2.5M 0 100% /snap/gnome-calculator/730
/dev/loop17 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop5 97M 97M 0 100% /snap/core/9436
/dev/loop13 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop12 162M 162M 0 100% /snap/gnome-3-28-1804/128
/dev/loop8 256M 256M 0 100% /snap/gnome-3-34-1804/33
/dev/loop20 97M 97M 0 100% /snap/core/9665
/dev/loop15 256M 256M 0 100% /snap/gnome-3-34-1804/36
/dev/loop10 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop11 141M 141M 0 100% /snap/gnome-3-26-1604/100
/dev/loop1 55M 55M 0 100% /snap/core18/1880
/dev/sdb1 511M 16M 496M 4% /boot/efi
/dev/sda1 917G 129G 742G 15% /mnt/sda1
tmpfs 1.6G 16K 1.6G 1% /run/user/121
tmpfs 1.6G 48K 1.6G 1% /run/user/1000
/dev/loop21 56M 56M 0 100% /snap/core18/1885
tmpfs 1.6G 0 1.6G 0% /run/user/0
uname
输出操作系统信息
$ uname -r
4.15.0-46-generic
$ uname
Linux
查看 Linux 发行版名称和版本号 /ect/os-release
release 文件通常被视为操作系统的标识。在 /etc 目录下放置了很多记录着发行版各种信息的文件,每个发行版都各自有一套这样记录着相关信息的文件
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
systemctl
启动一个服务
systemctl start postfix.service
关闭一个服务
systemctl stop postfix.service
重启一个服务
systemctl restart postfix.service
查询服务状态
systemctl status server_name
e.g.
root@w:/home/w# systemctl status vmware
● vmware.service - LSB: This service starts and stops VMware services
Loaded: loaded (/etc/init.d/vmware; generated)
Active: active (exited) since Fri 2019-08-23 09:06:14 CST; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 18321 ExecStart=/etc/init.d/vmware start (code=exited, status=0/SUCCE
Aug 23 09:06:13 w systemd[1]: Starting LSB: This service starts and stops VMware
Aug 23 09:06:13 w vmware[18321]: Starting VMware services:
Aug 23 09:06:13 w vmware[18321]: [36B blob data]
Aug 23 09:06:13 w vmware[18321]: [52B blob data]
Aug 23 09:06:13 w vmware[18321]: [53B blob data]
Aug 23 09:06:13 w vmware[18321]: [33B blob data]
...
du 查询文件夹大小
查询 dist 文件夹目录大小
$ du -h dist/
2.1M dist/fonts
112K dist/img/icons
132K dist/img
2.1M dist/js
768K dist/css
5.1M dist/
touch 创建文件
➜ touch array.ts
➜ ls
array.ts
blkid 查询设备采用的文件类型
此命令需要 root 用户执行
$ sudo su -
[sudo] password for w:
root@w:~# blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/sda1: UUID="9f6a2add-e287-4bf7-8e71-76cde406b11c" TYPE="ext4" PARTUUID="ca890f89-01"
/dev/sdb1: UUID="5B15-2493" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="d176220a-1c9f-4fba-9855-e24269a3dbe9"
/dev/sdb2: UUID="b9bceef6-f44c-4882-9216-1d6b8ecf1e43" TYPE="ext4" PARTUUID="9798f821-a39c-4622-b367-c5f842620db1"
/dev/loop8: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/loop11: TYPE="squashfs"
/dev/loop12: TYPE="squashfs"
/dev/loop13: TYPE="squashfs"
/dev/loop14: TYPE="squashfs"
/dev/loop15: TYPE="squashfs"
/dev/loop16: TYPE="squashfs"
/dev/loop17: TYPE="squashfs"
/dev/loop18: TYPE="squashfs"
/dev/loop19: TYPE="squashfs"
/dev/loop20: TYPE="squashfs"
/dev/loop21: TYPE="squashfs"
mount 目录挂载
将 /dev/sda1 对应的 /media/w/9f6a2add-e287-4bf7-8e71-76cde406b11c 目录内容挂载到 /mnt/sda1
目录中,使用 sudo mount /dev/sda1 /mnt/sda1
命令
w@w:/mnt/sda1$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 3.6M 1.6G 1% /run
/dev/sdb2 234G 73G 149G 33% /
tmpfs 7.8G 282M 7.6G 4% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/loop0 384K 384K 0 100% /snap/gnome-characters/550
/dev/loop6 1.0M 1.0M 0 100% /snap/gnome-logs/100
/dev/loop14 2.5M 2.5M 0 100% /snap/gnome-calculator/748
/dev/loop1 384K 384K 0 100% /snap/gnome-characters/539
/dev/loop11 1.0M 1.0M 0 100% /snap/gnome-logs/93
/dev/loop5 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop7 55M 55M 0 100% /snap/gtk-common-themes/1502
/dev/loop2 55M 55M 0 100% /snap/core18/1754
/dev/loop3 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop4 2.5M 2.5M 0 100% /snap/gnome-calculator/730
/dev/loop10 2.3M 2.3M 0 100% /snap/gnome-system-monitor/148
/dev/loop15 162M 162M 0 100% /snap/gnome-3-28-1804/128
/dev/loop12 55M 55M 0 100% /snap/core18/1880
/dev/loop18 256M 256M 0 100% /snap/gnome-3-34-1804/33
/dev/loop16 256M 256M 0 100% /snap/gnome-3-34-1804/36
/dev/loop20 2.3M 2.3M 0 100% /snap/gnome-system-monitor/145
/dev/loop8 97M 97M 0 100% /snap/core/9436
/dev/loop13 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop9 97M 97M 0 100% /snap/core/9665
/dev/loop17 133M 133M 0 100% /snap/postman/95
/dev/loop19 141M 141M 0 100% /snap/gnome-3-26-1604/100
/dev/sdb1 511M 16M 496M 4% /boot/efi
tmpfs 1.6G 16K 1.6G 1% /run/user/121
tmpfs 1.6G 44K 1.6G 1% /run/user/1000
/dev/sda1 917G 129G 742G 15% /media/w/9f6a2add-e287-4bf7-8e71-76cde406b11c
w@w:~$ sudo mount /dev/sda1 /mnt/sda1
w@w:/mnt/sda1$ ls
w
注意
这样挂载完以后的目录,电脑重启后挂载的内容就没有了,需要重新操作,解决方式如下
使用 root 用户在 /etc/fstab
添加一行内容 /dev/sda1 /mnt/sda1 ext4 errors=remount-ro 0 1
这样电脑重启后挂载的目录依然还在。
root@w:~# tail /etc/fstab
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sdb2 during installation
UUID=b9bceef6-f44c-4882-9216-1d6b8ecf1e43 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sdb1 during installation
UUID=5B15-2493 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
/dev/sda1 /mnt/sda1 ext4 errors=remount-ro 0 1