Linux常用命令

Linux的文件系统目录配置

​ /home 每个账号在该目录下都有一个文件夹,进行数据的管理
​ /usr 有点像windows的program files和winNT结合的目录,主要包括系统的主要程序、本机端额外安装的软件、图形接口所需要的文档、额外的函数库、共享目录与文件等
​ /bin /usr/bin /usr/local/bin 存放执行挡 如可执行的指令等
​ /boot 存放linux开机会用到的文件
​ /dev 存放linux的任何装置和接口设备文档
​ /etc 存放系统设定文档 如账号密码文件、各种服务的起始档等
​ /lib /usr/lib /usr/local/lib 系统使用的函数库放置的目录
​ /mnt /media 是软盘和光盘预设挂载点的地方
​ /opt 主机额外安装软件所摆放的目录
​ /proc 该目录是一个虚拟档案系统,他放置的数据都是在内存中,所 以本身不占用任何的硬盘空间
​ /root 系统管理员的家目录
​ /sbin /usr/sbin /usr/local/sbin 放置一些只有系统管理员才能动用 的执行指令
​ /srv 一些服务启动之后,这些服务所需要取用的数据目录
​ /tmp 让一般使用者或者正在执行的程序暂时放置档案的地方
​ /var 主要针对系统执行过程中,常态性变动档案放置的目录

命令帮助

--help 
man [命令]

查找文件

根据名称查找/目录下的filename.txt文件。

find / -name filename.txt  

递归查找所有的xml文件

find . -name "*.xml" 

递归查找所有文件内容中包含hello world的xml文件

find . -name "*.xml" |xargs grep "hello world"  

查找所以有的包含spring的xml文件

grep -H 'spring' *.xml  

删除文件大小为零的文件

find ./ -size 0 | xargs rm -f &  

查找当前目录中的所有jar文件

ls -l | grep '.jar'  

显示所有以d开头的文件中包含test的行。

grep 'test' d*  

显示在aa,bb,cc文件中匹配test的行。

grep 'test' aa bb cc  

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

grep '[a-z]\{5\}' aa  

查看一个程序是否运行

查看所有有关tomcat的进程

ps -ef|grep tomcat  

终止线程

终止线程号位19979的进程

kill -9 19979  

查看文件,包含隐藏文件

ls -al 

当前工作目录

pwd 

复制文件

复制文件

cp source dest  

递归复制整个文件夹

cp -r sourceFolder targetFolder  

远程拷贝

scp sourecFile romoteUserName@remoteIp:remoteAddr  

创建目录

mkdir newfolder 

删除目录

删除空目录

rmdir deleteEmptyFolder  

递归删除目录中所有内容

rm -rf deleteFile  

移动文件

mv /temp/movefile /targetFolder 

重命名

mv oldNameFile newNameFile 

切换用户

su -username 

修改文件权限

file.java 的权限

chmod 777 file.java 

r表示读、w表示写、x表示可执行

-rwxrwxrwx, 

压缩文件

tar -czf test.tar.gz /test1 /test2 

列出压缩文件列表

tar -tzf test.tar.gz 

解压文件

tar -xvzf test.tar.gz 

查看文件头10行

head -n 10 example.txt 

查看文件尾10行

tail -n 10 example.txt 

查看日志类型文件

这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。

tail -f exmaple.log  

使用超级管理员身份执行命令

使用管理员身份删除文件

sudo rm a.txt  

查看端口占用情况

查看端口8080的使用情况

netstat -tln | grep 8080  

查看端口属于哪个程序

lsof -i :8080 

查看进程

查看java进程

ps aux|grep java  

查看所有进程

ps aux  

以树状图列出目录的内容

tree a 

文件下载

wget http://file.tgz  
curl http://file.tgz

网络检测

ping www.baidu.com 

远程登录

ssh userName@ip 

打印信息

打印java home环境变量的值

echo $JAVA_HOME  

