linux命令 笔记

一、文件浏览命令

格式: 命令 [option] file

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,tac 是 cat 的倒写
  • nl 显示行号 -b a :空行也列出行号(类似 cat -n); -b t :非空行才列出行号(默认值);
  • more 一页一页的显示文件内容   [空格键]下一页,[Backspace]上一页。 +n 从笫n行开始显示 -n 定义屏幕大小为n行 -c 清屏显示
  • less 与 more 类似,但他可以往前翻页 [空格键] 滚动一行, [回车键] 滚动一页,[pagedown]: 下一页,[pageup]:上一页
  • head 看头几行, -n 设定行数
  • tail 看尾部几行 -f 循环读取 tail -100f catalina.out
  • od 以二进制的方式读取文件内容

二、文件目录操作命令

mkdir

-m:mode 设定权限 -p:parents 创建父级目录   mkdir -m 777 -p dir1/dir2

rm

​ -r 递归 -f force 强行删除,忽略不存在的文件,系统不再提示 rm -rf dir

mv -b :覆盖前先备份

  • -f :force 强制覆盖
  • -i :询问是否覆盖
  • mv 1.txt 2.txt 可用于重命名

ls 命令

列出目录中所有子目录和文件

  • -a, –all 列出目录下的所有文件,包括以.开头的隐含文件
  • -l 列出目录或文件的详细信息,包括文件的权限、所有者、文件大小等
  • -R, –recursive 递归查询 -r, –reverse 依相反次序排列 -t 以文件修改时间排序
  • -F 显示文件类型(File type),在列出的文件名后添加符号:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。
  • ls -l s* 列出当前目录中所有以“s”开头的目录的详细内容
  • ls -F /opt/soft |grep /$ 只列出文件下的子目录
  • ls -ltr s* 列出目录下以s 开头的档案,愈新的排愈后面
  • ls | sed "s:^:pwd/:"列出文件的绝对路径

tar

为linux的文件和目录创建档案

tar [主选项+辅选项] 文件或目录

  • 主选项:【每条命令只能有一个主选项】

    • -c: --create 新建一个压缩文档,即打包
    • -x: --extract,–get 解压文件
    • -t: --list 查看压缩文档里的所有内容
    • -r:–append 向压缩文档里追加文件
    • -u:–update 更新原压缩包中的文件
  • 辅助选项:

​ -z 支持gzip解压文件

​ -j 支持bzip2解压文件

​ -Z 支持compress解压文件
​ -v 显示操作过程

​ -f 指定压缩文件

-t 显示压缩文件的内容
-d 记录文件的差别

-W 确认压缩文件的正确性

-l 文件系统边界设置
-k 保留原有文件不覆盖

-m 保留文件不被覆盖

img

​ tar -cvf log.tar 1.log 2.log 仅打包,不压缩!
​ tar -tf log.tar 不解压的情况下查看

gzip

  • -a 使用ASCII文字模式
  • -d 解压文件
  • -l 列出压缩文件的详细信息
  • -r 递归处理
  • -v 显示指令执行过程
  • -num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6。

gzip * / gzip -dv * 压缩和解压缩文件或目录,若当前目录下有10个文件则生成10个.gz的压缩包,gzip没有打包功能!

三、文件查找命令

find命令

在目录结构中搜索文件

格式:find pathname -options [-print -exec -ok …]

命令选项:

  • -name 按照文件名查找文件

  • -perm 按照文件权限来查找文件

  • -user 按照文件属主来查找文件

  • -group 按照文件所属的组来查找文件

  • -mtime (modify time)指文件内容被修改的时间 +n:大于n, -n:小于n

  • -atime (access time)文件被读取或者执行的时间 -ctime (change time)文件状态改变时间,如通过chmod修改文件属性

  • -type 查找某一类型的文件,f:普通文件,d:目录,p:管道文件,l:符号链接文件,c:字符设备文件,b:块设备文件

  • -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

    find -atime -2 查找2天内修改过的文件
    find . -type f -name “*.log”  根据关键字和类型查找
    find /opt/soft/ -perm 777  按照目录或文件的权限来查找文件
    find . -size +1000c -print 查找当前目录大于1K的文件

