学习Linux,Shell

学习Linux,Shell

TECHlinuxshellposts

Shell技巧

  • 识别当前运行的是哪种shell
1.$ echo $0
2.-zsh

终端里删字符

  • backspace
  • delete
  • ctrl+h
  • ctrl+w 删除一个单词
  • ctrl+u 删除行

搜索命令

1.$ apropos keyword

识别文件内容

1.$ file 100k.jpg
2.100k.jpg: JPEG image data, JFIF standard 1.02
Share

mtr: unable to get raw sockets

mtr: unable to get raw sockets

TECHpostsMachomebrewmtr

用homebrew安装mtr 后有段提示:mtr requires root privileges so you will need to run sudo mtr.
You should be certain that you trust any software you grant root privileges.

所以要吧mtr改成root属主并且激活suid位

1.  $ sudo chown root:wheel /usr/local/Cellar/mtr/0.86/sbin/mtr
2. $ sudo chmod u+s /usr/local/Cellar/mtr/0.86/sbin/mtr
Share

CQL Syntax

This document describes the Cassandra Query Language (CQL) version 3. CQL v3 is not backward compatible with CQL v2 and differs from it in numerous ways. Note that this document describes the last version of the languages. However, the changes section provides the diff between the different versions of CQL v3.

CQL v3 offers a model very close to SQL in the sense that data is put in tables containing rows of columns. For that reason, when used in this document, these terms (tables, rows and columns) have the same definition than they have in SQL. But please note that as such, they do not refer to the concept of rows and columns found in the internal implementation of Cassandra and in the thrift and CQL v2 API.

来源: CQL

Share

Virtual Environments — The Hitchhiker’s Guide to Python

Virtual Environments

A Virtual Environment is a tool to keep the dependencies required by different projects in separate places, by creating virtual Python environments for them. It solves the “Project X depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages directory clean and manageable.

For example, you can work on a project which requires Django 1.3 while also maintaining a project which requires Django 1.0.

virtualenv

virtualenv is a tool to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the packages that a Python project would need.

Install virtualenv via pip:

$ pip install virtualenv

Basic Usage

  1. Create a virtual environment for a project:

$ cd my_project_folder
$ virtualenv venv

virtualenv venv will create a folder in the current directory which will contain the Python executable files, and a copy of the pip library which you can use to install other packages. The name of the virtual environment (in this case, it was venv) can be anything; omitting the name will place the files in the current directory instead.

This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named venv.

You can also use a Python interpreter of your choice.

$ virtualenv -p /usr/bin/python2.7 venv

This will use the Python interpreter in /usr/bin/python2.7

  1. To begin using the virtual environment, it needs to be activated:

$ source venv/bin/activate

The name of the current virtual environment will now appear on the left of the prompt (e.g. (venv)Your-Computer:your_project UserName$) to let you know that it’s active. From now on, any package that you install using pip will be placed in the venv folder, isolated from the global Python installation.

Install packages as usual, for example:

$ pip install requests

  1. If you are done working in the virtual environment for the moment, you can deactivate it:

$ deactivate

This puts you back to the system’s default Python interpreter with all its installed libraries.

To delete a virtual environment, just delete its folder. (In this case, it would be rm -rf venv.)

After a while, though, you might end up with a lot of virtual environments littered across your system, and its possible you’ll forget their names or where they were placed.

Other Notes

Running virtualenv with the option <b–<no-site-packages will not include the packages that are installed globally. This can be useful for keeping the package list clean in case it needs to be accessed later. [This is the default behavior for virtualenv 1.7 and later.]

In order to keep your environment consistent, it’s a good idea to “freeze” the current state of the environment packages. To do this, run

$ pip freeze > requirements.txt

This will create a requirements.txt file, which contains a simple list of all the packages in the current environment, and their respective versions. You can see the list of installed packages without the requirements format using “pip list”. Later it will be easier for a different developer (or you, if you need to re-create the environment) to install the same packages using the same versions:

$ pip install -r requirements.txt

This can help ensure consistency across installations, across deployments, and across developers.

Lastly, remember to exclude the virtual environment folder from source control by adding it to the ignore list.

virtualenvwrapper

virtualenvwrapper provides a set of commands which makes working with virtual environments much more pleasant. It also places all your virtual environments in one place.

