SSH
登录ssh -p端口号 用户名@IP地址
直接执行命令ssh 用户名@IP地址 命令
传文件SCP
scp命令可以方便地在远程Linux之间传输文件
常用格式:
1 | 上传/d/work/1.txt到远程服务器的/home: |
添加用户
添加一名新用户:
1 | adduser 用户名 |
赋予该用户root权限,即修改/etc/sudoers,参考里面的root怎么写的,复制一行
配置环境变量
基本命令
命令为export 环境变量名=路径
如加入一个值为/usr/local/go/bin的环境变量GOPATH
1 | $export GOPATH=/usr/local/go/bin |
如果变量的值有多个,需要用冒号即:隔开
在当前终端中输入:export PATH=$PATH:<你的要加入的路径>,$PATH表示当前的值,表示给PATH中加入一个新的值
不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。
用于当前用户
在用户主目录下有一个.bashrc隐藏文件,这是一个保存着用户个性化设置的脚本文件,每次启动bash都会执行它
可以在此文件中加入:
export PATH=<你的要加入的路径>:$PATH
这样每次启动bash都会执行添加环境变量的操作
所有用户
在/etc/profile中加入:export PATH=<你要加入的路径>:$PATH
类似于bashrc不过,适用于所有用户
查看环境变量
输入echo $PATH来查看环境变量
注意,修改环境变量后,除了第一种方法立即生效外,第二第三种方法要立即生效,可以source ~/.bashrc或者注销再次登录后就可以了!
vim常用
Linux下敲命令时可以ctrl+a可以快速回到行首,ctrl+e快速回到行尾
vim下按esc,然后按v选中,上下翻滚选中多行再按<>可以左右缩进
vim下ctrl+n可以补全
vim下先输入行号,再输入G,可以跳转到对应行
vim下的复制yyp
vim下输入大写A跳到行末并编辑,I则是行首
vim下d剪切p粘贴
vim下ctrl+f翻页,+d翻半页
解压
.tar 文件
tar -xvf FileName.tar # 解包
tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包
.gz文件
gunzip FileName.gz # 解压1
gzip -d FileName.gz # 解压2
gzip FileName # 压缩,只能压缩文件
.tar.gz文件
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
tar -jxvf big-bag.tar.gz #这是手残解压的命令
tar -tf big-bag.tar.gz | xargs rm -rf #这是删除解压后的文件的命令
.zip文件
unzip FileName.zip # 解压
zipinfo -1 ./ShareWAF.zip(误解压文件) | xargs rm -rf
zip FileName.zip DirName # 将DirName本身压缩
zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩
.rar文件
rar x FileName.rar # 解压
rar a FileName.rar DirName # 压缩
换源
全部在/etc/apt/sources.list文件里面
换源只需要把里面的内容修改就好了
1 | #阿里源地址 |
grep
grep是linux的文本搜索工具,根据用户定义的规则对目标文本逐行进行匹配检查,并打印匹配到的行
忽略大小写 grep -i
仅打印字符串而非整行 grep -o
反选 grep -v
匹配ERE规则的正则表达式 grep -E ‘正则表达式’
匹配PCRE规则的正则表达式 grep -P ‘正则表达式’
不输出任何信息 grep -q
统计匹配到的个数 grep -c
同时显示行号 grep -n
单词模式匹配(前后必须和其他单词隔开) grep -w ‘单词’
正则表达式
正则表达式分为三类,BRE,ERE和PCRE,BRE只支持最简单的正则表达式功能,对于一些特殊字符则需要使用转义来表示其正则含义;ERE在BRE的基础上增加了一些功能,其主要区别是ERE的元字符默认就是正则含义,想要匹配普通字符需要加\;PCRE则支持更多的功能,比如常用的通配符\d,BRE和ERE都不支持
Linux中正则表达式的规则
\ 单独匹配特殊符号时需转义
\d 表十进制数字
\D 表非数字
^ 匹配字符串开始
$ 匹配字符串末尾
. 代表除”\n\s”之外的任何单个字符
| 表示或者
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式一次或零次
() 小括号,改变结合对象和运算优先级
[ ] 字符集合,匹配所包含的任意的一个字符
[^] 复制字符集。匹配未包含在[ ]内的任意一个字符
[n1-n2] 字符范围。匹配指定范围内的任意一个字符。例如[a-z]可以匹配到a到z范围内的任意一个小写字母字符
{n} n是一个非负整数,匹配确定的n次,例如“o{2}”不能匹配“Bob”中的“o”,但是能匹配到“food”中的“oo”
{n,} n是一个非负整数,至少(最少)匹配n次。例如,“o{2,}”不能匹配”Bob”中的“o”,但是能匹配“fooooood”中的所有o。“o{1,}”等于“o+”
{n,m} n和m均为非负整数,其中n<=m,最少匹配n次,最多匹配m次
cut
cut是LINUX命令之一,可以将其描述为从一行上移除部分内容、选择性显示出已筛选内容的文本操作命令
常用参数
cut -cx-y 从每一行的第一个字符算起,第一个字符算第1个,取区间[x, y]内的字符
cut -d ‘一个字符’ -f x 将每行数字按照给定字符切分成多行,取第x行
注意,就算切分字符是第一个/最后一个,同样也会切分出一个空行出来,因此对于给定的文本”origin” : “114.51.41.98”,第一行是空行,第二行是origin,第三行是:,第四行才是114.51.41.98,最后再接一个空行
alias
为常用的命令起别名,仅在当前用户登录期间有用
比如我有一个使用curl来查看自己外网ip地址的命令,但因为它比较长,我每次都敲一遍很麻烦
1 | curl http://httpbin.org/get | grep -P '\d+\.\d+\.\d+\.\d+' | cut -d '"' -f 4 |
使用alias将该命令命名为myip,注意此时命令要用””括起来,因此原命令里面的”需要转义成\”
1 | alias myip="curl http://httpbin.org/get | grep -P '\d+\.\d+\.\d+\.\d+' | cut -d '\"' -f 4" |
之后再想要执行上面的命令,直接执行myip就可以了