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
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的代码如下:
#! /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