一些有用的Linux命令
文章目录
- 以sudo运行上条命令
sudo !!
(两个感叹号其实是bash的一个特性,称为时间引用符,引用前一个命令,参考history命令) 输入命令后发现忘记sudo后可以使用Ctrl+p和Ctrl+a快速输入sudo命令 - 以HTTp方式共享当前文件夹的文件:
python -m SimpleHTTPServer(启用Python的SimpleHTTPServer模块,简单的跨平台传文件的方法,命令执行后将在本机8000端口开放HTTP服务,打开http://ip:8000即打开一个目录列表,点击即可下载)
在以普通用户打开的VIM当中保存一个ROOT用户文件
:w !sudo tee %(命令:w!{cmd}
,让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入) #tee是一个把stdin保存到文件的小工具;%是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径切换回上一个目录
cd -
(cd $OLDPWD命令的缩写,bash的固定变量$OLDPWD总保存着之前一个目录的路径)替换上一个命令中的一个短语
\^foo\^bar\^
(又是一个事件引用符(even designator),提高效率,但在脚本中用这个方法可能花间很多;原始命令:!!:s/foo/bar/)快速备份一个文件
cp filename{,.bak}
#大括号在bash里面是一个排列的意义免密码SSH登录主机
1 2 3 4 5 6
ssh-copy-id remote-machine(这个命令将当前用户的公钥写入到远程主机的~/.ssh/authorized_keys内;前提是你当前用户有生成的公钥,默认是没有的,先执行ssh-keygen生成当前用户公钥) #ssh-keygen生成公钥: (1)your-machine$scp ~/.ssh/identity.pub remote-machine: (2)your-machine$ssh remote machine (3)remote-machine$cat identity.pub >> ~/.ssh/authorized_keys #如果想删除远程主机上的密钥,直接打开authorized_keys,搜索你的用户名,删除就可。
抓取linux桌面的视频
ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
command (会打开一个指定的编辑器,里面是你刚刚输入的命令) #如果你喜欢别的编辑器,可以在~/.bashrc里面放上比如export EDICTOR=nano的命令;另外一个修改命令的方法是使用fc命令(Fix Command)
清空或创建一个文件
\>file.txt
用ssh创建端口转发通道
1 2 3
ssh -N -L2001:remotehost:80 user@somemachine(开启2001端口,对本机2001端口的请求通过some machine作为跳板,转到remote host的80端口上,在使用时注意对象的转换,比较抽象) e.g.:ssh -f -N -L 0.0.0.0:443:twitter.com:443 shell.cjb.net ssh -f -N -L 0.0.0.0:twitter.com:80 shell.cjb.net
重置终端 reset
在午夜的时候执行某命令
echo cmd | at midnighe
(at这个组件,通常跟cron相提并论,不过at主要用于定时一次性任务,而core定时周期性任务,at的参数比较人性化)远程传送麦克风语音
dd if=/dev/dsp | ssh username@host dd of=/dev/dsp(事项一个喊话器的功能) #/dev/dsp是linux下声卡的文件映射(Digital Signal Proccessor)
映射一个内存目录
mount -t tmpfs -o size=1024m tmpfs /mnt/ram
(这个命令开了一块1G内存来当前目录用)用DIFF对比远程文件跟本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -(-指从stdin读入)
查看系统中占用端口的进程
netstat -thlnp
-t:显示tcp连接信息 -u:显示udp连接信息 -l:显示监听状态的端口 -n:直接显示ip,不做名称转换 -p:显示相应进程pid及名称运行前一个shell命令,同时用“bar”替换掉命令行中的每一个“foo”
!!:gs/foo/bar(gs表示执行)***
实时某个目录下查看最新改动过的文件
watch -d -n 1 'df; ls -FIAt/path'(watch是实时监控工具)
通过ssh挂载远程主机上的文件夹
sshfs name@server:/path/to/folder /path/to/mount/point
#(SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel 作 Proxy 用,远程传输文件等等。而这里我想要介绍另外一个功能,那就是结合 sshfs 这个工具可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,这样我们可以不必使用 scp 工具就可以做到直接复制及删除远程主机的文件了,就像操作本地磁盘一样方便。) 前提是你需要安装fuse及sshfs这两个软件。 卸载的话使用fusermount命令fusermount -u /path/to/mount/point
通过dns来读取wikipedia的词条:
***:dig +short txt <keyword>.wp.dg.cx
用 wget的递归方式下载整个网站
清屏 ctrl+l
用telnet看片
telnet towel.blinkenlights.nl
显示消耗内存最多的10个运行中的进程,以内存使用量排序
ps aux | sort -nk +4 | tail
执行一条命令但不保存到history中
<space> command
赋值最后使用的命令中的参数
alt + . (or ESC + .)
(只能用于工作中于shell的emacs编辑模式)