linux系统相关1

2024-07-30 09:55:30 浏览数 (3)

linux命令行查看每个文件的空间大小

在Linux命令行中,可以使用du命令来查看文件或目录的磁盘使用情况。如果你想查看当前目录下每个文件的大小,可以使用以下命令:

代码语言:bash复制
du -h --max-depth=1

这里的参数解释如下:

-h:以人类可读的格式显示(例如,KB、MB、GB)。

--max-depth=1:限制显示目录树的深度。设置为1表示只显示当前目录下的文件和子目录的大小。

如果你只想查看当前目录下文件的大小,并按大小排序,可以使用以下命令:

代码语言:bash复制
du -h --max-depth=1 | sort -hr

其中,sort -hr将按人类可读的数字大小对结果进行降序排序。

如果你想查看特定文件或目录的大小,可以直接指定文件或目录名:

代码语言:bash复制
du -h filename

替换filename为你想查看大小的文件名。

配置静态ip

1.修改对应系统的配置文件

在本服务器中,文件路径对应如下etc/netplan/01-network-manager-all.yaml

可能要root权限,命令如下:sudo su

输入账户密码即可

输入命令打开文件:sudo vim /etc/netplan/01-network-manager-all.yaml

编辑文件i

文件名看之前ipconfig -a显示ip地址的那个

注意:参数修改有空格

保存修改并退出:wq

应用修改的文件:sudo netplan apply

然后输入ifconfig -a就可以查看ip地址是否修改啦

参考博客1、博客2

linux系统下文件的权限设置

代码语言:bash复制
    #递归修改文件权限
    chmod -R 777 文件名|目录名
    # 所有用户都设置最高权限

用户组的问题:

参考链接

ncview

在linux系统下查看nc文件可以使用ncview

安装

方法1:anaconda安装(仅支持Linux系统)conda install -c eumetsat ncview

方法2:sudo apt install(仅支持Ubuntu系统,默认安装版本为ncview2.1.8)sudo apt-get install ncview

方法3:编译安装(可按照网络版本下载自己所需的ncview版本),值得注意的是netcdf4版本要求更高。可参考资料

ncview简易运行

代码语言:bash复制
    ncview  ".nc文件名/nc文件位置"

相关知识

简要说明

说明2

命令行界面的#与$

符号

意义

代表root管理员权限

$

代表普通用户

linux命令大全

一、登录与注销

代码语言:bash复制
1)	sudo useradd lilei  //添加用户 (不能被立即使用,需设置密码     sudo passwd lilei)  
2)	sudo adduser lilei  //添加用户
    su root   切换为root用户
3)	login  //登录或切换用户
4)	logout //注销用户(命令行)  exit(shell-退出控制台)
5)	shutdown -h 10  //10分钟后自动关机	shutdown -c  //取消
6)	halt(root用户)  //关闭所有进程后自动关机
7)	poweroff //同上
8)	shutdown -r 10 //十分钟后自动重启
9)	init 6  //重启 (0-停机,1-单用户,2-多用户,3-完全多用户,4-图形化,5-安全模式,6-重启)
10)	reboot  //重启

二、目录与文件

注:路径要用/,不要用

./表示当前目录,./ 一般需要和其他文件夹或者文件结合使用,指代当前目录下的东西。执行文件程序时需要./,因为该程序不在环境变量中。

目录绝对路径是以 / 开头的,/ 表示根目录。

若想要进入当前目录的下一级某个目录,可以使用 cd 跟上相对路径,这里以切换至 usr 目录为例:

cd usr/cd ./usr

代码语言:bash复制
1)	pwd   //显示当前工作目录
2)	mkdir mydir  //创建工作目录
3)	cd mydir  //更改工作目录
cd ..     //转到上层目录
~    表示home
cd ~    跳到自己的home目录
4)	rmdir mydir //删除工作目录
5)	touch myfile  //创建文件
6)	mv myfile mydir  //移动目录或文件
7)	cp myfile myfir  //复制目录或文件(cp -r 代表如果是文件夹就会将其子目录的文件也会复制进去)
8)	rm -rf mydir  //删除目录或文件
9)	ls -l myfile  //查看文件最后被编辑时间
10)	ls -lu myfile //查看文件最后被访问时间
11)	touch -at 01011212 myfile  //修改文件最后被访问时间
12)	ls //列出所有文件和目录
13)	ls -a //查看所有文件
14)	ls -i //显示文件索引节点号
15)	ls -l //详细显示
16)	ls -m //以逗号分隔
17)	sudo apt-get install tree
18)	tree -l//以树状图列出目录内容
19)	tree -a //所有
20)	tree -i //不以阶梯状
21)	tree -s  //列出文件或目录大小
22)	tree -t  //按更改时间
23)	file -b myfile  //显示目录或文件的详细信息
24)	stat myfile  //同上