which命令

查看可执行文件的位置

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 which pwd

whereis命令

定位文件在文件系统中的位置

  • -b 查找二进制文件
  • -m 帮助文件
  • -s 源代码文件 whereis -b svn

locate命令

配合数据库查看文件位置

  • locate和find功能类似,但locate是透过updatedb程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快
  • locate pwd  查找和pwd相关的所有文件
  • locate /etc/sh  搜索etc目录下所有以sh开头的文件

四、文件权限设置命令

chmod命令

权限分为只读r、只写w 和 可执行x,用户分为 文件所有者u、同组用户g、其他用户o 和 所有的用户及群组a

​ 1)文字设定法: chmod [who] [+ | - | =] [mode] 文件名

​ 2)数字设定法: chmod [mode] 文件名

  • 数字属性的mode为3个数字,按顺序表示(u)(g)(o)对应的权限。r=4,w=2,x=1 ,- 为0 表示删除权限
  • rwx属性为4+2+1=7 ; rw-属性则4+2=6;r-x属性则4+1=5。
  • chmod ug+w,o-x test.log ; chmod -R 777 dir

chgrp命令 (change group)

​ 改变文件或目录所属的用户组

​ -c 当发生改变时输出调试信息

​ -f 不显示错误信息

​ -R 递归处理

​ -v 运行时显示详细的处理信息
​ --dereference 作用于符号链接的指向,而不是符号链接本身 --no-dereference 作用于符号链接本身
​ 用户组的所有信息都存放在/etc/group文件中 cat /etc/group

​ chgrp -v group1 1.log
​ chgrp --reference=1.log 2.log 改变文件2.log的群组属性,使得文件2.log的群组属性和参考文件1.log的群组属性相同

chown命令(change owner)

​ 改变文件或目录的所有者和所属的用户组

chown -R root /usr/tony

五、系统性能监控命令

top命令

​ 能够实时显示系统中各个进程的资源占用状况**,常用于服务端性能分析。**

-u 指定用户名; -p 指定进程; -n 循环显示的次数

img

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

free命令

​ 显示系统使用和空闲的内存情况

-k 以KB为单位显示内存使用情况; -m 以MB为单位;-g 以GB为单位; -s<间隔秒数> 持续观察内存使用状况。

free -m -s 10

img

vmstat命令

​ 显示关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。

  • -a:显示活跃和非活跃内存
  • -f:显示从系统启动至今的fork数量 。
  • -m:显示slabinfo
  • -n:只在开始时显示一次各字段名称。
  • -s:显示内存相关统计信息及多种系统活动数量。
  • -d:显示磁盘相关统计信息。

img

​ Procs(进程) r: 运行队列中进程数量  b: 等待IO的进程数量
​ Memory(内存) swpd: 使用虚拟内存大小  free: 可用内存大小  buff: 用作缓冲的内存大小  cache: 用作缓存的内存大小
​ Swap si: 每秒从交换区写到内存的大小  so: 每秒写入交换区的内存大小
​ IO bi: 每秒读取的块数  bo: 每秒写入的块数
​ 系统 in: 每秒中断数,包括时钟中断  cs: 每秒上下文切换数。
​ CPU us: 用户进程执行时间(user time)  sy: 系统进程执行时间  id: 中央处理器的空闲时间(包括IO等待时间)  wa: 等待IO时间 (以百分比表示)

iostat命令

​ 统计系统的磁盘操作活动

查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。但不能指定进程。

