Zexian Li

Ubuntu杂记

2020-09-17 · 7 min read

zip压缩和解压

-q 安静模式
-r 递归处理
压缩 例如在/home/lizexian路径下压缩hello这个文件夹

cd /home/lizexian
zip -q -r hello.zip hello

解压缩 unzip -qq hello.zip

Ubuntu在当前目录及子目录寻找文件

以检索所有xml文件为例:

sudo find | grep -i .*[.]xml

在检索指令grep中, -i表示忽略大小写, .* 两个组合表示匹配任意字符,[.]表示xml前强制匹配.
在特定路径查找特定名称的文件可如下例:

find /opt/tiger -name 'xgb.mode*l' -print`

Ubuntu查看文件夹内文件数量

以下所称“文件”是目录、链接、设备文件等的总称。
查看当前目录下文件数量(不包含子目录中的文件),也就是ls指令后弹出的文件数量:

ls -l | grep "-" | wc -l

查看当前目录下文件数量(包含子目录中的文件):

ls -lR | grep "-" | wc -l

查看当前目录内的目录数量(不包含子目录中的目录):

ls -l | grep "^d" | wc -l

查看当前目录内的目录数量(包含子目录中的目录):

ls -lR | grep "^d" | wc -l

查看以'GUGU'开头的目录下全部文件的数量:

ls -lR GUGU*/ | grep "-" | wc -l

其中,ls -l表示以长列表输出指定目录下的信息,grep是一种文本搜索工具,"-"代表文件,"d"代表目录,wc -l表示统计输出信息的行数。

查看进程

我们常使用用ps查看进程,具体方法有如下两种:

ps -ef
ps -aux

注意,当进程较多时,我们可以对进程名进行搜索以快速定位:
以进程test.py为例,具体方法有如下两种:

ps -ef | grep test
pgrep test

杀死进程

在查看进程得到进程的编号(PID)后,我们可以使用如下指令杀死进程:

kill -s 9 PID-number

其中9表示强制结束进程。但有时会报错,可以用如下指令杀死进程:

kill -9 PID-number

清华源pip

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

pandas读取csv表

主要要注意的:sep,header,

指定表头的行数 默认为0 可以为其他值 没表头就写header=None 读特定的行
data = pd.read_csv('nn_data_additional.csv', sep=',', header=None, usercols=['a','b'])

指定新表头
csvframe = pd.read_csv("testcsv_02.csv",names=['white','red','blue','green','animal'])

读取某一行
print(df.iloc[0])
读取某一列
print(df.iloc[:, 10])
使用行的平均值 补充某列的缺失值

把ave_time这列的缺失值进进行填充,填充的方法是按这一列的平均值进行填充
aveTime=df['ave_time'].mean()
df2=df.fillna(aveTime)
arrs=col.values 获取对应的值

写表
frame = pd.DataFrame([[0,1,2,3],[4,5,6,7],[8,np.NaN,10,11],[12,13,14,15]], columns=['ball', 'pen', 'pencil', 'paper'])
print(frame)
index 写不写左侧的索引 header 写不写表头 nan显示成什么
frame.to_csv("testcsv_04.csv", index=False, header=False, na_rep='0')

可以存表成tsv文件,即用\t分隔的,避免了文件中有逗号的情况,但是要注意空格和\t的区别,可以在vscode看出来是点还是箭头,甚至还可以复制其他的tab到特定位置

如何进docker内部调试

1 正常起trail,如下更改后docker默认sleep状态,但GPU空闲过久会被杀
SCM:du/envir/conf --- /opt/tiger/envir_conf --- 1.0.0.1
入口:/opt/tiger/envir_conf/entri.sh
2 起trail时调debug模式,会允许GPU闲置很久,但每人只允许开两个debug模式的trail

.gitignore无法生效

git rm -r --cached .
git add .
git commit -m 'update .gitignore'
其他都博客都是千篇一律的使用了上面的命令
我试了还是不行,然后我把要忽略的文件直接删了,以为这样总可以了吧,竟然还是不行。

我推测应该是,一开始我commit了要忽略的文件,虽然删了文件,但是commit记录里还有原来的文件,然后百度到了删除commit记录的命令。

git reset --mixed 17ef4b4a22c975b4cad7cc4342a7d7a89ba73789
用这行命令回退到 带有忽略文件的commit的上一个commit 然后再重新commit就行了。

git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令慎用!

容器安装tmux

sudo chmod 1777 /tmp
sudo apt update
sudo apt install tmux

查看文件行数

wc -l file

Mac将pdf转换为裁剪边的eps

安装xpdf epstool,使用语句转换
brew install xpdf
brew install epstool
pdftops -eps a.pdf a.eps
epstool --copy --bbox a.eps b.eps

查看文件数量

查看当前目录下的文件数量(不包含子目录中的文件)

查看当前目录下的文件数量(包含子目录中的文件)

ls -lR|grep "^-"| wc -l

磁盘容量检测

查看磁盘剩余空间df -hl
查看每个根路径的分区大小df -h
返回目录大小du -sh FOLDER_NAME
返回文件夹内文件数du -sm FOLDER_NAME

下载google drive文件

假设下载链接如下所示:
https://drive.google.com/uc?id=1eQtZIpmtVM0-JDv_2nx3xMuGKjA1beLF&export=download,则对应的FileID为1eQtZIpmtVM0-JDv_2nx3xMuGKjA1beLF
则设置好将要保存的filename,替换两次对应的fileid,即可使用下述口令进行下载:

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt

可以通过查杀的小文件可以便捷一点:

wget --no-check-certificate ‘https://docs.google.com/uc?export=download&id=FILEID’ -O FILENAME
Bad decisions make good stories.