linux命令学习

28,lsblk     #英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

hostname@io:/$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   3.7T  0 disk
├─sda1   8:1    0 488.3G  0 part /opt
├─sda2   8:2    0   127G  0 part [SWAP]
├─sda3   8:3    0  78.1G  0 part /
└─sda4   8:4    0     3T  0 part /home
sdb      8:16   0   1.8T  0 disk
├─sdb1   8:17   0     1K  0 part
└─sdb5   8:21   0   1.8T  0 part /share
 

27,realpath

>realpath "filename"     #输出某个文件的绝对路径

26,ls命令

有时候打开一个包含大量文件的文件夹,ls时间过长,因为ls是先读取文件列表到内存(占用越来越大),然后排序然后打印,花费时间当然长,此时可以用ls | less进行查看

但是用ls | less只是节约了在屏幕上打印的时间,还是没有解决根本问题。

所以,使用ls -1 -f命令,可以不执行排序,读取目录然后立即显示文件名(读一个显示一个)。

或者加上less分页查看,ls -1 -f | less

ls只列出当前目录中的文件夹:

ls -l |grep ^d或者是 ls -d */

25,rsync命令

rsync -atzP ./test/ ./test2/      #同步test到test2

选项说明:

-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-P:显示文件传输的进度信息。这个比-v好用
-a --archive  :归档模式,表示递归传输并保持文件属性。这个比-r好用
-r --recursive:递归到目录中去。
-t --times:保持mtime属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新检查出mtime不同从而导致增量传输无效。
-z :传输时进行压缩提高效率。
2024.2.14 update:使用rsync从远程拷贝文件,远程端口号为20219.
rsync -r -P -e "ssh -p 20219" uername@IP:/home/XXX/intein_MDs .
rsync -r -P -e "ssh -p 20219" ./11_* wanglab@ip:/home/wanglab/intein_MDs_10ns    #cp 当前文件./11_*到远程
rsync -r -P -e "ssh -p 20219" wanglab@ip:/home/wanglab/intein_MDs_10ns/06_{01..24}* .     #同步远程文件到本地

24,标准输入输出

比如下面这个命令:

sh test.sh &>/dev/null 2>&1
其中/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

那么>/dev/null 2>&1的意思就是:
标准输出重定向到空设备文件,也就是不输出任何信息到终端,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
 

23,查看显卡型号

方法1:  lspci | grep -i vga
后来想看一下linux怎么查看显卡型号,搜到命令lspci | grep -i vga,但返回的是一个十六进制数字代码(1080),如下图:

进入这个网站   http://pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci

可以按照十六进制数字代码找到相应的显卡型号。

方法2:nvidia-smi

参考链接:https://blog.csdn.net/maizousidemao/article/details/88821949

22,修改所在目录中所有文件权限(不包括文件夹)chmod 644 `ls -F | grep -v "/"`

21、tar打包&解包,压缩&解压,分卷压缩&解压

    打包:tar -cvf new.tar file

    解包:tar -xvf new.tar

    打包并压缩:tar -czvf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

    解压缩:tar -xzvf file.tar.gz //解压tar.gz

有时候会出现大文件无法传递的情况,需要分卷压缩:

    分卷压缩:tar czvf - ./3jcu_inter_1ns.nc | split -d -b 3800m - 3jcu.tar.gz

    解压缩:cat 3jcu.tar.gz* | tar xzv

将轨迹文件压缩为一个个的3800m大小的文件,然后传输,传输之后解压缩即可

20、cut命令

cat test2.txt

No;Name;Mark;Percent

01;tom;69;91

02;jack;71;87

03;alex;68;98

cut -f2 -d";" test2.txt

结果:

Name

tom

jack

alex

例子:查看有多少账户:cat /etc/passwd |cut -f 1 -d :

19、linux三剑客 awk,sed,grep。三剑客的功能非常强大,但我们只需要掌握他们分别擅长的领域即可:grep擅长查找功能,sed擅长取行和替换。awk擅长取列。

  19.1 取出一列数的最大值最小值平均值

awk '{sum=sum+$2}END{printf sum/NR "\n"}' date
显示平均值
cat date|awk '{printf $2"\n"}'|sort|sed -n '1p'
显示最大值,排序一下,取第一行值
cat date|awk '{printf $2"\n"}'|sort|sed -n '$p'
显示最小值,先排序一下,取最尾值

18、free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

链接:free查看内存,df查看磁盘分区及其大小,du查看文件大小

17、账户管理,并为新用户设置root权限,查看所有用户

(1)添加新账户:#都需要root权限

useradd -s /bin/bash -d /home/jacs -m jacs     

passwd jacs

# -s指定用户的登陆shell  -d指定用户主目录并后面跟-m创建主目录

#如果需要将用户添加到user组,需要使用-g,如:useradd -s /bin/bash -d /home3/zhangh -m zhangh -g user。  其中-g表明为添加主要用户组,-G表示要添加到附加用户组(默认主要用户组为自己的账户名为一个组)