格式:iostat[参数][时间][次数]

  • ​ -C 显示CPU使用情况 -d 显示磁盘使用情况
  • ​ -k 以 KB 为单位显示 -m 以 M 为单位显示
  • ​ -N 显示磁盘阵列(LVM) 信息 -n 显示NFS 使用情况
  • ​ -p[磁盘] 显示磁盘和分区的情况 -t 显示终端和CPU的信息
  • ​ -x 显示详细信息 -V 显示版本信息

(1) iostat -2 -3 每隔2秒刷新显示,且显示3次

%user:CPU处在用户模式下的时间百分比 %nice:CPU处在带NICE值的用户模式下的时间百分比 %system:系统模式
%iowait:CPU等待输入输出完成时间的百分比 %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比 %idle:CPU空闲时间百分比
备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

img

(2) iostat -d -x -k 1 1 查看设备使用率(%util)、响应时间(await)

每秒用于 I/O 操作的时间比,如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

img

lsof命令

列出当前系统打开的文件

-c <进程名> 列出指定进程所打开的文件;   -p <进程号> 列出指定进程号所打开的文件
-u username 显示所属user进程打开的文件; -g gid 显示归属gid的进程情况
+d <目录> 显示目录下被进程打开的文件    +D<目录> 同上,但是会搜索目录下的所有目录,时间相对较长
-a 表示两个参数都必须满足时才显示结果   -i 用以显示符合条件的进程情况

lsof -d 0表示标准输入,1表示标准输出,2表示标准错误,所以大多数应用程序所打开的文件的 FD 都是从 3 开始
lsof -c mysql -c apache 列出一个或多个程序进程所打开的文件信息
lsof -i 列出所有的网络连接 lsof -i tcp/udp/:3306/udp:55/tcp:80
lsof -i @peida.linux:20,21,22,25,53,80 -r 3 每隔3秒打印peida.linux上端口为:20,21,22,25,53,80相关的所有文件信息

ps (Process Status)

列出系统当前运行的进程。

​ -a 显示同一终端下的所有程序 -aux 显示所有包含其他使用者的行程 -f 显示程序间的关系 -u 指定用户

​ ps -ef|grep tomcat    ps 与grep常用组合用法,查找特定进程
​ ps -aux --sort -pcpu | less    根据 CPU 使用率按降序排序
​ ps -aux --sort -pmem | less    根据内存使用率按降序排序

六、网络查看命令

ifconfig命令

​ 获取或修改网络接口配置信息

​ 格式:ifconfig [网络设备] [参数]

​ ifconfig 显示网络设备信息
​ ifconfig eth0 up/down 启动/关闭指定网卡
​ ifconfig eth0 add/del 33ffe:3240:800:1005::2/64 为网卡eth0配置/删除IPv6地址
​ ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 修改MAC地址
​ ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 配置IP地址,添加子掩码和广播地址
​ ifconfig eth0 mtu 1500 设置最大传输单元
​ ifconfig eth0 arp/-arp 启用/关闭ARP协议

ip命令

​ ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道。[替换ifconfig]

netstat命令

​ 显示网络连接状态及其相关信息

  • -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断它。

  • -i 显示所有网络接口的信息 -n 以网络IP地址代替名称,显示出网络连接情形。

  • -t 显示TCP协议的连接情况 -u 显示UDP协议的连接情况。

  • -p 显示建立相关连接的程序名和PID。 -b 显示在创建每个连接或侦听端口时涉及的可执行程序。 -o显示与每个连接相关的所属进程 ID。

  • -e 显示以太网统计。此选项可以与 -s 选项结合使用。 -s 显示每个协议的统计。

  • -f 显示外部地址的完全限定域名(FQDN)。 -r显示核心路由表,格式同“route -e”

    netstat -l 显示监听的套接口
    netstat -a | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ 统计机器中网络连接各个状态个数
    netstat -ap | grep ssh 找出程序运行的端口
    netstat -anpt | grep ‘:8080’ 找出运行在指定端口的进程

ss命令

