Java开发之linux常用命令

一.常用的一些命令

(一).系统目录结构
Java开发之linux常用命令_第1张图片
1、/- 根
每一个文件和目录从根目录开始。
只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样

2、/bin中 - 用户二进制文件
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
例如:ps、ls、ping、grep、cp

3、/sbin目录 - 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

4、/etc - 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。

5、/dev - 设备文件
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

6、/proc - 进程信息
包含系统进程的相关信息。
这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。
这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime

7、/var - 变量文件
var代表变量文件。
这个目录下可以找到内容可能增长的文件。
这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

8、/tmp - 临时文件
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。

9、/usr - 用户程序
包含二进制文件、库文件、文档和二级程序的源代码。
/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

10、/home - HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita

11、/boot - 引导加载程序文件
包含引导加载程序相关的文件。
内核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

12、/lib - 系统库
包含支持位于/bin和/sbin下的二进制文件的库文件.
库文件名为 ld或lib.so.*
例如:ld-2.11.1.so,libncurses.so.5.7

13、/opt - 可选的附加应用程序
opt代表可选的。
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。

14、/mnt - 挂载目录
临时安装目录,系统管理员可以挂载文件系统。

15、/media - 可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

16、/srv - 服务数据
srv代表服务。
包含服务器特定服务相关的数据。
例如,/srv/cvs包含cvs相关的数据。

(二).ssh协议
ssh (安全外壳协议):
ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

(三).命令基本格式
在线查询Linux命令:http://www.runoob.com/linux/linux-tutorial.html

(1).命令基本格式
1.命令提示符

[root@localhost ~]#
其中:
	root			当前登陆用户
	localhost	主机名
	~				当前所在目录(家目录) 
					如果是root代表/root;
					如果是普通用户user1代表/home/user1
	#				超级用户的提示符#
					普通用户提示符$				

2.命令格式

命令 [选项] [参数]

注意: 个别命令的使用不遵循次格式
		当有多个选项时,可以写在一起
		简化选项与完整选项
		-a 等于 --all

3.查询目录中内容:ls

ls [选项] [文件或目录]
选项:
	-a	显示所有文件,包括隐藏文件
	-l	显示详细信息
	-h	人性化显示文件大小

在这里插入图片描述
ls -l 等价于 ll
ls -lh
Java开发之linux常用命令_第2张图片
ls -lah
Java开发之linux常用命令_第3张图片
ls / :表示从根目录下去寻找
在这里插入图片描述
clear 清屏:实际上只是把之前的内容给顶上去了,并没有真正的清除

二,文件处理命令

查询所在目录位置:pwd

创建文件:touch 	用法:touch 文件名

建立目录:mkdir
	用法:mkdir -p [目录名]

Java开发之linux常用命令_第4张图片

切换所在目录

cd [目录]
	命令英文原意: change directory

简化操作:
cd ~		进入当前用户的家目录
cd 		同上
cd -		进入上次目录
cd ..		进入上一级目录
cd .		进入当前目录

Java开发之linux常用命令_第5张图片

删除空目录:rmdir	用法:rmdir [目录名]

删除文件或目录:rm
	用法:rm -rf [文件或目录]
	选项:
	-r	递归删除目录
	-f	强制

复制命令:cp

剪切或改名命令:mv
mv 源文件 文件夹  表示把源文件剪切到指定的文件夹中
mv 源文件 一个不存在的文件名  表示把源文件重命名
mv 源文件 文件夹/一个不存在的文件名 表示把源文件剪切到指定的文件夹并重命名

Java开发之linux常用命令_第6张图片

三.文件搜索命令

(1)命令的搜索命令和环境变量

whereis 命令名	#搜索命令所在路径及帮助文档所在位置
which 文件名 	#搜索命令所在路径及别名
**找到指定命令的绝对路径**

PATH环境变量:	PATH环境变量:定义的是系统搜索命令的路径
	相当于window下的path
echo $PATH
**方便以后我们自己去追加PATH变量**

Java开发之linux常用命令_第7张图片
(2).文件搜索命令find:

find [搜索范围] [搜索条件]
示例:
find / -name install.log
#**避免大范围搜索,会非常耗费系统资源**
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
Linux中的通配符
*		匹配任意内容
?		匹配任意一个字符
[]		匹配任意一个中括号内的字符
find /var/log -mtime +10
#查找10天前修改的文件
-10		10天内修改文件
10			10天当天修改的文件
+10		10天前修改的文件
atime	文件访问时间
ctime		改变文件属性时间
mtime	修改文件时间