To install (make sure virtualenv is already installed):

$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh

(Full virtualenvwrapper install instructions.)

For Windows, you can use the virtualenvwrapper-win.

To install (make sure virtualenv is already installed):

$ pip install virtualenvwrapper-win

In Windows, the default path for WORKON_HOME is %USERPROFILE%Envs

Basic Usage

  1. Create a virtual environment:

$ mkvirtualenv venv

This creates the venv folder inside ~/Envs.

  1. Work on a virtual environment:

$ workon venv

Alternatively, you can make a project, which creates the virtual environment, and also a project directory inside $PROJECT_HOME, which is cd -ed into when you workon myproject.

$ mkproject myproject

virtualenvwrapper provides tab-completion on environment names. It really helps when you have a lot of environments and have trouble remembering their names.

workon also deactivates whatever environment you are currently in, so you can quickly switch between environments.

  1. Deactivating is still the same:

$ deactivate

  1. To delete:

$ rmvirtualenv venv

Other useful commands

lsvirtualenv

List all of the environments.

cdvirtualenv

Navigate into the directory of the currently activated virtual environment, so you can browse its site-packages, for example.

cdsitepackages

Like the above, but directly into site-packages directory.

lssitepackages

Shows contents of site-packages directory.

Full list of virtualenvwrapper commands.

virtualenv-burrito

With virtualenv-burrito, you can have a working virtualenv + virtualenvwrapper environment in a single command.

autoenv

When you cd into a directory containing a .env, autoenv automagically activates the environment.

Install it on Mac OS X using brew:

$ brew install autoenv

And on Linux:

$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
$ echo ‘source ~/.autoenv/activate.sh’ >> ~/.bashrc

Share

pavilion dv4-1103tx bios刷黑屏后。。。

网上找了很多,大致方向是对的 断电 然后win+b
不过找bios 文件确实。。。

官网上找的驱动都太新了!!
好不容易淘到了可行的
30F7.BIN

下载解压到U盘(fat格式的空盘)去电池断电源,按住win+b ,插电源,开power,松开win+b。待机器自动断电后拔掉U盘,开机就好。

Share

Smokeping 发送告警邮件

smokeping 默认用sendmail发邮件,这样不好。

改了一下源码 这样可以使用 我QQ的smtp server来发告警邮件了

首先需要安装 Authen::SASL 模块(auth 需要用的) 我用CPAN装的,不细说了

修改 smokeping/lib/Smokeping.pm


#头上加

use Authen::SASL;

#定位到sendmail函数,改成下面这样

sub sendmail ($$$){
    my $from = shift;
    my $to = shift;
    $to = $1 if $to =~ /<(.*?)>/;
    my $body = shift;
    if ($cfg->{General}{mailhost} and
        my $smtp = Net::SMTP->new([split /\s*,\s*/, $cfg->{General}{mailhost}],Timeout=>5) ){
        $smtp->auth(split(/\s*,\s*/, $cfg->{General}{mailusr}),split(/\s*,\s*/, $cfg->{General}{mailpwd}));
        $smtp->mail($from);
        $smtp->to(split(/\s*,\s*/, $to));
        $smtp->data();
        $smtp->datasend($body);
        $smtp->dataend();
        $smtp->quit;
    } elsif ($cfg->{General}{sendmail} or -x "/usr/lib/sendmail"){
        open (M, "|-") || exec (($cfg->{General}{sendmail} || "/usr/lib/sendmail"),"-f",$from,$to);
        print M $body;
        close M;
    } else {
        warn "ERROR: not sending mail to $to, as all methodes failed\n";
    }
}

#找到  '_vars =>' ,把 mailusr mailpwd  加进去。不然不能启动哦!General configuration values valid for the whole SmokePing setup.

DOC
_vars =>
[ qw(owner imgcache imgurl datadir dyndir pagedir piddir sendmail offset

smokemail cgiurl mailhost mailusr mailpwd snpphost contact display_name

syslogfacility syslogpriority concurrentprobes changeprocessnames tmail

changecgiprogramname linkstyle precreateperms ) ],

然后修改配置文件
/etc/config

mailhost = smtp.qq.com
mailusr = noreply@qq.com
mailpwd = xxxxxxxxx
Share