LINUX中常用操作命令

发布时间 2023-05-31 17:36:40作者: 阿风小子

linux下查看负载的主要命令有下面一些:

top, uptime,w,vmstat

其他一些操作

cat /proc/cpuinfo :即可查看CPU信息,几个processor即为几个CPU;

sar:可以监控系统所有资源状态,sar -n DEV查网卡流量历史、sar -q 查看历史负载,最有用的就是查网卡流量,流量过大:rxpck/s大于4000,或者rxKB/s大于5000,则很有可能被攻击了,需要抓包分析;

free:查看当前系统的总内存大小以及使用内存的情况;

ps:查看进程,ps aux 或者 ps -elf,常和管道符一起使用,查看某个进程或者它的数量;

netstat:查看端口,netstat -lnp用于打印当前系统启动了哪些端口,netstat -an用于打印网络连接状况;

tcpdump:抓包工具分析数据包,知道有哪些IP在攻击;可以将内容写入指定文件1.cap中,显示包的内容,不加-w屏幕上显示数据流向;

wireshark:抓包工具,可以临时用该命令查看当前服务器上的web请求

1.cat命令

cat命令是一个直接将文件一下子全部输出到shell界面的命令,对于小文件cat比较好用,但是由于cat的一次性输出,使得对大文件的查看比较麻烦,而且有时当文件过长而超过shell的缓存范围时,可能无法产看文件的全部。

cat的用法:

cat [OPTIONS] FILE...

OPTIONS:

-n:显示时显示行号(包括空白行)

-b:显示时显示行号(不包括空白行)

-E:在每行行尾显示$符

-T:以^I替换tab符

注:tac命令与cat命令相反,它是逆序输出文件

2.more命令

more命令可以分屏查看文件,当到达文件末尾时自动退出。

more [OPTIONS] FILE...

more有一些快捷键:

空格建:向下翻屏

B键:向上翻屏

/pattern:使用正则表达式查找

Q键:退出

3.less命令

less命令与man命令类似,可以分屏查看文件,但尾部不会退出,常用快捷键有:

空格键:向下翻屏

B键:向上翻屏

Q键退出

/pattern或pattern:搜索

n:显示搜索的上一个

N:显示搜索的下一个

K键:向前翻一行

回车键:向后翻一行

4.tail命令

tail命令可以只产看文件的后几行。

tail的用法:

tail [OPTIONS] FILE...

OPTIONS:

-n NUMBER:指定查看的行数,可以省略n,直接写成-3等

-f:使tail保持活动状态,每当文件有尾部写入时,会将写入内容及时的输出出来

-s SECOND:与-f结合,指定-f的查看周期

6.head命令

head命令是产看文件头部前几行的,但是head没有tail出名,因为一般文件总是在尾部发生变化,但是head也是一个很方便的命令。head的用法和tail相同

7.cut命令

cut命令是按指定的分隔符(默认是空格)将每行分成几段,一般的cut要求文件每行的结构相同,例如/etc/passwd文件的结构:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

cut的用法:

cut [OPTIONS] FILE...

OPTIONS:

-d:指定分隔符

-f:指定第几段

例如:

cut -d: -f1 /etc/passwd //显示当前主机上的所有用户

cut -d: -f1-3 /etc/passwd //显示1、2、3段

8.tr命令

tr是一个替换命令,可以替换文本中的一些字符。tr的用法比较特殊:

tr [OPTIONS] SET1 [SET2]

SET1是要替换的字符,SET2是替换后的字符,这里没有指定文件。

tr 'a-z' 'A-Z' < text.txt //将所有小写字母替换为大写

需要说明的是,由于tr后面无法跟文件名,所以当要对一个文件操作的时候,需要使用输入重定向。

另外,tr有一个-d选项,可以删除自定字符:

tr -d 'a' < text.txt //删除所有的字符a

9.wc命令

wc是一个文本统计命令,可以统计文本的字符数、行数等。

wc [OPTIONS] FILE...

OPTIONS:

-l:只显示行数

-w:只显示单词数

-c:只显示字符数

10.sort命令

sort命令是一个排序命令,默认以首字母进行排序。

sort [OPTIONS] FILE...

OPTIONS:

-r:逆序

-u:如果临近行重复,则只显示一次

-n:按数值排

-t:指定分隔符

-k:指定排序字段,与-t组合使用

-f:忽略大小写

-b:忽略开头的空白

-i:忽略非打印字符

-M:按月份排序,unknow<'JAN'除此之外,还有很多查看文件的命令,如强大的sed和awk命令,

