清除已经删除的软件包:

 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

标签: none

评论已关闭