整理那些用于基本生存的shell命令

变量定义相关的

export

export可以将临时定义的变量定义成环境变量 比如在一个shell中临时定义的一个变量就没法在新打开的那个shell中继续再使用 使用export之后 这个变量就变成了环境变量 就可以在子进程中(新开的shell貌似不是子进程)再进行使用了

echo

用于显示环境变量 echo $变量名 可以显示出具体的变量来

unset 变量名

这个用于取消刚才已经设置好的变量 unset之后 刚才已经定义好的变量就不在了

文件处理相关

scp

这个在配置各种平台的时候 文件移动常常用到

cp

是在同一台linux上互相拷贝文件 而scp是在不同linux系统之间互相拷贝文件

scp

本地文件的路径 用户名@远程服务器的ip:远程服务器上的路径
如果要通过特殊的端口登录 可采用以下方式:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

-v 用来显示具体的进度
-p 选择被占用的端口
-r 拷贝目录?

tar

可以用来压缩或者解压缩 具体的命令比较多 可以参考鸟叔p254
一般对tar.gz文件解压的时候 采用-xzvf参数 –x 表示使用解打包或解压缩的功能 –z表示通过gzip的方式进行解压 此时文件后缀最好是*.tar.gz –v表示在解压的过程中将处理的文件名显示出来 –f表示 filename后面接的是实际要进行处理的文件名
tar 用于打包的时候要这样使用
tar -czvf 打包之后所生成的文件名 需要打包的文件或目录
具体命令含义可以参考鸟叔p254
–z是打包成.tar.gz -j是打包成.tar.bz2

cp

复制文件或目录 cp [参数] 源文件 目标文件
重要参数 –a(相当于-pdr组合在了一起) 复制过去之后文件属性的参数也是一样的 默认情况 属性是不一样的

mv

移动文件或者重命名

rm

删除文件或目录
-f 强制删除 –r递归删除 –i产生交互的信息
注意删除文件的时候一定要谨慎使用-rf的参数

ssh

这个是使用security shell远程登录其他的终端

查看磁盘的使用情况 处理空间不足的问题

df

查询目录的挂在情况 以及使用到的文件系统 以及基本的可用空间

du

查询到了哪个挂载的目录比较大的话,进入对应的那个挂载的目录,之后使用 du -ah --max-depth=1 . 可以查询当前目录下每一个子目录的大小。

进程相关

ps

查看当前进程 具体参数较多 常用的有
ps –af查看全部的进程并且以全格式的方式显示出来

service start/status/restart

service –status-all 这个命令可以列出全部的可以用供求service来使用的脚本
service命令可以使用的启动脚本或者服务 都要是在/etc/init.d文件夹下已经存在的?

pgrep

pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行
-l 列出程序名和进程ID;
-o 进程起始的ID;
-n 进程终止的ID;

od命令

这个命令可以用来查看某个文件中的详细信息,主要是可以根据不同的进制将每个字节的信息显示出来,文件内容可以通过管道的方式传过来,也可以直接跟在后面用od打开。
注意几个具体的参数,w是表示每列可显示的字符数,d 表示十进制 o 表示八进制(系统默认值)x 表示十六进制 n表示不打印位移值

网络相关(使用vi那些的?)

查看端口的占用情况

lsof -i tcp:port

lsof可以列出系统当前所打开的文件

nc –zv hostip 80

这个命令可以检查以hostip主机的80端口 看是否这个端口已经被打开
比如 nc –zv localhost 80
这个可以查看主机的80端口是否正常被打开

重启网络服务(ubuntu)

sudo /etc/init.d/networking restart
service network-manager restart

快捷键

ctrl+D 用户注销 并且按两下会关闭terminal
ctrl+alt 弹出新的terminal(in ubuntu)
ctrl+shift+T 在同一个大的Terminal窗口中生成新的小的窗口 这样切换比较方便 看起来比较好
shift+ctrl+v 将剪贴板中的内容粘贴到terminal中

其它

关于 点好 空格 文件名
可以参考这个
http://www.aliog.com/7903.html

还是执行的意思,只不过不用改变文件的权限,root用户也可以这样操作。

shell脚本中的一些技巧

Here document
http://blog.csdn.net/wangjunjun2008/article/details/24351045

关于脚本中参数的传递问题

脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

输出格式比较好的json信息

echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool

找固定后缀的文件

find -name .pyc .
递归查找
find -name '
.pyc'

posted @ 2015-05-09 16:13  hessen  阅读(431)  评论(0编辑  收藏  举报