常用指令

  1. ls 显示文件或目录
  2. -l 列出文件详细信息l(list)
  3. -a 列出当前目录下所有文件及目录,包括隐藏的a(all)
  4. mkdir 创建目录
  5. -p 创建目录,若无父目录,则创建p(parent)
  6. cd 切换目录
  7. touch 创建空文件
  8. echo 创建带有内容的文件。
  9. cat 查看文件内容
  10. cp 拷贝
  11. mv 移动或重命名
  12. rm 删除文件
  13. -r 递归删除,可删除子目录及文件
  14. -f 强制删除
  15. find 在文件系统中搜索某文件
  16. wc 统计文本中行数、字数、字符数
  17. grep 在文本文件中查找某个字符串
  18. rmdir 删除空目录
  19. tree 树形结构显示目录,需要安装tree包
  20. pwd 显示当前目录
  21. ln 创建链接文件
  22. more、less 分页显示文本文件内容
  23. head、tail 显示文件头、尾内容
  24. ctrl+alt+F1 命令行全屏模式

系统管理命令

  1. stat 显示指定文件的详细信息,比ls更详细
  2. who 显示在线登陆用户
  3. whoami 显示当前操作用户
  4. hostname 显示主机名
  5. uname 显示系统信息
  6. top 动态显示当前耗费资源最多进程信息
  7. ps 显示瞬间进程状态 ps -aux
  8. du 查看目录大小 du -h /home带有单位显示目录信息
  9. df 查看磁盘大小 df -h 带有单位显示磁盘信息
  10. ifconfig 查看网络情况
  11. ping 测试网络连通
  12. netstat 显示网络状态信息
  13. man 命令不会用了,找男人? 如:man ls
  14. clear 清屏
  15. alias 对命令重命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax showmeit
  16. kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

打包压缩相关命令

  1. gzip
  2. bzip2
  3. tar: 打包压缩
  4. -c 归档文件
  5. -x 压缩文件
  6. -z gzip压缩文件
  7. -j bzip2压缩文件
  8. -v 显示压缩或解压缩过程 v(view)
  9. -f 使用档名
例:
  1. tar -cvf /home/abc.tar /home/abc 只打包,不压缩
  2. tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
  3. tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令tar  -cvf  /   tar  -zcvf  /  tar  -jcvf 中的“c” 换成“x” 就可以了。

关机/重启机器

  1. shutdown
  2. -r 关机重启
  3. -h 关机不重启
  4. now 立刻关机
  5. halt 关机
  6. reboot 重启

Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:grep -r “close” /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。

Linux软件包管理

dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。
  1. sudo dpkg -i tree_1.5.3-1_i386.deb 安装软件
  2. sudo dpkg -r tree 卸载软件
 
注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
依然以tree为例
  1. sudo apt-get install tree 安装tree
  2. sudo apt-get remove tree 卸载tree
  3. sudo apt-get update 更新软件
  4. sudo apt-get upgrade
 
将.rpm文件转为.deb文件
.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
  1. sudo alien abc.rpm

vim使用

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
 
命令模式下:
  1. :q 退出
  2. :q! 强制退出
  3. :wq 保存并退出
  4. :set number 显示行号
  5. :set nonumber 隐藏行号
  6. /apache 在文档中查找apache 按n跳到下一个,shift+n上一个
  7. yyp 复制光标所在行,并粘贴
  8. h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

用户及用户组管理

  1. /etc/passwd 存储用户账号
  2. /etc/group 存储组账号
  3. /etc/shadow 存储用户账号的密码
  4. /etc/gshadow 存储用户组账号的密码
  5. useradd 添加用户名
  6. userdel 删除用户名
  7. adduser 添加用户名
  8. groupadd 添加组名
  9. groupdel 删除组名
  10. passwd root 给root设置密码
  11. su root
  12. su – root
  13. /etc/profile 系统环境变量
  14. bash_profile 用户环境变量
  15. .bashrc 用户环境变量
  16. su user 切换用户,加载配置文件.bashrc
  17. su – user 切换用户,加载配置文件/etc/profile ,加载bash_profile

更改文件的用户及用户组

  1. sudo chown [-R] owner[:group] {File|Directory}
例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
  1. sudo chown root:root jdk-7u21-linux-i586.tar.gz

文件权限管理

三种基本权限
R   读  数值表示为4
W   写  数值表示为2
X   可执行 数值表示为1
如图所示,jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r–
-rw-rw-r–一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。     所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。        所以用数值表示为4+2=6
第八九十个字符“r–”表示其他用户权限。                 所以用数值表示为2
所以操作此文件的权限用数值表示为662?

更改权限

sudo chmod [u所属用户  g所属组  o其他用户   a所有用户]    [+增加权限   -减少权限]   [r   w   x]   目录名 
例如:有一个文件filename,权限为“-rw-r—-x” ,将权限值改为”-rwxrw-r-x”,用数值表示为765
  1. sudo chmod u+x g+w o+r filename
上面的例子可以用数值表示
  1. sudo chmod 765 filename

 

工作中用到的一些有意思的命令:

  1. linux nc
  2. tree

第一、系统查看命令

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量

第二、资源/硬盘占用情况

# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载

第三、磁盘和分区情况

# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况

第四、网络查看

# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息

第五、进程查看

# ps -ef # 查看所有进程
# top # 实时显示进程状态

第六、用户查看

# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务

第七、系统服务情况

# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务

第八、程序查看

# rpm -qa # 查看所有安装的软件包