Linux命令

常用的文件操作指令

ls --help             # 查看当前命令下的所有参数用法
ls -l                 # 等于ll
ls -al                # 显示的所有文件与文件夹的详细信息,包括所有被隐藏的文件和文件夹
cd ..                 # 回到上一级
cd ~                  # 回到用户主目录
cd ./                 # 在当前目录下逐级打开下级目录
mkdir                 # 创建文件夹(目录)
rm                    # 删除文件或目录
cp 文件名 目标路径      # 复制文件
cp -R 目录名 目标路径   # 复制文件夹 cp -r /test1/. /test2
mv 原文件名 目标文件名  # 移动文件或文件夹,可以用来重命名
touch xxx.txt         # 更新文件的访问时间戳或者创建一个空文件
cat                   # 查看某个文件的内容
nl                    # 显示时输出行号
more                  # 查看内容,会分页
less                  # 比more好,[pageup] [pagedown]前后翻页
chmod                 # sudo chmod +x run.sh后./run.sh运行脚本
chmod u=rwx,g=rwx,o=rwx file = chmod 777 file = chmod a=rwx file

find 目录 -name 文件名 # 查找文件
which                 # 寻找“可执行文件”
whereis 文件名         # 由一些特定的目录中寻找文件文件名,比find快

vi                    # 字母i进入编辑模式,esc退出编辑模式,wq是保存修改,q!是强制退出
wc                    # 计算指定文件的行数、字数,以及字节数
3 92 598 testfile     # testfile文件的行数为3、单词数92、字节数598

df -h                 # 列出文件系统的整体磁盘使用量
du -sh .              # 对当前目录下所有的目录和文件的大小进行汇总,-s表示汇总,-h人性化显示
du -sh *              # 对当前目录下每一个目录和文件的大小分别进行汇总

sz filename           # 利用ZModem协议来从Linux服务器传送文件到本地

echo 参数 > 输出文件    # 输出重定向,清空后新增内容
echo 参数 >> 输出文件   # 输出追加重定向,在文件末尾追加字符串

网络命令

ifconfig              # 查看网络接口的状态,ip地址,物理地址等等
ping  ip              # 网络试探
netstat               # 显示当前应用的网络使用情况
netstat -an | grep 21 # 21端口是否已经被占用
lsof                  # 查看某个端口是否被占用 lsof -i:21

netstat -an

-a:将目前系统上所有的连接、监听、socket信息都列出来;
-t:列出tcp网络封包的信息;
-u:列出UDP网络封包的信息;
-n:不以进程的服务名,以端口号来显示;
-l:列出目前正在网络监听的服务;
-p:列出该网络服务的进程ID;

grep -w(-w用于字符串精确匹配,默认匹配一个单词)例如我想匹配 “like”, 不加 -w 就会匹配到 “liker”, 加 -w 就不会匹配到

系统操作命令

shutdown             # 关机
uname                # 获取当前系统信息
kill -9 进程         # 杀死进程

awk

awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

-F参数:指定分隔符,可指定一个或多个

print 后面做字符串的拼接

awk '{pattern + action}' {filenames}
# pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。

1.命令行方式
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

vim

[Page Down]:向下翻页

[Page Up]:向上翻页

0或[Home]:移动到这一列的最前面字符处

$ 或[End]:移动到这一列的最后面字符处

G:移动到这个文件的最后一列

/word:向光标之下寻找一个名称为 word 的字串,enter后按n会向下继续搜寻,按N向上搜寻

dd:删除光标所在的那一整列

ndd:n 为数字,删除光标所在的向下 n 列

yy:复制光标所在的那一列

nyy:n 为数字,复制光标所在的向下 n 列

p, P:p 为将已复制的数据在光标下一列贴上,P 则 为贴在光标上一列

vim的全局替换

:s / old / new / g                    # 把当前行old的每次出现改为new,而不只是该行的第一个old
:1, $s / old / new / g                # 把整个文件中的old的每次出现都改为new
:% s / old / new / g                  # % 等价于1,$

查看某个进程

top -p 10997                          # 查看某个进程占用的CPU、内存
ps -a                                 # 列出所有运行中/激活进程
ps -ef|grep                           # 列出需要的进程

telnet

将telnet客户端开启才能正常使用

测试网络连通性

# Telnet+空格+要访问的服务器或电脑ip地址+空格+端口号
telnet 172.21.15.199 9090
# 按回车,出现黑色界面说明连接成功

telnet连通性只能测试tcp端口或服务,不能测试udp

登录远程主机

-l:指定用户名

telnet -l admin 192.168.31.105

nslookup

#非交互模式
nslookup baidu.com

#交互模式
nslookup
baidu.com

#PTR 反向DNS解析
nslookup -ty=ptr 8.8.8.8

查看内存使用情况

/proc/meminfo

查看RAM使用情况最简单的方法是通过 /proc/meminfo。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过 /proc/<pid>/statm/proc/<pid>/status 来查看。

cat /proc/meninfo

free

free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

free -h

htop

htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。

top参数

平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。

第七行以下:各进程(任务)的状态监控
PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

常用SIG信号及其键值

01 SIGHUP 挂起(hangup)
02 SIGINT 中断,当用户从键盘按^c键或^break键时
03 SIGQUIT 退出,当用户从键盘按quit键时
04 SIGILL 非法指令
05 SIGTRAP 跟踪陷阱(trace trap),启动进程,跟踪代码的执行
06 SIGIOT IOT指令
07 SIGEMT EMT指令
08 SIGFPE 浮点运算溢出
09 SIGKILL 杀死、终止进程
10 SIGBUS 总线错误
11 SIGSEGV 段违例(segmentation violation),进程试图去访问其虚地址空间以外的位置
12 SIGSYS 系统调用中参数错,如系统调用号非法
13 SIGPIPE 向某个非读管道中写入数据
14 SIGALRM 闹钟。当某进程希望在某时间后接收信号时发此信号
15 SIGTERM 软件终止(software termination)
16 SIGUSR1 用户自定义信号1
17 SIGUSR2 用户自定义信号2
18 SIGCLD 某个子进程死
19 SIGPWR 电源故障

题目

统计一个文件中某一个字段的次数

grep -c 'object' fileName
grep 'object' fileName | wc -l        # wc -l里-l显示行数

liunx远程复制

scp output.txt root@2g.CentOS.com:/opt/backup 
# 把 output.txt 文件从本地系统复制到 2g.CentOS.com 远程系统的 /opt/backup 文件夹下
scp -r /home/daygeek/2g/shell-script/ root@:/opt/backup/
# 同shell-script 文件夹下所有的文件一同复制到/opt/back 下

安装软件

rpm -ivh 软件包
yum install package

打包

常用参数:

参数 含义
-c 生成档案文件,创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t 列出档案中包含的文件
-x 解开档案文件
tar -cvf xxx.tar *                   # 当前目录所有文件
tar -cvf xxx.tar *.txt               # 以.txt结尾的文件

解包

tar -xvf xxx.tar                     # 解包到当前目录
tar -xvf xxx.tar -C my-dir           # 解包到指定目录

小文件太多报rm Argument list too long

find . -name "要删除的文件名" | xargs rm -f

注意会删掉目录下的所有文件,包括文件夹内的

todo

https://www.kancloud.cn/chunyu/php_basic_knowledge/2106515


   转载规则


《Linux命令》 锦泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录