Shells命令行学习笔记

检索工具

每一个命令都有很详细甚至繁琐的参数,此文只演示简单的使用示例。具体参数以及使用方式能够参照如下四种方式检索:linux

  • 这个网站能够查询一部分命令: explainshell.com/
  • 输入manual命令:man ${YOUR_COMMAND}
  • 关于vi的部分:vimgifs.com/
  • 固然,最后google一下(wink~)

命令

ping

ping是一种计算机网络工具,用来测试数据包可否透过IP协议到达特定主机。ping的运做原理是向目标主机传出一个ICMP的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。正则表达式

ping www.baidu.com
复制代码

备注:这个命令经常使用于检测域名对应服务器是否在启动状态中。(详细使用参数man ping,适用于如下全部命令)。shell

traceroute

traceroute是一种计算机网络工具。它可显示数据包在IP网络通过的路由器的IP地址。express

traceroute www.baidu.com
复制代码

若是系统中不存在此命令,按如下方式安装:json

sudo apt install inetutils-traceroute
sudo apt install traceroute
复制代码

备注:若是某个网站挂了,能够用这个命令检测是哪一个环节出了问题。vim

nslookup

nslookup能够指定查询的类型,能够查到DNS记录的生存时间还能够指定使用哪一个DNS服务器进行解释。 在已安装TCP/IP协议的电脑上面都可以使用这个命令。 主要用来诊断域名系统 (DNS) 基础结构的信息。安全

nslookup www.baidu.com
复制代码

curl

cURL是一个利用URL语法在命令行下工做的文件传输工具。bash

请求www.baidu.com的网页内容服务器

curl www.baidu.com
复制代码

在输出里带上Http Header(-i --include)微信

curl -i www.baidu.com
复制代码

nmap

nmap(“Network Mapper(网络映射器)”) 是一个网络探测和安全扫描程序,系统管理者和我的可使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持不少扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。

nmap www.baidu.com
复制代码

备注:通常用来检测该服务器开放的端口。好比以上命令的输出内容以下,可知开放了80、443端口。

Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-04 16:52 CST
Nmap scan report for www.baidu.com (14.215.177.38)
Host is up (0.0095s latency).
Other addresses for www.baidu.com (not scanned): 14.215.177.39
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.67 seconds
复制代码

ufw

UFW 全称为Uncomplicated Firewall,是Ubuntu 系统上默认的防火墙组件, 为了轻量化配置iptables 而开发的一款工具。 UFW 提供一个很是友好的界面用于建立基于IPV4,IPV6的防火墙规则。

示例好比开启服务器的443(https)端口:

sudo ufw allow 443
sudo ufw enable
sudo ufw status
复制代码

ssh

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH经过在网络中创建安全隧道来实现SSH客户端与服务器之间的链接。

好比建立一个SSH key:

cd ~/.ssh/
ssh-keygen -t rsa
复制代码

将生成的公钥放置远程服务器中,而后便可以使用私钥登陆远程服务器:

ssh -i ~/.ssh/my_key root@$YOU_SERVER_IP
复制代码

find

find是一个用于在文件系统中寻找文件的Unix命令行工具。它的用法包括文件名模式匹配,时间戳匹配。

经常使用的几个选项为:

  • -name
  • -type
  • -empty
  • -executable
  • -writable

通用格式以下:

find $YOU_DIRECTORY/ -name $YOU_FILES
复制代码

示例。好比想在express文件夹中寻找名称含有Guide的md文件

find express/ -name *Guide*.md
复制代码

grep

grep是一个最初用于Unix操做系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

示例在package.json里搜索做者的名称:

grep -w "author" express//package.json
复制代码

则会输出匹配该 author单词的一整行

"author": "TJ Holowaychuk <tj@vision-media.ca>",
复制代码

备注:这个命令也至关实用~能够查阅文档多多练习!

ls

经常使用命令之一,显示当前文件夹的内容

ls
复制代码

比较经常使用的是这个组合

ls -laG
复制代码

cd

cd命令用来切换工做目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory。

cd $PATH
复制代码

pwd

在类Unix系统和其余一些操做系统中,pwd(英语:print working directory)用于输出当前工做目录的绝对路径

pwd
复制代码

mkdir/rmdir/rm/touch

新建文件夹

mkdir $FOLDER
复制代码

删除文件夹

rmdir $FOLDER
复制代码

固然删除文件夹也可使用如下命令递归删除文件(这个命令须要当心使用)

rm -rf $FOLDER
复制代码

touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来建立新的空文件。

因此通常能够用来新建文件,显得十分方便

touch $FILE
复制代码

删除文件

rm $FILE
复制代码

cat/head/tail/more/less

cat是unix系统下用来查看文件连续内容用的指令,字面上的含意是“concatenate”(连续)的缩写。除了用来做为显示文件内容外,cat指令也可用于标准流上的处理,如将显示的消息转入或附加另外一文件上。

cat $YOUR_FILE
复制代码

结合标准输出流>能够有如下姿式:

cat $FILE1 > $FILE2
复制代码

关于head/tail/more/less这些命令工做效果大体类似,可是具体不一样之处可使用以上提供的方式查阅

vi

vi是一种模式编辑器。不一样的按钮和键击能够更改不一样的“模式”;好比说:在“插入模式”下,输入的文本会直接被插入到文档;当按下“退出键”,“插入模式”就会更改成“命令模式”,而且光标的移动和功能的编辑都由字母来响应,例如:“j”用来移动光标到下一行;“k”用来移动光标到上一行,“x”能够删除当前光标处的字符,“i”能够返回到“插入模式”(也可使用方向键)。

掌握简单的vi命令使用十分必要。

使用vim编辑文件

vi $FILE
复制代码

输入i进入INSERT模式,编辑完成后,输入esc退出输入INSERT模式,进入命令模式,输入:wq写入修改内容并退出vi。

具体使用十分复杂,能够多作练习。简单的使用以上大概能够知足,由于在服务器中没有图形化界面,因此熟悉必定的vi操做是必须的。

sudo

sudo是linux系统管理指令,是容许系统管理员让普通用户执行一些或者所有的root命令的一个工具。

备注:普通用户在执行须要root权限的命令时,须要使用此命令。

sudo $command
复制代码

chown

chown 命令将 File 或 Directory 参数指定的文件或目录的全部者更改成 Owner 参数指定的用户。

常见于某个文件或文件夹没有相关的权限时,能够用此命令修改权限。示例以下:

sudo chown -R $USER:$USER /var/www/
复制代码

ps/top

在大多数类Unix操做系统中,ps程序(“process status”的简称)能够显示当前运行的进程。一个相关的Unix工具top则能够查看运行进程的实时信息。

ps
复制代码
top
复制代码

ps + grep能够快速找到对应程序的进程信息:

ps -A | grep "vscode"
复制代码

top + grep实时显示系统中对应程序进程(好比微信)的资源占用情况。

top | grep -i -w "wechat"
复制代码

(这里使用到的|是pipeline,能够粗略理解为数据流从左到右的流动)

pbcopy

将内容复制到粘贴板,示例以下:

cat $FILE | pbcopy
复制代码

而后愉快的ctrl + v就能够了。

小结

以上都只是简单示例,每一个命令的深刻使用须要在实际工做中查询、实践。(若是以上分享存在错误的地方,欢迎各位同窗指正~)

最后,让咱们用命令行提升工做效率~冲鸭!(●´∀`●)ノ

相关文章
相关标签/搜索