Linux/Unix 前后台命令切换

Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行。比如一个需要长时间运行的命令,我们就希望把它放入后台,这样就不会阻塞当前的操作;而一些服务型的命令进程我们则希望能把它们长期运行于后台。

进程前后台操作用到以下命令或按键:

Ctrl+C

终止并退出前台命令的执行,回到SHELL

Continue reading

解决安装SSL后重启apache需要输入密码的困扰

第一种方法(我就用这个):

1.  vi /etc/apache2/mods-available/ssl.conf

2.  注释SSLPassPhraseDialog  builtin,在后面加上SSLPassPhraseDialog exec:/etc/apache2/ssl/ssl_pass.sh

3.  vi /etc/apache2/ssl/ssl_pass.sh

4.  输入

     #!/bin/sh
    echo “你的ssl证书密码

5.  chmod +x /etc/apache2/ssl/ssl_pass.sh

6.  /etc/init.d/apache2 restart

这样就直接重启apache了,不需要再每次都输入恼人的证书密码

第二种方法(我没试验过,不针对unbuntu的):

1:去掉/usr/local/bin/apachectl startssl启动的pass phrase,用空pass phrase启动apache
(while preserving the original file):
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
确认server.key 文件为root可读
$ chmod 400 server.key

40 个很有用的 Mac OS X Shell 脚本和终端命令

这里有一堆的 Mac OS X 下的终端命令,我将这些命令进行了简单的分类,这里很多命令在其他系统(Windows、Linux)一样有效,特别是 Linux/Unix。希望这些命令对你有帮助。

系统

重启 Mac OS X:

1shutdown – r now

关闭 Mac OS X:

1shutdown now

电源管理/省电

获取当前电源管理设置的信息

1pmset -g

设置显示器无活动15分钟后关闭

1sudo pmset displaysleep 15

让计算机在无活动30分钟后休眠

1sudo pmset sleep 30

OS X 外观

禁用仪表盘(别忘了将仪表盘 Dock 图标拖动出来)

Continue reading

debian squeeze升级nginx到最新版

本文是给懒人没写的一个傻瓜式的nginx无缝升级教程,看题目就知道这个方法不是通用的~

首先,写下升级前提,当初通过debian squee官方源apt-get方式安装的nginx版本为0.7.6的版本,如果是自己下载的源文件编译的升级起来反倒容易了,只要用相同的参数把新版本再编译一遍就是了。当然,官方源安装的也可以这么干,我看网上就有不少介绍这种方法的帖子。但是,这里介绍一种更加简单的方法。

1.先看nginx版本:

#/usr/sbin/nginx –V

其实,这个时候它就会把当初编译时用的参数也显示出来了。

2.添加nginx源:

#vi /etc/apt/sources.list

添加以下源

deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx 

保存好了之后执行下apt-get update,这时候可能会报错,提示说key无效神马的,可以通过以下方法添加key来解决:

运行apt-key update会告诉你目前有的key,以下是添加的方法。

gpg --keyserver pgpkeys.mit.edu --recv-keys  9AA38DCD55BE302B && apt-key add /root/.gnupg/pubring.gpg

其中:9AA38DCD55BE302B 就是要添加的key,在上一步报错的时候找到那个不存在的把它替换上去执行上面的语句就可以了。

3.添加完nginx源后执行apt-get upgrade升级

重启 /etc/init.d/nginx restart

注意:在升级过程中会提示是否覆盖新的配置文件,建议先把原来的配置文件备份下(其实就算不备份,系统再覆盖前也会自动备份),在升级完成之后,再比对下新旧配置文件,把你自己需要的配置项重新替换加上就可以了。

最后,再执行下/usr/sbin/nginx -v来检查下现在的版本号是不是变成最新的了。

在Debian下管理MySQL

本文转载自:http://blog.csdn.net/lllxy/article/details/1712936(有改动)

 

1. 停止mysql服务的几种方法
     1): $:>/usr/local/mysql/bin/mysqladmin -u root -p shutdown
     2): $:>/usr/local/mysql/support-files/mysql.server stop
     3): 也可以先通过ps -ef 查找出mysql的进程ID,通过kill -9 (id)来停止进程
2. 启动mysql也还可以通过如下方式来启动
         $:>/usr/local/mysql/support-files/mysql.server start
3. mysqladmin还可以用来修改密码
    格式: mysqladmin -u用户名 -p旧密码 password 新密码
(特别注意: password前面没有横杠,-p和旧密码之间不要有空格)
     #给root加个密码123,由于开始root没有密码,所以-p 旧密码可以省略。
     $:>/usr/local/mysql/bin/mysqladmin -u root password 123
4.MySql中的用户授权
    当我们在使用MySql的时候,都必须有一个数据库MySql用来管理权限,这个数据库最好只让root用户可以看见, 其他的用户都不可见。
    MYSQL环境中的命令,所以后面都带一个分号作为命令结束符。
    1) grant格式:
       grant <privileges> on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’with          grant   option

      <privileges>代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file  等14个权限。

      当<privileges>被all privileges或者all代替,表示赋予用户全部权限   当<privileges>被usage代替时,只允许登陆,其他什么都不允许做
     当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
     用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
     ‘连接口令’可以为空

    如果在命令后面带上: WITH GRANT OPTION,表示该用户有向其他用户传递其所具有的权利的权限

     mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by   ‘123′;
     给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设  定口令为123。

     mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
     给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

     mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
     给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

     mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
     给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

     你想myuser使用mypassword从任何主机连接到mysql服务器的话。
     GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

     你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
     GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3′ IDENTIFIED BY ‘mypassword’

     增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
     grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

    增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost   

  指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
    如果你不想test2有密码,可以再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "";

  建立一个名为test的用户,他可以使用口令sa从localhost连接MySQL,并仅仅可以访问名为MyDB的数据库的全部 内容(并可以将此权限赋予其他用户),这可以使用下面的GRANT命令: 
mysql> GRANT ALL ON MyDB.* TO test@localhost  IDENTIFIED BY "sa"  WITH GRANT OPTION; 
  现在改变这个用户的口令为123,命令格式如下:
  mysql> GRANT USAGE ON *.* TO test@local IDENTIFIED BY "123"; 
  我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。

   2) 直接通过insert函数往mysql数据库的user表中加入一条记录。
     增加一个用户,用户名为jeffrey,密码为biscuit。
     mysql> Insert INTO mysql.user (Host,User,Password)
     VALUES(‘%’,’jeffrey’,PASSWORD(‘biscuit’));
      mysql> FLUSH PRIVILEGES
     修改root用户的登陆方式
     mysql>update user set host = ‘%’  where user =’root’;
     mysql>flush privileges;
5. 显示命令
    show databases;   //显示数据库
    use mysql
    show tables;   //显示mysql数据库中的表
    describe user;  //显示mysql数据库中user表的结构.

6. MySQL 忘记口令的解决办法

    如果 MySQL 正在运行,首先杀之
    启动 MySQL,就可以不需要密码就进入 MySQL 了。
    $:> /usr/local/mysql/bin/safe_mysqld –skip-grant-tables & ;
    $:> mysql -u root -p
    Enter password:[直接回车]
    mysql>use mysql
    mysql>update user set password=password("sa") where user="root";
    mysql>flush privileges;
    mysql>exit;
    重新杀 MySQL ,用正常方法启动mysql使用密码sa就可以登陆。