Linux常用命令_md
一 . 基础命令
grep 查找一行含有该字符串的命令
grep [选项]... PATTERN [FILE]..
-c :计算找到‘查找字符串’的次数
-i :忽略大小写的区别,即把大小写视为相同
-v :反向选择,即显示出没有‘查找字符串’内容的那一行```
find 查找文件
相对而言,它的使用也相对较为复杂,参数也比较多
# 与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
-newer file : 列出比file还要新的文件名
# 例如:
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
# 与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件
# 例如:
find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
# 与文件权限及名称有关的参数:
-name filename :找出文件名为filename的文件
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
# 例如:
find / -name passwd # 查找文件名为passwd的文件
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
cp 复制文件
cp [-a] file1 file2
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
mv 移动文件/重命名
mv [-i] file file2
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
rm 删除文件
rm [-f] file
-f :就是force的意思,忽略不存在的文件,不会出现警告消息, 直接删除
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
ps 查看进程(一般与grep连用)
ps -aux | grep java` ps aux # 查看系统所有的进程数据 ps ax # 查看不与terminal有关的所有进程 ps -lA # 查看系统所有的进程数据 ps axjf # 查看连同一部分进程树状态
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
kill 杀掉某个进程
kill [-SIGINT] pid
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
tar 打包, 解压
压缩:tar -jcv -f filename.tar.bz2 filename` 查询:tar -jtv -f filename.tar.bz2 解压:tar -jxv -f filename.tar.bz2 -C filemkdir
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
cat / vim 查看文件
gg 跳到文件开始
GG 跳到文件结束
/ name 查找字段
n 查找下一个
N 查找上一个```
##### chmod命令
`chmod 777 filename`
该命令用于改变文件的权限
##### time命令
`time process`
该命令用于测算一个命令(即程序)的执行时间
##### file 用于判断接在file命令后的文件的基本数据
`file filename`
####`二. 远程连接`
>######远程连接数据库
```mysql -u{root} -p[port] -h{ip}```
>######远程连接
```ssh -p {port} root@{ip}```
####`三.本机网络`
>##### 多IP机器更换IP
```iptables -t nat -I POSTROUTING -o 网卡名 -d 0.0.0.0/0 -s 机器默认ip -j SNAT --to-source 要更换的ip```
>##### 查看 ip 更换记录
```service iptables status```
>##### 清除 防火墙上的postrouting表规则, 及更换ip的记录
```iptables -t nat -F POSTROUTING```
>##### 查看网卡名
```cat /proc/net/dev```
>##### 查看可用本机ip地址
```ip addr```
>##### linux 下 查看Apache的并发请求数及其TCP连接状态
```netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'```
或
```netstat -n|grep ^tcp|awk '{print $NF}'|sort -nr|uniq -c```
或
```netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'```
>>**结果示例**
>>```TIME_WAIT 34
SYN_SENT 1
FIN_WAIT2 4
ESTABLISHED 633```
>>CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
>##### linux查看httpd进程数
```ps -ef | grep httpd | wc -l```
>#####查看Nginx运行进程数
```ps -ef | grep nginx | wc -l```
>#####查看Web服务器进程连接数:
```netstat -antp | grep 80 | grep ESTABLISHED -c```
>#####查看MySQL进程连接数:
```ps -axef | grep mysqld -c```
```ps -ef | grep mysqld -c```
####远程拷贝文件
>#####本地向远程
```scp -P {port} {本地目录} root@{ip}:{远程目录}```
>#####远程向本地
```scp -P {port} root@{ip}:{远程目录} {本地目录}```
#### 系统命令
>#### top
linux 查看本机内存
![top命令结果](https://img-blog.csdn.net/20180906144624694?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2NDc1NDAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)