将已有用户添加到g09组:usermod -a -G g09 guojp

(2)删除账户

Userdel -r jacs

删除文件夹/var/spool/mail/  中 对应用户的信箱文件

(3)为新的普通用户添加root权限——添加到具有root权限的admin组

groupadd admin

usermod -a -G admin jacs

#admin组的权限在/etc/sudoers中可以看到

(4)查看用户:/etc/passwd  查看用户组:/etc/group

Groups命令查看当前登陆用户的组内成员

Groups jacs  查看jacs用户所在的组

16、paste将两个文件内容合并成列或者行

用法: paste -d -s -file1 file2 

15、cat /etc/issue   #查看发行版信息

14、linux查看系统运行时间的方法:

Uptime、w、who、last

13、du –sh 可以查看当前目录所有文件夹以及大小的总和

    du –sh * 可以查看当前目录所有文件夹的大小

12、df –hT    

查看挂载点以及挂载系统是什么,以及可用容量。其中-h是human readable的意思;-T是查看挂载类型,没有也可以

2019/5/27日补充:

一般查看磁盘大小用df -h  

df -lh  #只查看本地文件系统(不查看远程挂载的)

df -lh –total   查看每一列的总和

11、sed

Sed默认不改变文件内容,把当前处理的行存储在缓冲区中,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行。  PS:-i直接处理文本
删除空白行 sed '/^$/d' test.txt

sed改变某个文件中多行内容:

sed -i -e "s/HIE/HIS/g" -e "s/GU1/GLU/g" -e "s/HD1/HIS/g" -e "s/HD2/HIS/g" -e "s/HD3/HIS/g" -e "s/HD4/HIS/g" U2H_$i.pdb

10、gzip压缩文件夹内所有文件:gzip  -vc * > md.gz

解压:gzip –d md.gz

9、linux打开图片:  eog命令

8、top 

#按数字“1”,多核监控 

#高亮显示正在运行的进程。“b”打开或者关闭加亮效果,“y”显示加亮或者不显示加亮

#top的默认排序列是%cpu(占用cpu最多的排在最上面),可以用shift+“>”或者“<”来向左或者向右改变排序列

#top –c  #显示完整命令

#top –n 5  #设置更新次数(达到指定次数后自动q)

#top –d 3   #设置更新时间(3秒)

#top –p 42619   #只显示某一个PID的进程信息

#top之后的交互   #l:打开关闭时间信息  m打开关闭内存信息   t打开关闭cpu信息  c显示命令名称还是完整命令

7、ps(process status)    #ps c    #可以查看程序运行状态  如:ssh n19 ps c

6、ls | wc   #统计当前目录下有多少个文件和目录

5、ln 软连接和硬链接 

4、df显示磁盘使用情况,第一列代表文件系统对应的设备文件的路径名(一般是硬盘上的分区),最后一列是挂载点

3、打包与压缩

2、diff比较两个文件的不同

diff [-y] file1  file2    #并排展示不同,|表示有不同,”<”表示少一行

1、which 查看的是可执行文件的位置,whereis(没什么用),locate(查看根目录下文件位置,不怎么用);find(搜索硬盘查询文件名称)

find . -name “[a-z]*[4-9].log”   #从当前目录查找a到z开头4-9结尾加上.log的文件

find . –perm 755   #按照权限来查找

find . –mtime -5   #查找修改时间在5天之内的文件 ps:+5 代表5天之前的文件

find . –type d    #查找所有目录 

find . ! –type d   #查找所有不是目录的文件

find . –size +10M   #大于10M的文件

0、scp在两个linux 主机间复制文件

基本命令格式: scp [可选参数] file_source file_target

从本地复制文件到远程:

scp /home/space/music/1.mp3  root@www.cumt.edu.cn:/home/root/others/music 

从本地复制目录到远程:

scp -r local_folder remote_username@remote_ip:remote_folder 

从远程到本地,只需要后两项互换即可.

复制远程的两个文件夹到本地:

scp -r name@ip:/home/name/um_sampling_0.4_0.3_ok/\{output_xy_0.5ns,output_xy_1ns\} .

复制本地以test开头的文件到远程,远程的端口号为20219:

scp -P 20219 -r test* name@ip:/home/wanglab/intein_MDs_model2

Ps     查看正在后台运行的工作

ctrl + z

可以将一个正在前台执行的命令放到后台,并且暂停

Ctrl + Z

    直接杀掉前台运行的程序

jobs

   查看当前有多少在后台运行的命令

fg

   将后台中的命令调至前台继续运行

   如果后台有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

bg

   将一个在后台暂停的命令,变成继续执行

   如果后台有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

nohup 不挂断地运行命令。

    语法:nohup Command [ Arg … ] [ & ]

   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。

    nohup command > myout.file 2>&1

持续更新……

更基础的内容可以菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值