一.常用的一些命令
(一).系统目录结构
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.命令提示符
1
2
3
4
5
6
7
8
9
10[root@localhost ~]# 其中: root 当前登陆用户 localhost 主机名 ~ 当前所在目录(家目录) 如果是root代表/root; 如果是普通用户user1代表/home/user1 # 超级用户的提示符# 普通用户提示符$
2.命令格式
1
2
3
4
5
6
7命令 [选项] [参数] 注意: 个别命令的使用不遵循次格式 当有多个选项时,可以写在一起 简化选项与完整选项 -a 等于 --all
3.查询目录中内容:ls
1
2
3
4
5
6ls [选项] [文件或目录] 选项: -a 显示所有文件,包括隐藏文件 -l 显示详细信息 -h 人性化显示文件大小
ls -l 等价于 ll
ls -lh
ls -lah
ls / :表示从根目录下去寻找
clear 清屏:实际上只是把之前的内容给顶上去了,并没有真正的清除
二,文件处理命令
1
2
3
4
5
6
7查询所在目录位置:pwd 创建文件:touch 用法:touch 文件名 建立目录:mkdir 用法:mkdir -p [目录名]
1
2
3
4
5
6
7
8
9
10
11
12切换所在目录 cd [目录] 命令英文原意: change directory 简化操作: cd ~ 进入当前用户的家目录 cd 同上 cd - 进入上次目录 cd .. 进入上一级目录 cd . 进入当前目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15删除空目录:rmdir 用法:rmdir [目录名] 删除文件或目录:rm 用法:rm -rf [文件或目录] 选项: -r 递归删除目录 -f 强制 复制命令:cp 剪切或改名命令:mv mv 源文件 文件夹 表示把源文件剪切到指定的文件夹中 mv 源文件 一个不存在的文件名 表示把源文件重命名 mv 源文件 文件夹/一个不存在的文件名 表示把源文件剪切到指定的文件夹并重命名
三.文件搜索命令
(1)命令的搜索命令和环境变量
1
2
3
4
5
6
7
8
9whereis 命令名 #搜索命令所在路径及帮助文档所在位置 which 文件名 #搜索命令所在路径及别名 **找到指定命令的绝对路径** PATH环境变量: PATH环境变量:定义的是系统搜索命令的路径 相当于window下的path echo $PATH **方便以后我们自己去追加PATH变量**
(2).文件搜索命令find:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39find [搜索范围] [搜索条件] 示例: 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 #查找没有所有者的文件
(3).字符串搜索命令:grep
1
2
3
4
5
6
7字符串搜索命令: grep [选项] 字符串 文件名 #在文件当中匹配符合条件的字符串 选项: -i 忽略大小写 -v 排除指定字符串
find命令和grep命令的区别:
find命令:在系统中搜索符合条件的文件名.
grep命令:在文件中搜索符合条件的字符串.
四.帮助命令
1
2
3
4
5
6
7
8
9
10
11man命令: 用法:man ls #查看ls的帮助 选项帮助: 命令 --help #获取命令选项的帮助 实例:ls --help 但是不适用内部命令,如cd: help cd
总结就是:我们不需要去记住每个命令的每种用法,只需要记住命令就可以了.比如记住了find,通过man find 或者find --help 又或者去查阅相关的文档查看具体的使用方法
五.压缩与解压缩命令
(1).zip格式
1
2
3
4
5
6
7.zip格式: 压缩用法: zip 压缩文件名 原文件 zip -r 压缩文件名 原文件夹 解压用法: unzip 压缩文件
压缩文件和文件夹
解压
(2)…gz格式
1
2
3
4
5
6
7
8.gz格式: 压缩用法: gzip 原文件 压缩为.gz格式的压缩文件,原文件会消失 gzip -r 目录 压缩目录下的所有子文件,但是不能压缩目录 解压用法: gzip -d 压缩文件 gunzip 压缩文件
(3).bz2格式
1
2
3
4
5
6
7.bz2格式: 压缩用法: bzip2 源文件 压缩为.bz2格式,不能保留源文件 **注意:bzip2命令不能压缩目录** 解压用法: bzip2 -d 压缩文件 bunzip2 压缩文件
.bz2和.gz的区别:
.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。
前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的
(4).打包命令&解打包
1
2
3
4
5
6
7
8
9
10
11
12打包命令&解打包: 打包命令: tar -cvf 打包文件名 源文件 选项: -c 打包 -v 显示过程 -f 指定打包后的文件名 解打包: tar -xvf 打包文件名 选项: -x 解打包
1
2
3
4
5
6
7
8
9.tar.gz格式: 选项:-z 压缩为.tar.gz格式 压缩用法: tar -zcvf 压缩包名.tar.gz 源文件 解压用法: tar -zxvf 压缩包名.tar.gz tar -zxvf 压缩包名.tar.gz -C 指定目录
1
2
3
4
5
6
7
8.tar.bz2命令: 选项:-j 压缩为.tar.bz2格式 压缩用法: tar -jcvf 压缩包名.tar.bz2 源文件 解压用法: tar -jxvf 压缩包名.tar.bz2
六.关机和重启命令(了解)
注意:服务器一般是不会关机的,但是会重启
1
2
3
4
5
6
7
8
9
10shutdown命令: 用法 shutdown [选项] 时间 选项: -c 取消前一个关机命令 -h 关机 -r 重启 #使用shutdown会在关机的时候帮我们保存数据
1
2
3
4
5
6
7
8
9
10其他关机命令: halt poweroff init 0 #使用这三个命令不是特别安全,因为它们不会帮我们保存数据.
1
2
3
4
5
6其他重启命令: reboot init 6
七.其他命令
1
2
3
4
5
6
7
8
9
10
11
12磁盘使用情况df: 选项-h: 格式化显示输出磁盘使用情况 查看操作历史history: 用于显示执行过的历史命令记录 在显示器输出内容:echo 文件查看命令cat 日志监控命令:tail 默认在屏幕上显示指定文件的末尾10行 -f 显示文件最新追加的内容。 -n 行数 在屏幕上显示指定文件的末尾参数设置的行数
** tail free 和 top 是面试的时候可以用来回答的,也是实际开发中,程序员会去关注的点**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48查看内存占用:free 查看任务进程:top 第一行: 10:01:23 — 当前系统时间 126 days, 14:29 — 系统已经运行了126天14小时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 — 进程名称(命令名/命令行)
最后
以上就是唠叨野狼最近收集整理的关于Java开发之linux常用命令的全部内容,更多相关Java开发之linux常用命令内容请搜索靠谱客的其他文章。
发表评论 取消回复