find . -size 25k
#查找文件大小是25KB的文件,注意k是小写的.
-25k		小于25KB的文件
25k		等于25KB的文件
+25k		大于25KB的文件
find . -size 25M
#查找文件大小是25MB的文件,注意M是大写的.

find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
-a		and		逻辑与,两个条件都满足
-o		or			逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式


find /root -iname install.log	#不区分大小写
find /root -user root	#按照所有者搜索
find /root -nouser		#查找没有所有者的文件

在这里插入图片描述
Java开发之linux常用命令_第8张图片
Java开发之linux常用命令_第9张图片
(3).字符串搜索命令:grep

字符串搜索命令:
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i	忽略大小写
-v	排除指定字符串

Java开发之linux常用命令_第10张图片
在这里插入图片描述

find命令和grep命令的区别:
find命令:在系统中搜索符合条件的文件名.
grep命令:在文件中搜索符合条件的字符串.

四.帮助命令

man命令:	用法:man ls	#查看ls的帮助

选项帮助:

命令 --help	#获取命令选项的帮助

实例:ls --help

但是不适用内部命令,如cd:
help cd

总结就是:我们不需要去记住每个命令的每种用法,只需要记住命令就可以了.比如记住了find,通过man find 或者find --help 又或者去查阅相关的文档查看具体的使用方法

五.压缩与解压缩命令

(1).zip格式

.zip格式:

压缩用法:	zip 压缩文件名 原文件
	zip -r 压缩文件名 原文件夹

解压用法:	unzip 压缩文件

压缩文件和文件夹
Java开发之linux常用命令_第11张图片
解压
Java开发之linux常用命令_第12张图片
(2)…gz格式

.gz格式:
压缩用法:	gzip 原文件     压缩为.gz格式的压缩文件,原文件会消失
	gzip -r 目录     压缩目录下的所有子文件,但是不能压缩目录

解压用法:
	gzip -d 压缩文件
	gunzip 压缩文件

(3).bz2格式

.bz2格式:
压缩用法:	bzip2 源文件	压缩为.bz2格式,不能保留源文件
	        **注意:bzip2命令不能压缩目录**
	
解压用法:	bzip2 -d 压缩文件
	        bunzip2 压缩文件

.bz2和.gz的区别:

.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。
前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的

(4).打包命令&解打包

打包命令&解打包:

打包命令:	tar -cvf 打包文件名 源文件
选项:
-c	打包
-v	显示过程
-f	指定打包后的文件名

解打包:	tar -xvf 打包文件名
选项:
-x	解打包
.tar.gz格式:

选项:-z 	压缩为.tar.gz格式

压缩用法:	tar -zcvf 压缩包名.tar.gz 源文件

解压用法:	tar -zxvf 压缩包名.tar.gz
	tar -zxvf 压缩包名.tar.gz -C 指定目录
.tar.bz2命令:

选项:-j	压缩为.tar.bz2格式

压缩用法:	tar -jcvf 压缩包名.tar.bz2 源文件

解压用法:	tar -jxvf 压缩包名.tar.bz2

六.关机和重启命令(了解)

注意:服务器一般是不会关机的,但是会重启

shutdown命令:

用法	shutdown [选项] 时间
选项:
-c	取消前一个关机命令
-h	关机
-r	重启

#使用shutdown会在关机的时候帮我们保存数据
其他关机命令:

halt

poweroff

init 0

#使用这三个命令不是特别安全,因为它们不会帮我们保存数据.
其他重启命令:

reboot

init 6

七.其他命令

磁盘使用情况df:		选项-h: 格式化显示输出磁盘使用情况

查看操作历史history:	用于显示执行过的历史命令记录

在显示器输出内容:echo

文件查看命令cat

日志监控命令:tail	 默认在屏幕上显示指定文件的末尾10-f  显示文件最新追加的内容。
	 -n 行数   在屏幕上显示指定文件的末尾参数设置的行数

** tail free 和 top 是面试的时候可以用来回答的,也是实际开发中,程序员会去关注的点**

查看内存占用:free

查看任务进程:top

第一行:
10:01:23 — 当前系统时间
126 days, 14:29 — 系统已经运行了12614小时29分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

第二行:
Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)

第五行:swap交换分区
2031608k total — 交换区总量(2GB)
2556k used — 使用的交换区总量(2.5M)
2029052k free — 空闲交换区总量(2GB)
4231276k cached — 缓冲的交换区总量(4GB)

第五行以下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

你可能感兴趣的:(linux,开发工具使用,linux,操作系统,centos)