Linux基本命令-----------------------学习笔记
来源:互联网 发布:收纳盒 知乎 编辑:程序博客网 时间:2024/06/05 05:20
一些基本命令供查询学习Linux使用
rm
$ rm
删除文件$ rmdir
删除文件夹$ rm -f
强行删除文件$ rm -r
递归删除文件夹里面的所有文件
cp
$ cp -r dir path
移动dir整个目录到path路径下
查看文件内容
$ cat
$ nl
会显示行号
文件权限
- 第一行:
前三个:文件所有者的读、写和执行权限
中间三个:用户组的读、写和执行权限
后面三个:其他用户的读、写和执行权限 - 第二行:1表示为文件;3表示目录,数字表示目录中文件个数。
- 第三行:文件所有者
- 第四行:文件所属用户组
df du
:磁盘占有情况
$ df
$ df -lh
一般使用$ df -lh
显示以MB,KB为单位。
$ du file.txt
du
用于显示当前一个文件或者目录占用的磁盘空间(单位kb)
$ du -s
:显示当前目录下文件大小的总和
ps
:进程快照
ps(process status
)命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程。为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的。 $ ps -f
- UID 进程所属用户的ID,即哪个用户创建了该进程
- PID 进程ID
- PPID 父进程ID
- C CPU使用率
- STIME 进程被创建的时间
- TTY 与进程有关的终端类型,该 process 是在那个终端机上面运作,若与终端机无关,则显示 ? (关于pts/ tty/ 暂时还不明白)
- TIME 进程使用CPU的时间
- CMD 创建该进程的命令
$ ps -e
在其中firefox其他应用程序的进程
注意:在这里可以用$ kill 3366
来杀掉firefox进程。
也可以用正则表达式来寻找firefox的进程ID。 $ ps –e | grep firefox
$ ps –e | grep ‘firefox’
top
(或者free
):实时进程信息
$ top
实时查看系统中所有进程信息,与统计结果。 $ top –p id
单独查看某个进程的具体信息。
前面5行统计信息区
- 20:23:17 当前系统时间
- up 1:13 表示系统运行了1h13m
- users 2个用户(root wqh)
- load average 0.02,0.12,0.13表示1分钟、5分钟、15分钟的负载情况
- tasks 任务(进程)3个运行 1个zombie(僵尸进程)
- CPU 状态 us 用户空间占有 ,sy内核空间占有 ,id空闲百分比,wa IO等待占有 hi 硬中端,si软中端(在这里CPU的使用比率和windows概念不同,需要理解Linux系统用户空间和内核空间的相关知识)
- Mem 内存使用 Swap虚拟内存交换区
下面几行
- VIRT 虚拟内存使用信息 kb
- RES 进程使用,未被换出的物理内存大小 kb
- S 进程状态 (R:Running, S:Stopped)
$ free
显示空闲的、已用的物理内存及swap内存,及被内核使用的buffer
再这里主要讨论-/+ buffer/cache
这一行是什么
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
jobs
jobs
命令可以用来查看系统中正在运行的任务,包括后台运行的任务。该命令可以显示任务号及其对应的进程ID。一个任务可以对应于一个或者多个进程号。
fg
命令可以将后台任务调到前台 bg
命令是将前台暂停的任务调到后台继续运行。 $ fg jid
将jid的job任务调向前台运行
vmstat
:查看虚拟内存
Virtual Meomory Statistics.
- procs r(running)表示运行队列(也就是多少个进程分配到了CPU,并行运行进程数),这个值一般不能超过CPU内核的数目。 b(block)阻塞队列,表示阻塞的进程数量
- memory swpd 虚拟内存的使用大小,如果大于0,表示你的机器物理内存不足了.free 空闲的物理内存大小 buff缓冲区(用于解决低速设备与高速设备的速度不一样) cache缓存区
- swap si每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了 so so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
- io bi块设备每秒接收的块数量 bo 块设备每秒发送的块数量
- system in 每秒CPU中断次数 cs每秒CPU中断次数
下面有个问题:active memory是什么东西?
- 1
- 2
- 3
- 4
- 5
- 6
uptime
:查看系统负荷
Load average:表示1分钟、5分钟、15分钟内系统的平均负荷
当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。
一般来说其CPU的核的数量决定了最大负荷,4核的CPU,工作量饱和的时候为4
(一般看15分钟的那个数据,因为1min具有瞬时性,不具有代表性)
netstat
:显示网络状态信息
netstat的用法比较多,在这里列出一些比较常用的几个命令 $ netstat -at
:列出所有的TCP端口
$ netstat -s
:统计所有的端口信息
$ netstat -r
:显示核心路由表
$ netstat -an | grep ':22'
:找出在指定端口运行的进程
$ netstat -anp | grep ssh
$ netstat -anp | grep firefox
:查看某个进程的端口号
lsof
:列出当前系统打开文件
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
(图稍微有点下) $ lsof -i tcp:22
:列出端口22被那些进程占用
$ lsof -c mysql
:列出某个进程所打开的文件
who
w
whoami
w
-> 系统管理员若想知道某一时刻用户的行为(得到的结果比who更完整) who
->系统管理员若想知道某一时刻登陆的用户
wc
:文件行数统计
$ wc –l filename
统计行数 $ wc –c filename
统计字节数
source
:配置生效
使得配置后的文件立即生效 $ source /etc/profile
使得配置的PATH环境变量立即生效在shell编程中,可以表示文件包含,即相当于import的意思
export
将变量导出为全局变量
下面为配置Java环境要修改的PATH文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
注意linux用 :来分割目录
chmod
一般创建的文件没有x权限(执行权限),所以要添加执行权限 $ chmod –x ./myfile
find
, which
, type
,locate
, whereis
:查找文件
$ find [dir] –name [“正则表达式”] –ls
$ find . -name '*.sh' -ls
:查找当前文件夹下所有.sh文件
$ find . -type d -name "*p"
:查找当前目录下,所有以p结尾的目录
$ find . -size +1000k -print
:查找当前目录中大于1000k的文件
which
:用于查找PATH路径下的某个命令是否存在.(cd 为bash内置命令,所以没有)
type
:判断一个命令是否为系统自带
locate
:其实是”find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
关机指令
$ shutdown –r now
重启now $ shutdown –h now
关机now $ reboot
$ halt
$ init 0
关机 $ init 1
重启
iostat
:查看系统IO统计信息
Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.
avg-cpu:(4 CPU)
- %user:CPU处在用户模式下的时间百分比。
- %nice: CPU处在带NICE值的用户模式下的时间百分比。
- %system: CPU处在系统模式下的时间百分比。
- %iowait: CPU等待输入输出完成时间的百分比。
- %idel:CPU空闲时间百分比。
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU
- 1
- 2
- 1
- 2
- 3
- 4
- 5
ping
traceroute
ping:通过发送ICMP报文来测试网络连通性
traceroute: 程序利用增加存活时间(TTL,Time to live)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。
Traceroute的原理是非常非常的有意思,它收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。
有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了,所以,说Traceroute是一个骗子一点也不为过:)
防火墙封掉了ICMP的返回信息
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,表示三个数据包返回后,网关响应时间。
watch
周期性的执行某个命令 $ watch –n 10 ‘uptime’
每10秒输出一次系统负载情况
at
与crond
at:在指定日期执行某一个操作(一次) $ at –m 16:55 7/29/16
$ at> rm wqh
按住Ctrl+ D
在16年7月29日 16:55 删除wqh文件
crond周期性执行某个任务
http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
file
用于探测某个文件的类型。 $ file –i filename
可以查看一个文件的MIME类型.
- 1
- linux基本命令学习笔记
- linux基本命令学习笔记
- linux基本命令学习笔记
- linux学习笔记-基本命令
- Linux基本命令-----------------------学习笔记
- Linux学习笔记——基本命令
- Linux 基本命令个人学习笔记
- linux 学习笔记一 --几个基本命令
- linux 学习笔记2--基本命令
- Linux学习笔记之基本命令一
- Linux基本命令常用命令 学习笔记
- 【Linux学习笔记二】Shell基本命令
- Linux学习笔记 -- day01 基本命令
- Linux基本命令总结及学习笔记
- linux学习笔记之基本命令
- Linux 基本命令学习笔记《三》
- Linux 学习笔记(一) -----命令基本格式
- linux学习笔记--基本命令的学习--目录处理命令
- Mybatis实现原理深入解析
- 华为的冬天 任正非
- springMVC笔记系列(11)——使用 POJO 对象绑定请求参数值
- h264和h265
- H.264 基础及 RTP 封包详解
- Linux基本命令-----------------------学习笔记
- [转载]Android分割线divider(内含Android虚线分割线失效成实线解决方案)
- 细心灵活
- StartSSl申请免费https证书
- Spring的AOP
- 匿名函数与闭包的区别
- openGL超级宝典第五版+VS2010/2012的环境配置
- Android超时机制的处理(很不错)
- 四则运算(非递归)