Linux文件处理命令
1.Linux返回上一级目录的命令
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd或cd ~ 返回home目录
cd - 目录名 返回指定目录
pwd命令格式: pwd 功能:显示出当前工作目录的绝对路径。
2.文件解、压缩
压缩打包命令:tar -zcvf /data/wwwroot/###.tar.gz 目标文件夹名
将abc文件夹打包压缩为abc.tar.gz:tar -zcvf /data/wwwroot/abc.tar.gz abc
解压命令:tar -xzvf file.tar.gz
将abc.tar.gz解压 tar -xzvf abc.tar.gz
zip/unzip命令
格式:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式。
常用选项:
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
3.目录文件处理命令
ls命令格式:ls [选项] [目录或文件]
功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
常用选项:
-a :列出目录下的所有文件,包括以 . 开头的隐含文件。
-d :将目录像文件一样显示,而不是显示其他文件。
ls -l filepath 第五列为文件字节数
[root@*******]$ ls -l ~/Downloads/jdk-8u60-linux-x64.tar.gz
-rw-rw-rw- 1 test test181238643 12月 2 2018 /home/test/Downloads/jdk-8u60-linux-x64.tar.gz
ls -h filepath h表示human, 加-h参数得到人好读的文件大小
[root@*******]$ ls -lh ~/Downloads/jdk-8u60-linux-x64.tar.gz
-rw-rw-rw- 1 test test 173M 12月 2 2018 /home/test /Downloads/jdk-8u60-linux-x64.tar.gz
ll 文件名 查看一个文件的详细信息
ll test/ 查看test文件下详细信息 ll显示当前文件下详细信息
mkdir命令格式:mkdir [选项] dirname…
功能:mkdir命令用来创建目录。
常用选项:
-p –parents 可以是一个路径名称。
mkdir –p 递归创建目录
例如:mkdir -p /tmp/a/b 在目录/tmp下递归创建a目录,并在a目录下创建b目录
rmdir 删除空目录
cp命令格式:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录。
常用选项:
-f –force 强行复制文件或目录,不论文件或目录是否已经存在。
-d 复制时保留文件链接。
cp 复制文件到某个目录下
cp –r 复制目录
cp –p 保留文件属性
将文件复制到多个目录中
cp /path/to/file /usr/dir1
cp /path/to/file /var/dir2
cp /path/to/file /nas/dir3
可以通过一句命令实现:echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file
mv命令格式:mv [选项] 源文件或目录 目标文件或目录
功能:mv命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
常用选项:
-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件(destination)已经存在时,就会询问是否覆盖。
rm命令删除文件或目录:rm /path/to/file.log
rm –r 删除目录
rm –f 强制执行
cat/tac命令格式:cat [选项] [文件];cat test.log
功能:查看目标文件的内容。
常用选项:
-b 对非空输出行编号。
-n 对输出的所有行编号。
-s 不输出多行空行。
du命令:du -b filepath 参数-b表示以字节计数,du -h filepath直接得出人好识别的文件大小
功能:显示文件大小
[root@*******]$ du -b log
2768430 log
[root@*******]$ du -h log
2.7M log
Linux权限管理
Linux的文件和目录有以下三种方式:r 、w 、x:可读,可写 、可执行
r-可读(read)
w-可写(write)
x-可执行(execute)
Linux的文件和目录又可以有四个所有者概念:
a、u、g 、o: 所有人、所有者 、所属组 、其他人
u:所有者
g:所属组
o:其他人
a:all(所有人)
举个例子说明一下
如上图所示,对于文件test.txt,文件所有者有读写权限,文件所属组和其他人就很只有读的权限。
假如现在修改文件的权限,修改为所有者只有读的权限,所属组有读和写的权限,其他人什么权限都没有。
一般写法:输入chmod u-w,g+x,o-r test.txt
日常写法:chmod 460 test.txt
在linux权限管理中,r对应4,w对应2,x对应1,所以460=r-- + rw- + --- =4+(4+2)+0=460
假如现在再次修改权限,让所有用人都有执行权限
chmod a+x test.txt 或 chmod 571 test.txt
chown 改变文件或目录的所有者
格式:chown newUser 文件名
让其他人拥有最高权限的最佳做法是使用chown更改文件的所有者。
// 同时改变文件的所有者和所属组
chown user:group 文件名
Linux服务器性能查看命令
1.top-Linux进程监控 top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器,显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
2.vmstat – 虚拟内存统计
vmstat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用,你需要安装一个包含了 vmstat 程序的 sysstat 软件包。命令格式的常见用法是:
# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
3.netstat-网络状态统计
netstat -t/-u/-l/-r/-n【显示网络相关信息,-t:TCP协议,-u:UDP协议,-l:监听,-r:路由,-n:显示IP地址和端口号】
netstat -tlun【查看本机监听的端口】
netstat -an【查看本机所有的网络】
netstat -rn【查看本机路由表】
列出所有端口:netstat -a
列出所有的TCP端口:netstat -at
列出所有的UDP端口:netstat -au
列出所有处于监听状态的socket:netstat -l
列出所有监听TCP端口的socket:netstat -lt
列出所有监听UDP端口的socket:netstat -lu
找出程序运行的端口:netstat -ap | grep ssh
找出运行在指定端口的进程:netstat -an | grep ‘:80’
root@iZ94ccp83dlZ network-scripts]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8006 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
...
4.利用进程来查看
命令里 ps -aux | grep xxx 是查看某个进程或者服务是否存在。
kill可以关闭该服务
5.iotop-监控Linux磁盘I/O
iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。
# iotop
Linux查看日志常用命令
1.查看日志常用命令
tail:
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep "debug" 查询关键字的日志
cat filename 一次显示整个文件
2. 应用场景一:按行号查看---过滤出关键字附近的日志
1)cat -n test.log |grep "debug" 得到关键日志的行号
2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
3. 应用场景二:根据日期查询日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点
4.应用场景三:日志内容特别多,打印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n test.log |grep "debug" >debug.txt
Linux系统根目录下各个目录的作用
/bin 二进制可执行命令。该目录下存放着普通用户的命令
/dev 系统的设备文件,即设备的驱动程序
/home 存放用户文件的主目录,用户数据
/lib 存放着和系统运行相关的库文件
/mnt 存放临时的映射文件,通常是一些用来安装其他设备的子目录
/boot 存放启动linux的核心文件
/media 存放着可移除的设备,比如软盘,光盘
/misc 储存着一些特殊的字符的定义
/net 存放着和网络相关的一些文件
/proc 存放着用户与内核的交互信息
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序
/srv 系统启动服务时可以访问的数据库目录
/tmp 临时文件,重启后自动清空
/var 存放系统产生的经常变化的文件
/etc 系统所有的配置文件都在这个目录中
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置
/root 超级用户的目录
/selinux 主要用来加固操作系统,提高系统的安全性
/sys 管理设备文件
/usr 最大的目录,存放着应用程序和文件
/lost-found 这个目录平时是空的,当系统非正常关机时在操作的文件便会储存在这里