linux常用命令
清除已经删除的软件包:
sudo apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')
查看磁盘占用最大的包:
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
在已安装的包中查找:
apt list -a --installed pkgname
查看系统发行版:
echo $(. /etc/os-release;echo $ID$VERSION_ID)
安装常用软件(五笔输入法,网络监视器):
sudo apt install ibus-table-wubi bmon git
sudo reboot
# 之后在System Settings -> Text Entry 中添加五笔输入法即可
查看当前所在的工作目录(present working dir):
pwd
下载一个目录下的所有文件:
wget -r -np -R "index.html*" http://aaaa.aaa/aaa/aa
查看数学库的所有对象文件:
ar –t libm.a
查看数学库的所有依赖:
ldd libm.so.6
压缩解压:
c:compress, x:eXtract, f:file, z:Gzip (.tar.gz, tgz), j:Bzip (.tar.bz), J:lzma (.tar.xz)
tar cf dir.tar dir/
tar xf dir.tar
tar cfz dir.tar.gz dir/
tar xfz dir.tar.gz
tar cfj dir.tar.bz2 dir/
tar xfj dir.tar.bz2
tar cfJ dir.tar.xz dir/
tar xfJ dir.tar.xz
gunzip file.gz
gzip file
显示文件信息:
file xxx.txt.gz
screen快捷键
screen
# Ctrl a + ? # 帮助信息
# Ctrl a + d # 脱离session
# Ctrl a + k # 杀死session
# Ctrl a + Esc # 进入Copy模式,可以查看历史记录
screen -ls #查看ID
screen -r $ID # 恢复session
git常用命令
git config --global core.autocrlf true # 防止换行中的^M被commit
git rm --cached `git ls-files -i --exclude-from=.gitignore` # 删除掉所有刚添加进.gitignore里的文件
git rm -r --cached . # 删掉刚添加(git add)的所有文件
# 从所有历史commit中删除文件
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \
--prune-empty --tag-name-filter cat -- --all
git push origin --force --all
# 取消上一次commit
git reset HEAD~
# 第一次提交commit时
git update-ref -d HEAD
git rm --cached -r .
# 开启新branch
git checkout -b $NEW_BRANCH
git push -u origin $NEW_BRANCH
# 查看未提交变更
git diff --cached
# clone一个子目录
git clone --depth 1 --filter=blob:none --no-checkout https://github.com/KupynOrest/DeblurGAN
cd DeblurGAN
git checkout master -- motion_blur
# 处理win和linux换行
git config --global core.autocrlf input # linux
git config --global core.autocrlf true # win
# 不克隆历史commits
git clone xxx --depth=1 ts
ssh
# 免密登陆
cd .ssh
ssh-keygen -t rsa
scp id_rsa.pub USER@HOST:/HOME/.ssh
ssh USER@HOST
cd .ssh
cat id_rsa.pub >> authorized_keys
# ssh隧道,远程jupyter
ssh -N -L PORT_LOCAL:localhost:PORT_SERVER USER@HOST
# ssh反向隧道实现代理共享
ssh -N -R PORT_LOCAL:proxy.website.com:PROXY_PORT USER@HOST
并在HOST上设置环境变量HTTPS_PROXY=127.0.0.1:PORT_LOCAL
# 代理ssh服务器,使用配置文件
# ~/.ssh/config
Host host1
User username1
Hostname www.example.com
Host hpc2
Hostname www.baidu.com
User username2
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p host1
IdentityFile C:\Users\xxx\.ssh\id_rsa
# 不使用配置文件
ssh -J host1 host2
# 同步文件,忽略已下载文件
until rsync -a --ignore-existing /local/directory/ host:/remote/directory/
do
echo Retrying
done
# 在A上通过hotsopt共享socks代理到B
gost-windows-amd64.exe -L=:LOCAL_PORT -F=:SOCKS_PORT #并在B上设置代理服务器为A:LOCAL_PORT
conda环境
conda create --name my-env-name --file requirements.txt --channel default --channel anaconda
conda pack -n my-env-name
记录内存使用日志
top -d 10 -b -o %MEM > mem.log
当剩余内存量小于500MB时,执行命令
while true
do
if [ $(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo) -lt 500000 ]
then
# execute you cmd
fi
sleep 10
done
jack配置
sudo adduser currentuser audio
qjackctl # 在setting/parameters中设置Interface为hw:Generic
如果出现
22:29:06.211 XRUN callback (16).
Tue Jul 20 22:29:06 2021: ERROR: JackEngine::XRun: client = SuperCollider was not finished, state = Running
Tue Jul 20 22:29:06 2021: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
就把Frames/Period调大或把Sample Rate调大
使用cgroup限制进程xxx使用的内存
cd /sys/fs/cgroup/memory
sudo mkdir xxx-cgroup
cd xxx-cgroup
sudo su
echo 1000000000 > memory.limit_in_bytes
for pid in $(pgrep xxx\_.*)
do
echo $pid >> tasks
done
当管道遇到单行数字pattern时停止管道等待用户回车
while read line
do
echo $line
if [[ $line =~ ^[0-9]$ ]]
then
read -s <&1
#sleep 2
fi
done < /dev/stdin
常用环境变量
export PYTHONPYCACHEPREFIX=~/.cache # 便于之后清理pycache
评论已关闭