java程序员所需要掌握的一点linux知识
Unix介绍
Unix主要分为内核(kernel)和外壳(shell)两部分组成,kernel的作用操作硬件系统,而shell是连接用户与kernel之间的桥梁,它将用户输入的命令,解释给kernel,并通过kernel操作计算机.
Shell的分类:
1. Bourne shell 简称 sh 提示符 $
2. Korn shell 简称 ksh 提示符 未知
3. C shell 简称 csh 提示符 %
4. Bourne_again shell 简称 bash 提示符 $
打开一个终端,输入各个shell的简称,变可以切换到该shell编辑模式.但无论哪种shell在使用root用户登录的时候提示符都为 #
Linux 下 ‘/’ 下的文件夹中 opt目录下存放的一般为应用程序 etc 目录下存放的一般为系统配置文件 dev 目录下存放的一般为外置设备文件,如打印机 usr 目录下存放的一般为系统文件
整个系统的所有的用户信息都存放在/etc/passwd文件下, 如:
root : x : 0 : 1 : Super User : / : /bin/sh 解析如下:
用户名 : 密码占位符 : 用户ID号 : 用户所属组的组ID : 用户描述 : 用户主目录 : 用户登录时默认shell
每个用户都有自己的主目录,对自己的主目录有绝对的访问权及操作权
终端常用命令
su USERNAME 切换到指定用户 USERNAME 为用户名
clear 清屏
pwd 返回当前目录的全路径
date 返回当前系统时间
cal 返回当前系统时间的月历表
. 当前目录
.. 当前目录的上一级目录
cd 回到当前用户的主目录
cd PATH 跳转到指定目录去 PATH 目标目录的全路径
cd ~USERNAME 跳转到指定用户的主目录去 USERNAME 为用户名
ls 简单列表的形式显示当前目录下所有的文件及目录(不包含隐藏文件)
ls a 简单列表的形式显示当前目录下所有的文件及目录(包含隐藏文件)
ls l 详细列表的形式显示当前目录下所有的文件及目录
ls t 按最后一次修改时间排序显示当前目录下所有的文件及目录
例: ls l
- rw- rw- r-- 4 user tarena 1024 Fed22 09:20 a.txt 解析:
类型 权限 硬链接数 属主 属组 大小 最后一次修改日期 文件名
类型:
- 代表文件
d 代表目录
@ 代表软链接(快捷方式)
权限:
r 代表 读权限
w 代表 写权限
x 代表 执行权限
- 代表 权限占位符
权限分为 3组 分别用3个权限符表示, 3组分别代表 属主权限 属组权限 其他人权限
如上边的例子: 这个文件的主人有对此文件的读写权限, 跟这个文件的主人同组的其他人有对这个文件有读写权限 其他的用户 只有读这个文件的权限
chmod (who)(op)(permission) 修改权限命令
who 包括 u g o a u代表属主 g 代表属组 o 代表其他人 a 代表所有人
op 包括 = - + = 代表赋值 代表减权限 + 代表加权限
permission 包括 r w x r代表 读权限 w 代表 写权限 x代表执行权限
permission 可以用数字表示 r = 4 w = 2 x = 1 如 6表示读写权限 7表示全权限
例如:
chmod a=rw a.txt 修改文件a.txt的权限 使所有人都对这个文件有读写权限
chmod u+x a.txt 修改文件a.txt的权限 给属主增加一个执行权限
chmod u+x go-w a.txt 修改文件a.txt的权限 给属主增加一个执行权限,并移除属组及其他人的写权限
chmod 644 a.txt 修改文件a.txt的权限 给属主读写权限,其他人只读权限
chmod 7777 DIRNAME 修改一个目录为临时目录 所有人对该目录都有绝对访问权,但计算机重启后该目录会清空 里边的内容都只保存在内存中 DIRNAME 目录路径
硬链接数: 该文件的其他快捷方式数
属主: 该文件的主人
属组: 该文件的主人所在的组的组名
大小: 该文件的大小
最后一次修改时间: 该文件的最后一次修改时间
文件名: 该文件的文件名
通配符:
* 表示 0~n个字符
? 表示 1 个字符
[a-z] 表示 a-z中的一个字符
[Ff] 表示 F或f
> 表示 输出重定项(覆盖性质)
>> 表示 输出重定项(追加性质)
< 表示 输入重定项
| 表示 管道符 将左边的结果最为参数传递给右边
文件与目录命令
touch FILENAME 创建一个文件 FILENAME 表示文件名
mkdir DIRNAME 创建一个目录 DIRNAME 表示目录名
rm FILENAME 移除一个文件 FILENAME 表示文件名
rm r DIRNAME 移除一个目录 DIRNAME 表示目录名
cp SRC_FILE TARGET_FILE 复制文件 SRC_FIEL 原文件名 TARGET_FILE 复制后的文件名
cp SRC_FILE TARGET_DIR 复制文件 SRC_FIEL 原文件名 TARGET_DIR 目标目录名
cp r SRC_DIR TARGET_DIR 复制目录 SRC_DIR 原目录 TARGET_DIR 目标目录
mv SRC_FILE TARGET_FILE 修改文件名 SRC_FILE 原文件名 TARGET_FILE 新文件名
mv SRC_FILE TARGET_DIR 移动文件到目标目录下 SRC_FILE 原文件 TARGET_DIR 目标目录
ln s SRC_DIR TARGET 创建软链接 SRC_DIR 原文件路径 链接名
cat FILENAME 查看一个文件的内容
more FILENAME 查看比较大的文件的内容 (它可以分页显示)
head [-n] FILENAME 查看文件的头N行信息 默认10行
tail [-n] FILENAME 查看文件的尾N行信息 默认10行
tail f FILENAME 动态打开文件(一般用来打开并观察日志文件的变化)
vi FILENAME 编辑文件 FILENAME 文件名 如:
vi:
输入模式命令:
i 光标前插入
a 光标后插入
x 删除一个字符
dd 删除一行
r 替换一个字符
cc 替换一行
cw 替换一个单词
底行模式命令:
:w 保存
:w newFileName 以新的文件名保存
:wq 保存并退出
:q! 退出但不保存
vi编辑中分三种模式,分别是命令模式,输入模式,底行模式.按ESC从输入模式退回到命令模式,输入底行命令进入底行模式
在底行模式,按回车从底行模式退回到命令模式,输入输入命令进入输入模式
用户与查找命令
id 显示当前用户信息
id USERNAME 显示指定用户的信息
id a USERNAME 显示指定用户的详细信息
users 显示所有的在线用户
who am i 显示当前用户的真实ID信息
whoami 显示当前用户正在使用的ID信息
ifconfig 显示当前机器的IP信息
find PATH EXPRESSION 在PATH目录下查找EMPRESSION
grep EXPRESSION 搜索EXPERSION 多用于进程的搜索
wc c 计算字符个数
wc l 计算行数
wc w 计算单词个数
du sk FILENAME 计算一个文件的大小
ps 查看正在运行的进程(不包括守护进程)
ps ef 查看正在运行的线程(包含守护进程)
ps auwx 及其详细的查看再在运行的所有线程
ps auwx|grep java 搜索详细线程中线程名称带java的线程
ps auwx|grep java|grep gateway 搜索详细线程中线程名称既带java又带gateway的线程
kill 线程ID 关闭该编号的线程 (对守护线程无效)
kill -9 线程ID 关闭该编号的线程 (对守护线程也有效)
其他
配置当前用户本身的环境变量(如:当前用户的loginShell为bash):
$cd 返回当前用户的主目录
$vi .bash_profile 编辑隐藏配置文件
$source .bash_profile 重启动配置文件或重启计算机
配置java,修改内容如下:
JAVA_HOME = /opt/jdk1.6.0 告诉第三方软件,java的安装目录
CLASSPAHT = $JAVA_HOME/lib:. 告诉JVM字节码(*.class)文件的位置
PATH = $JAVA_HOME/bin:. 在已有的PAHT后追加java/bin的路径
export JAVA_HOME CLASSPATH PATH 声明这些变量变更为全局变量
FTP 命令:
ftp IP
user:
password:
搜索要下载的文件
mget FILE
bye