记录一些行命令,my cheat sheet for commands

平时经常上网搜索各种行命令如何使用,有时候比较凌乱。熟能生巧,好记性不如烂笔头。

文章目录

  • Linux
  • Vim
  • Git
    • 一个关于 Git&Github 的 push permission denied error
  • 其他


Linux

命令分为5种:内置命令,外部命令,关键词,别名,和函数。通过 type <命令> 可以查看命令的类型。内置命令是Linux默认的Bash的builtin命令,可以通过运行"enable"命令查看;外部命令是系统的软件功能,随着不同的Linux发行版,而有所区别,比如关于下载软件:在Centos里面是yum,在Ubuntu里面是apt-get,外部命令还包括用户自己写的程序和脚本。

Linux 命令大全
当然还可以 man <命令>,或者<命令> - -help 来寻求帮助

命令 描述
Ctrl+z 前台程序suspend(停止运行,放到后台,没有被 kill,依然健在)
jobs -l 查看后台的进程(job),包括停止的和运行的,-l显示PID
fg %n 把后台第n个停止的 job 转移到台运行,n=1,2…来自 jobs 命令运行的显示结果,全称是 foreground
bg %n 把后台第n个停止的 job 转移到台运行,n=1,2…来自 jobs 命令运行的显示结果,全称是 background
command & 直接在后台运行 command,比如python server.py &
netstat -atuep All+Tcp+Udp+Extend+Program,查看在监听TCP和UDP的程序,它们的端口号进程ID号是什么
tree -L 2 型结构显示目录,Level=2,只显示2层
du -h 当前目录下的目录以及子目录的空间大小,Disk Usage, Human-readable
top, f, R 对top命令显示的系统信息进行各种排序,然后会有提示信息,告诉你如何排序;R代表反向排序
pwd -P 查看物理(Physical)路径;pwd不带参数的话,默认是pwd -L,查看的是逻辑路径
su - bob Switch User 切换到bob账户,"-" 表示切换环境变量,不加上"-"就不切换环境变量
diff file1 file2 比较两个文件。如果是比较文本文件,比较结果中的a=add, c=change,d=delete
dos2unix file.txt 把windows里面的文本转换为linux里面的文本(\r\n --> \n,每行少一个字符)。unix2dos命令反之亦然。
htop 和top相比,可以显示各个core的使用率
命令 描述
sudo useradd -d /home/bob -m -s /bin/bash bob 创建新用户bob,-d设置home目录,-m新建,-s设置默认shell
sudo passwd bob 给新建用户bob设置密码
sudo usermod -a -G sudo bob 给用户bob放到sudo用户组,赋予bob用户sudo权限
alias ll=‘ls -lh - -color=auto’ 在 ~/.bashrc 里面设置"ll"alias 命令
ssh [email protected] -p 1234 ssh远程登陆到机器1.2.3.4,用户名为user,端口为1234,默认22
tar -xzf filename.tar.gz 解压,x提取文档eXtract archive,z指示tar.gz压缩算法,f表示文件名
tar -czf filename.tar.gz 加压,c建立档案Create archive,z指示tar.gz压缩算法,f表示文件名
nohup command & no hangup,在后台不挂起一直运行command,比如ssh断开之后,可继续运行
watch -n 0.5 nvidia-smi 监视NVIDIA显卡,每隔0.5秒刷新
scp /path1/file [email protected]:/path2/ secure copy本地file到另外一台机器的path2目录下,-r复制目录
ssh-copy-id username@ip-address 把本地的ssh公钥复制到远端的机器上
ps -efj 查看进程,父进程,爷爷进程
tail -f log 动态更新日志文件log
命令 描述
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME] 产生私钥和公钥
ncrack -p 22 --user USER --pass PASS -iL FILE -gto=12s Network authentication cracking tool
parallel-ssh -h IP_FILE -o OUT_FILE -l USER -i “COMMAND” Linux’s parallel ssh program
常见环境变量 (不要随意更改) 描述
PATH 搜索路径,这里存放则所有程序
LD_LIBRARY_PATH 环境变量,用于指定查找共享库(libxxx.so)
HOME HOME目录
PS1 命令提示词,比如 caitao@centOS:~ $
PWD 当前目录
HISTSIZE 输入history,显示多少条历史记录
HISTFILESIZE $HISTFILE文件里面保存多少行历史记录

Vim

Vim总结

命令 描述
yy 复制一行,相当于Ctrl+c;如果复制2行,则2yy;以此类推;y的全称是Yank,猛地一拉
p 粘贴,相当于Ctrl+v。粘贴到当前光标这一行的下一行,当前光标这一字符的下一个字符(有点反人类)
x 剪切当前光标所在的字符
dd 剪切一行,相当于Ctrl+x;如果剪切2行,则2dd;以此类推
dw 剪切光标之后该单词剩余的部分,Delete Word
u 撤销,Undo,相当于Ctrl+z
ngg 跳转到第n行,比如100gg为跳转到第100行
.vimrc 描述
set tabstop=4 tab长度设置为4个空格,默认情况是8个空格(反人类)

Git

Git 总结
Git 参考
.gitconfig 案例

命令 描述
git pull --allow-unrelated-histories 本地init一个项目,GitHub已有项目或者new一个带有gitignore,readme的项目。此时本地和GitHub没有任何重合的history。此命令可以强行合并本地和GitHub

一个关于 Git&Github 的 push permission denied error

remote: Permission denied
图:一个蛋疼的error:使用的电脑是我导师的一个台式机,"benmyb"是我一个学弟,他曾经在这个台式机上面使用过Git,估计他把台式机的公钥绑定到了他的Github账户里面去了。为什么 permission denied,github push error permission denied,关于remote: Permission to xxx.git denied to yyy 问题

我七搞八搞,最终解决了,解决方案如下:

  1. Connecting to GitHub with ssh
  2. 把remote的url从https改为ssh
图:Git的基础用法,引自[marklodato的博客](http://marklodato.github.io/visual-git-guide/index-en.html#basic-usage)

其他

命令 描述
python -m SimpleHTTPServer 3333 在浏览器可以访问地址 localhost:3333,访问的是当前目录,此命令有点神奇

Last update: 2019/11/4

你可能感兴趣的:(其它)