Linux命令

Linux命令_第1张图片

查看本机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

你可能感兴趣的:(Linux命令)