原《服务器运维》.

这两天操作系统课正在教怎么用linux命令, 我也顺便把这篇博客重新写写.

linux 常用命令

基本命令

文件操作

  • 新建文件 touch <name>

  • 删除文件 rm <name>

  • 删除目录 rm -r <name>

  • 解压缩 unzip <name>

  • 文件复制 cp 源文件 目标目录

  • 文件移动 mv 源文件 目标目录

  • 查找文件

    1. find -name 'filename' 任意目录查询
    2. which filename 从系统环境变量查询
      因为命令在本质上讲就是文件, 所以这个命令更适合查询 某条命令调用的是哪个文件.
    3. whatis 用一句话描述某条命令的作用
  • 读取文件:

    1. cat filename
      直接把文件内容全部输出
    2. tail -n 10 filename
      可以从文件的末尾向前读取.
    3. less filename
      和 more 这个命令很像, 都是分页读取, 适合那种大文件.
      但是感觉less更顺手一些
      空格: 向后翻一页, b: 向前翻一页, q: 退出, /‘txt’: 在文件中查找’txt’
    4. od filename
      显示二进制数据, 可以加入参数-h以十六进制显示.
  • tree [目录路径] 以目录树的格式打印出某个目录的内容.

过滤

过滤出文件中包含 key的记录 :
grep 'key' <file>
递归过滤 :
grep -r 'key' <file>

管道

作用 |将上一个命令的输出作为下一个命令的输入, 操作符是 |

  1. 将 cat 和 grep 组合在一起
    cat <file> | grep 'key'
  2. 过滤出目录中名字包含key的目录(不包含子目录)
    ls | grep 'key'

进程

  • 显示所有进程
    ps -A
  • 杀死某项进程
    sudo kill [进程编号]
  • 杀死某个用户的所有进程
    sudo killall -u user

用户信息

  • who

    • 第一列显示用户名称
    • 第二列显示用户连接方式. Tty为直接连接, pts为远程登录
    • 第三列和第四列分别为日期和时间
    • 第五列登录IP地址
  • whoami 显示当前”操作用户”的用户名

  • who am i 显示”登录用户”的用户名 , 相当于who -m

  • id 显示用户以及所属群组的实际与有效ID

权限

查看文件权限

通过 ls -al 可以查看当前目录下的文件的权限.
drwxrw-rwx

d rwx rw- rwx
是目录 owner group other

后面的r表示可读, w表示可写, x表示可执行.

设置权限

chmod 700 filename

其中 700 是二进制表示 111 000 000

和上面的文件权限逐位对应.

链接

  • 硬链接
    ln targetFile linkedFile
  • 符号链接
    ln -s targetFile symLinkFile

编译 or 运行代码

C++

编译C++程序(指定名称和后缀):

g++ *.cpp -std=c++11 -o a.exe

PHP

可以使用 php filename.php 直接运行.

也可以放进web目录下, 通过浏览器访问启动,

各有各的用途.

Python

需要注意下python版本, 通常python指3.x 而 python2指2.x

  1. python filename.py
  2. python -c "your code"

服务器相关

pscp

当使用ssh远程登录云主机后, 虽然我们有了可以输入命令的bash, 但是如果要上传文件需要使用工具pscp.

步骤:

  1. 从本地打开CMD到(pscp)putty目录下
  2. pscp
  3. 基本命令格式|
    pscp [本地文件路径] [用户名]@[ServerIP]:[目录]
    pscp -r [本地目录路径] [用户名]@[ServerIP]|[目录]
    同理,pscp也可以从Linux向Windows复制文件或目录

更推荐使用 finalShell 类的工具,非常方便,省去打命令的时间,且更直观

apache服务

启动|停止|重启:

service apache2 start|stop|restart

配置文件

/etc/apache2/apache2.conf

mysql

启动|停止|重启

servive mysql start|stop|restart

screen命令