三、文件内容显示

代码语言:bash复制
1)	cat > myfile  //创建文件并编辑内容(ctrl D结束编辑)
2)	cat -n myfile  //查看文件
3)	chmod [u/g/o/a][ /-/=][r/w/x] myfile  //更改文件权限
    u-user,g-group,o-others,a-all  .    -添加,--删除,=-重置   .
        r-read读(4),w-write写(2),x-execute执行(1)
4)	more myfile  //分页往后显示文件(Space空格)
5)	less myfile  //分页自由显示文件(Page Down / Page Up)
6)	head (-10) myfile  //指定显示文件前若干行(默认前10)
7)	tail (-10) myfile  //指定显示文件后若干行(默认后10)

四、文件内容处理

代码语言:bash复制
1)	sort myfile  //对文件内容进行排序
2)	sort -r myfile  //逆序
3)	uniq myfile  //检查文件中的重复内容
4)	grep (-c)‘a’ myfile  //在文件中查找指定内容 (显示行号)
5)	diff myfile01 myfile02  //对不同文件进行比较
6)	diff3 myfile01 myfile02 myfile03  //三个文件
7)	sdiff myfile01 myfile02  //合并
8)	cmp myfile01 myfile02  //通过字节对不同文件进行比较
9)	comm myfile01 myfile02  //对有序文件进行比较
10)	cut -b(-c)(-d) 2(3) myfile  //对文件内容进行剪切
11)	paste myfile02 myfile01 //对文件内容进行粘贴 02-)01
12)	wc (-参数) myfile  //对文件内容进行统计 (c-字符数,w-单词数,l-行数)

五、压缩

代码语言:bash复制
1)	zip myfile.zip myfile  //压缩
2)	zip -d myfile.zip myfile  //添加
3)	zip -m myfile.zip myfile  //删除
4)	unzip -o myfile.zip  //解压(覆盖)
5)	unzip -n myfile.zip  //解压(不覆盖)
6)	zipinfo myfile.zip  //列出压缩文件信息

六、获取帮助

代码语言:bash复制
1)	man ls  //获取帮助
2)	man -k ls  //不清楚完整名字
3)	whatis ls  //获取帮助
4)	help cd  / cd –help  //获取帮助 -d(简短描述) -s(用法简介)
5)	info who  //获取帮助

七、其他命令

代码语言:bash复制
1)	clear  //清除屏幕信息
2)	echo xx  //显示文本  x=0  echo $x . echo -e $x . echo $(pwd)
3)	date  //显示日期和时间( %y 年   %m 月   %d日)
4)	cal  //显示当前日期  cal -y
5)	ps  //查看当前进程  -A(所有)  U  lilei (用户lilei)
6)	kill -9 2315  //终止某一进程  
7)	ps -ef | grep Jincheng
8)	pkill Jincheng
9)	killall Jincheng
10)	last  //显示最近登录系统的用户信息-6列
11)	history (10) //显示历史指令-默认1000行
    w    //查看用户,当登陆系统用户很多的时候,可以在W后面加上某个用户名,则会查看该用户执行任务的情况
    web  //查看当前登陆到系统的用户及其他信息
    top  //查看cpu使用情况
