ubuntu下的指令:

系统部份

  1. 查看当前在线用户 w | who

  2. 系统用户 users

  3. 向其它在线用户发消息:先w, 再write ashley tty1

  4. telnet localhost 11211 【host port之间无冒号

  5. web下载文件:wget http://filename

  6. ubuntu下添加新用户,最好用:adduser user_name,如果需要修改,如下加入sudo组:

    sudo usermod -a -G sudo

  7. 查看环境变量: env

  8. 观察文件类型:file /etc/passwd

  9. 查找:find / -name ashley.log



网络部份:

  1. 查看网络接口:ifconfig

  2. 查看路由:route -n

  3. 查看网络端口:netstat -tupn

  4. 重启网络:sudo service networking restart

  5. 跟踪路由节点:sudo traceroute -w 1 -n -T www.baidu.com

  6. 查主机名:host [-a] hostname

  7. 包截取***指令:tcpdump[未学习]


文件管理:

  1. 文件传输SCP
    文件夹传输【scp -r [srcusr@srchost:/path/folder] [destusr@desthost:/path/folder]】:当src或dest是本机时,可省去[usr@host:]
    例:scp -r [email protected]:/root/test_folder /mnt/shared  【下载文件夹到本地】 

       scp /mnt/shared/test_scp [email protected]:/root/test_scp 【上传文件到服务器】 

  2. Linux重定向操作符 功能描述

    > 将命令输出写入文件或设备,而不是命令提示符或句柄
    < 从文件而不是从键盘或句柄读入命令输入
    >> 将命令输出添加到文件末尾而不删除文件中已有的信息
    >& 将一个句柄的输出写入到另一个句柄的输入中
    <& 从一个句柄读取输入并将其写入到另一个句柄输出中


安装包管理

安装软件命令: apt-get install softname1 softname2 softname3……
卸载软件命令: apt-get remove softname1 softname2 softname3……
卸载并清除配置命令: apt-get remove --purge softname1

搜索Deb包:dpkg -l

报告指定包的状态信息:dpkg -s OR dpkg-query -s 

显示一个包安装到系统里面的文件目录信息:dpkg -L  OR dpkg-query -L 


远程访问

  1. 使用SSH不再输入密码的方式步骤
    a.ssh-keygen 生成RSA密钥对
    b.ssh-copy-id -i ~/.ssh/ashley.pub usr@remoteIp [在远端的.ssh/authorized_keys可以看到上传的公钥]
    c.OK,try it:ssh usr@remoteIp

  2. 如果失效,仍需要密码,请检查远端机~/.ssh/authorized_keys权限
    chmod 700 .ssh
    chmod 644 authorized_keys
    如果上面仍然失效,打开debug模式:ssh -v user@remoteIp,我本人是发现根本没有用我的ashley密钥去尝试过,当命令回id_rsa时OK。
    或者手动添加私钥:
    ssh-agent bash
    ssh-add ~/.ssh/ahsley
  3. 或者你可以:

  4. ssh usr@remoteIp -i ~/.ssh/ashley
  5. 使用SSH让远端机器运行本地脚本
    ssh usr@remoteIp "bash -s" < test_script

  6. 使用SSH执行远端脚本

    ssh user@remoteIp "touch test.testfile"





防火墙之iptables

规则(rule)是有顺序的。(详细资料)

iptables -L -n #列出filter table 三条链的规则
sudo iptables-save #列出完整的防火墙规则
iptables -F #清除本机防火墙 (filter) 的所有规则
iptables -D INPUT 1 #清除INPUT链第一条规则

ex:以下加入两个规则:1)允许本机访问端口8092. 2)不允许任何tcp连接访问8092.

那么1号规则先执行,这两条的意义就是:8092只被本机访问。

iptables -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 8092 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8092 -j REJECT

但是,一旦服务器被重启,这样规则又丢了,要保存下来需要做:

sudo iptables-save > /home/ashley/iptables.rules
sudo vi /etc/network/interfaces
pre-up iptables-restore < /home/ashley/iptables.rules  #加上这句,开机自动加载规则
post-down iptables-save > /home/ashley/iptables.rules  #加上这句,当前规则将在关闭服务时保存