查看命令

cat /proc/filesystems
cat -n :显示文件所有内容,-n表示打印行号

查看目录的使用情况命令

df -h //以G为单位查看
df -m //以M为单位查看

查看文件或目录大小

du -sh

目录的切换命令

cd ..
cd ~
cd /home
cd ./home

打印当前的路径

pwd

文件处理

交集

comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

排序

sort file1 file2 排序两个文件的内容 
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
sort file1 file2 | uniq -u 删除交集,留下其他的行
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

合并

paste file1 file2 合并两个文件或两栏的内容 
paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分

创建目录

mkdir (-m 参数可以预设权限 -p参数可以递归的创建目录)

删除目录

rmdir(只能删除空目录)
如果连同内容都删除采用 rm -rf 命令

取文件名

basename

取得路径名

dirname

Linux档的搜索

whereis locate(这两者是直接搜索数据库,速度快)

find(搜索硬盘,速度较慢,但数据最齐全)

which(用来搜索执行挡$Path设置的目录)

which ls
whereis file //找出file的位置
locate file //查找所有目录下的文件
find file //查看当前目录下的所有文件

同时显示两个文件的差异

diff -c file1 file2
diff -y file1 file2 //以并列的方式显示两个文件的差异

文档链接

软连接:源文件消失,目的文件也消失
硬连接: 其中一个修改,另一个也修改,但删除源文件时,目的文件不删除

In file1 file2     //建立file1的链接,命名为file2
In -s file1 file2 //建立file1的软连接

Linux查看CPU运行状态

mpstat            //mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。

vmstat //只能查看所有CPU的平均信息;查看cpu队列信息;
vmstat -n 3 //每隔3秒刷新一次
vmstat 2 3 //每隔2秒刷新一次,共刷新3次

iostat //只能查看所有CPU的平均信息。
iostat -c // -c 选项,该选项的作用是仅显示系统 CPU 的运行情况

sar //与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
sar -u 3 5 //每 3 秒统计一次,统计 5 次

top //显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。

uptime //uptime 命令是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况

sar 命令的基本格式

[root@localhost ~]# sar [options] [-o filename] interval [count]
  • -o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;
  • interval:表示采样间隔时间,该参数必须手动设置;
  • count:表示采样次数,是可选参数,其默认值为 1;
  • options:为命令行选项,由于 sar 命令提供的选项很多,这里不再一一介绍,仅列举出常用的一些选项及对应的功能,如表 1 所示。
sar 功能
-A 显示系统所有资源设备(CPU、内存、磁盘)的运行状况。
-u 显示系统所有 CPU 在采样时间内的负载状态。
-P 显示当前系统中指定 CPU 的使用情况。
-d 显示系统所有硬盘设备在采样时间内的使用状态。
-r 显示系统内存在采样时间内的使用情况。
-b 显示缓冲区在采样时间内的使用情况。
-v 显示 inode 节点、文件和其他内核表的统计信息。
-n 显示网络运行状态,此选项后可跟 DEV(显示网络接口信息)、EDEV(显示网络错误的统计数据)、SOCK(显示套接字信息)和 FULL(等同于使用 DEV、EDEV和SOCK)等,有关更多的选项,可通过执行 man sar 命令查看。
-q 显示运行列表中的进程数、进程大小、系统平均负载等。
-R 显示进程在采样时的活动情况。
-y 显示终端设备在采样时间的活动情况。
-w 显示系统交换活动在采样时间内的状态。

vmstat 命令的基本格式

[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat [选项]

-a 的含义是用 inact/active(活跃与否) 来取代 buff/cache 的内存输出信息。

选项 含义
-fs -f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。 -s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。
-S 单位 令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
-d 列出硬盘有关读写总量的统计表。
-p 分区设备文件名 查看硬盘分区的读写情况。

系统信息

arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS

系统的关机、重启以及登出

shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销