​ (Socket Statistics) 用来获取socket统计信息 [替换netstat]

ss可以显示和netstat类似的内容。但它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss比netstat快的主要原因是,

​ netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。可以使用 time ss 和 time netstat -at 对比两个命令的效率。

ss常用参数和netstat类似,如-anp

ping命令

​ 用来测试与目标主机的连通性

​ ping -c 10 -i 0.5 192.168.120.206 -c 指定次数 -i 间隔的秒数
​ ping -b 192.168.120.1 ping网关,可用route查看网关地址

telnet命令

​ 远程登录

telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了

telnet <ip/hostname>

ssh命令

​ 远程登录

rcp命令 (remote file copy)

​ 远程文件拷贝

rcp [参数] [源文件] [目标文件] -r 递归 -x 为传送的所有数据打开DES加密 -p 试图保留源文件的修改时间和模式

rcp -r /home/root/dir hostname:/home/root/

scp命令 (secure copy)

​ 远程文件拷贝

scp [参数] [原路径] [目标路径]

scp root@192.168.120.204:/home/root/test.tar.gz /home/root/ 从远处复制文件到本地目录, scp传输是加密的

route命令

​ 显示和操作IP路由表

​ route -n 显示当前路由
​ route add/del default gw 192.168.120.240 添加/删除默认网关
​ route add/del -net 224.0.0.0 netmask 240.0.0.0 dev eth0 添加/删除网关/设置网关
​ route add/del -net 224.0.0.0 netmask 240.0.0.0 reject 添加/删除一条屏蔽的路由,目的地址为 224.x.x.x 将被拒绝

traceroute命令

​ 检测发出数据包的主机到目标主机之间所经过的网关

-q: 设置向每个网关发送的探测包个数(缺省为3) -m 设置跳数

以下返回结果每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,其实就是3个数据包对映的网关响应时间。

 [root@localhost ~]# traceroute www.baidu.com
 traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  192.168.74.2 (192.168.74.2)  2.606 ms  2.771 ms  2.950 ms
 2  211.151.56.57 (211.151.56.57)  0.596 ms  0.598 ms  0.591 ms
 3  211.151.227.206 (211.151.227.206)  0.546 ms  0.544 ms  0.538 ms
 4  210.77.139.145 (210.77.139.145)  0.710 ms  0.748 ms  0.801 ms
 5  202.106.42.101 (202.106.42.101)  6.759 ms  6.945 ms  7.107 ms
 6  61.148.154.97 (61.148.154.97)  718.908 ms * bt-228-025.bta.net.cn (202.106.228.25)  5.177 ms
 7  124.65.58.213 (124.65.58.213)  4.343 ms  4.336 ms  4.367 ms
 8  202.106.35.190 (202.106.35.190)  1.795 ms 61.148.156.138 (61.148.156.138)  1.899 ms  1.951 ms

七、linux 其他命令

grep 文本搜索

​ ps -ef|grep -c svn 查找指定进程个数
​ cat test.txt | grep -nf key.txt 从文件中读取关键词对test.txt进行搜索, 且显示行号
​ grep ‘linux’ test1.txt test2.txt 从多个文件中查找关键词
​ cat test.txt |grep [u] 输出非u开头的行内容
​ cat test.txt |grep hat$ 输出以hat结尾的行内容

wc 统计指定文件中的字节数、字数、行数

  • ​ -c 统计字节数。
  • ​ -m 统计字符数。这个标志不能与
  • -c 标志一起使用。
  • -l 统计行数。
  • -w word统计单词数。计算由空白、跳格或换行字符分隔的字符串数量。
  • wc test.txt 显示:行数 单词数 字节数 文件名
    ls -l | wc -l 统计当前目录下的文件数

watch 周期性执行命令/定时执行命令

  • -n或–interval 指定间隔的时间(缺省2秒)
  • -d或–differences 会高亮显示变化的区域
  • watch -n 5 -d ‘cat /proc/loadavg’ 每10秒输出系统的平均负载