命令 功能
screen -S <name> 创建名为 name 的session
screen -ls 显示所有session
screen -r <name> 进入名为 name 的session
screen -D -r <name> 将名为name的session离线并重新连接
ctrl+a c 在当前终端新建window
ctrl+a w 显示当前终端window列表
ctrl+a k 关闭当前window
ctrl+a 0-9 显示0-9 window
ctrl+a space 按照顺序显示下一个window
ctrl+a A 为当前window命名
  • 注意sessionwindow的区别, 一个session可以有多个window
  • screen -D -r <name>可解决某些情况下无法重连接终端的问题
  • 若要关闭某个session,则关闭该session下所有window即可

一些命令行工具的使用

vim 文本编辑器

1
vim filename

vim文本编辑器拥有命令模式和编辑模式. 只有命令模式可以输入命令, 只有编辑模式可以编辑文本.
以下是命令模式下的某些命令.

命令 作用
i 在当前字符前插入文本,进入插入模式
Esc 从编辑模式切换到命令模式
wq 在命令模式下,执行存盘退出操作
w 在命令模式下,执行存盘操作
w! 在命令模式下,执行强制存盘操作
q 在命令模式下,执行退出vi操作
q! 在命令模式下,执行强制退出vi操作

tshark 使用

抓包的工具.
基本每个命令都需要root权限sudo

  • 显示可用网卡 tshark -D

  • 抓包 使用命令

    1
    tshark  -c [数字]  -w [文件名.pcap] -f [捕获过滤器]
  • -c 表示抓多少包后停止
  • -w 把抓包结果输入到文件中, 无需提前创建, 若目录下没有, 自动创建
  • -f 设置捕获过滤器, 我们此处主要针对http的数据包, 所以参数设定为 “port 80”

但是根据我的试验, 凡是使用tshark后产生的文件权限都十分敏感, 没法用finalshell 直接下载, 为了方便起见, 再补充使用 tcpdump 的方法.

  • 抓包 :
    1
    tcpdump -s  [数字]  -w [文件.pcap] port [端口数]
  • -s 表示一个包截断的长度, 0表示不截断, 完整的保存下来
  • -w 输入到文件
  • port 监听的端口

使用 tcpdump 同样需要sudo

fcrackzip

一款kali下预装的好用的zip密码破解工具, 支持遍历爆破密码或者跑字典.

  • 遍历:

    1
    fcrackzip -v -b -u -c a -p magicaaaa filename.zip
  • 参数含义:

    • -v : 详细信息
    • -b : 爆破
    • -u : 指定zip压缩格式(大概)
    • -c : 指定密码类型, 选项值 a 就是纯字符串, 1 就是纯数字, a1 就是数字和字符串混杂.
    • -p : 指定密码, magicaaaa就是前五位确定是magic了, 后面的a在这里是掩码, 表明这4位是字母.
    • filename : 要破解的压缩包的名称.
  • 跑字典:
    1
    fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip

其中的rockyou.txt是个不错的密码字典, 可惜就是只符合外国人的密码习惯, 终于国内的比赛环境或是实战意义不大.

MineCraft相关命令

说出来你可能不信, 当初我学习使用ubuntu云服务器是为了玩MineCraft哒~

  • mine craft启动命令(其他jar类型的程序应该也可以如此启动)
    java -Xms# -Xmx# -jar [path]/minecraft_server.[version].jar nogui
    nogui:表示不以图形界面运行,因为我的服务器是server版的,本身就没有图形界面,所以不加也可以
    -Xms:初始启动分配内存
    -Xmx:最大分配内存
    path:jar包所在路径
    version:当前MineCraft_Server版本

  • tell <sb> <something>: 给sb 私信

  • gamemode survival <sb>:将 sb 调至 生存模式

  • gamemode create <sb>:将sb 调至 创造模式

更多的关于MC的命令去百度上自己搜吧亲, 我现在不玩 MineCraft 了