12)	sudo adduser lilei sudo  //给普通用户赋予root权限
13)	sudo usermod -G sudo lilei  //同上
14)	alias l=’ls’  //定义命令别名
15)	unalias l  //删除别名
16)	alias  //列出别名
17) free  //查看系统运行内存(https://blog.csdn.net/weixin_42832313/article/details/96484017),推荐free -g,以GB为单位显示内存
```bash

八、查看修改文件内容

代码语言:bash复制
# STEP 1: 打开文件

`vi /home/test/method.R`
 ##打开路径“/home/test/”的名称为“method”类型为“.R”的文件,按PgUp或PgDn或箭头查看

# STEP 2: 输入“i”,进入“插入”状态,然后利用方向键定位需要修改的位置,对文档进行修改

# STEP 3: 修改完成之后,按“ESC”退出“插入”状态,然后输入冒号,英文状态的:,然后输入小写的“wq”保存并退出,输入小写的“q”会直接退出不进行修改保存。

九、命令行终端快速退出

有三种方式

1.点击❌号

2.输入exit

3.ctrl d

十、source命令

Linux Source命令及脚本的执行方式解析

当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile

对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。

source命令:

source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。

功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

用法:

source filename 或 . filename

source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。

source filename 与 sh filename 及./filename执行脚本的区别在那里呢?

1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。

2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

举例说明:

1.新建一个test.sh脚本,内容为:A=1

2.然后使其可执行chmod x test.sh

3.运行sh test.sh后,echo $A,显示为空,因为A=1并未传回给当前shell

4.运行./test.sh后,也是一样的效果

5.运行source test.sh 或者 . test.sh,然后echo $A,则会显示1,说明A=1的变量在当前shell中

source激活环境

source activate env_name激活环境与conda activate env_name不同

source activate 可以在shell脚本开头处激活虚拟环境,而用conda activate则提示“CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate.”错误。这点很重要,因为经常需要在脚本中先激活特定的环境,然后在特定环境中执行python脚本。观察下列实例,假设test.sh的代码如下:

代码语言:bash复制
#! /bin/bash
source activate python3.6

命令sh -c “source activate python3.6” 不会对当前shell环境产生影响,因为sh会开启一个子shell,然后在子shell中激活了环境python3.6,然后结束命令退出子shell。

命令sh -c "conda activate python3.6"

相当于在shell脚本开始处,激活环境,可能会报错,解决办法如下面这篇文章

解决方案文章

linux查看进程运行时间

通常我们可能使用top命令查看linux系统下进程的详细信息,但注意在time 下,时间和进程运行的时间明显对不上。

原因

这个time 其实表示的不是进程运行的时间,而是占用cpu的时间。而且这个时间格式从右到左分别是百分之一秒,秒,分钟。所以参考意义不大

解决

ps -p (PID进程号) -o etime解决,比如我想查看3892077进程的运行时间,命令行输入ps -p 3892077 -o etime即可。

上面的结果表示该进程运行了22小时43分55秒,如果结果是13-13:13:26第一个13表示13天。

参考博文1

参考博文2

ps.查看有关进程,例如查看python有关进程ps -ef |grep python,其他比如利用进程名pid查看具体进程也可以利用这个命令,将里面的python换成你对应的pid就行。ps -ef |grep 3892077

linux parallel 命令,Linux 并行处理神器

一般在控制台的命令都是单线程执行,单线程速度太慢了,特别是对于一些嵌套循环来说。使用parallel可以并行计算。

安装

ubuntu系统

sudo apt install parallel

比如下面这个:

代码语言:bash复制
cd /data/remap/remap_t2m

for ((yr=1961;yr<=2022;yr  ))

do 

echo  ${yr}

cdo sellonlatbox,10,35,-35,-11 ERA5LAND_${yr}_tas5_remap.nc /data/PCR-Yellow/era5/M01/ERA5LAND_${yr}_tas5_M01_remap.nc

done

使用parallel改进:

代码语言:bash复制
#!/bin/bash

cd /data/remap/remap_t2m

# 定义函数,用于处理每个年份的任务

process_year() {

yr=$1

echo ${yr}

cdo sellonlatbox,10,34,74,82 ERA5LAND_${yr}_tas5_remap.nc /data/remap/Mask27_39/remap_t2m/M28/ERA5LAND_${yr}_tas5_M28_remap.nc

}

export -f process_year

# 使用parallel命令并行执行任务

parallel process_year ::: {1962..2022}
注意:

一般来说,GNU Parallel 会延迟输出,直到一组命令执行完成。使用 --ungroup,可立刻打印输出已完成部分。(比如echo这种输出)

jobs可以限制并发数,–jobs 0 竟可能多的并行

代码语言:bash复制
# 并行为1,理论上就是5 4 3 2 1 =15 s

time parallel --jobs 1 sleep {}';' echo {} done ::: 5 4 3 1 2

# 并行为0,取决于最慢的那个sleep

time parallel --jobs 0 sleep {}';' echo {} done ::: 5 4 3 1 2

如何查看自己电脑的核心数,输入lscpu,其中的Core(s) per socket就是

参考博客1

参考博客2

colab

介绍

谷歌提供的一个平台,可以运行python代码(LINUX环境),之前弄过在线AI绘画也是在这个平台,免费提供的算力还是挺强的,就是时长不太够。

chromedriver的使用

该平台里面也是有python(我查看了一下默认版本为3.10)的。

安装chrome

相关命令:

获取.deb安装包(针对的是colab的unbuntun系统)

代码语言:bash复制
wget [https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb](https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb)

使用指令

代码语言:bash复制
sudo dpkg -i google-chrome-stable_current_amd64.deb

假如安装失败:可以使用:sudo apt-get install -f (用户的系统上有某个package不满足依赖条件,这个命令就会自动修复,安装程序包所依赖的包。)

终端输入google-chrome启动chrome

查看谷歌浏览器版本

对应命令

代码语言:bash复制
google-chrome --version
在colab代码块里,! 命令相当于在命令行执行命令。

0 人点赞