ln 文件链接

为某一个文件在另外一个位置建立一个同步的链接,可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。硬链接会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

软链接:
  • 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 软链接可以 跨文件系统 ,硬链接不可以
  • 软链接可以对一个不存在的文件名进行链接
  • 软链接可以对目录进行链接
硬链接:
  • 硬链接,以文件副本的形式存在。但不占用实际空间。
  • 不允许给目录创建硬链接
  • 硬链接只有在同一个文件系统中才能创建

ln

  • -b 删除,覆盖以前建立的链接 -i 交互模式,文件存在则提示用户是否覆盖

  • -d 允许超级用户制作目录的硬链接 -f 强制执行

  • -s 软链接(符号链接) -n 把符号链接视为一般目录 -v 显示详细的处理过程

    ln -s test.log link1 给文件创建软链接
    ln test.log ln1 给文件创建硬链接
    ln test.log /opt/soft 创建test.log的硬连接/opt/soft/test.log
    1)源文件被删除后,并没有影响硬链接文件;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在
    2)重建源文件后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效

make 编译命令

make是一个解释makefile中指令的命令工具,make可自动完成编译工作,而不用gcc命令单独编译每个源文件,并且可以只对程序员在上次编译后修改过的部分进行编译,提高了开发效率。Makefile文件描述了整个工程的编译、连接等规则。

Linux应用软件的安装包通常有三种:

  1. tar包,如software.tar.gz。它是使用UNIX系统的打包工具tar打包的。

1)“tar –xvf 解压后的tar包”进行解包;
  2) 阅读附带的INSTALL文件、README文件;
  3) 执行“./configure”命令为编译做好准备;
  4) 执行“make”命令进行软件编译;
  5) 执行“make install”完成安装;
  6) 执行“make clean”删除安装时产生的临时文件。

  1. rpm包,如software.rpm。它是Redhat Linux提供的一种包封装格式。

    rpm参数 : -i 安装软件 -t 测试安装,不是真的安装 -p 显示安装进度
       -U 升级安装 -v 检测套件是否正确安装 -f 忽略任何错误

    ​ 安装:rpm –ivh software.rpm  卸载: rpm –e software //软件名

  2. dpkg包,如software.deb。它是Debain Linux提供的一种包封装格式。

    安装:dpkg –i software-1.2.3-1.deb  卸载: dpkg –e software

    RedHat 系列
      1) 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
      2)包管理工具 yum
      3) 支持tar包

    Debian系列
      1) 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
      2) 包管理工具 apt-get
      3) 支持tar包

apt-get update 更新软件包,在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令
apt-get upgrade 更新已安装的软件包
apt-get dist-upgrade 升级系统
apt-get install packagename 安装软件包
apt-get remove packagename 卸载软件包(保留配置文件)
apt-get –purge remove packagename 卸载软件包(删除配置文件)
apt-get clean 删除包缓存中的所有deb //APT的底层包是dpkg, 而dpkg安装软件包时, 会将*.deb放在缓存中/var/cache/apt/archives/
apt-get autoclean  删除包缓存中的已经过期的deb
ar包

   Debian系列 
     1) 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数” 
     2) 包管理工具 apt-get 
     3) 支持tar包



```shell
apt-get update 更新软件包,在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令
apt-get upgrade 更新已安装的软件包
apt-get dist-upgrade 升级系统
apt-get install packagename 安装软件包
apt-get remove packagename 卸载软件包(保留配置文件)
apt-get –purge remove packagename 卸载软件包(删除配置文件)
apt-get clean 删除包缓存中的所有deb //APT的底层包是dpkg, 而dpkg安装软件包时, 会将*.deb放在缓存中/var/cache/apt/archives/
apt-get autoclean  删除包缓存中的已经过期的deb
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值