一.下载Ubuntu和安装
1.下载Ubuntuhttp://www.ubuntu.com/download
2. 到这儿http://www.pendrivelinux.com/downloads/Universal-USB-Installer/Universal-USB-Installer.exe下载一个叫“USB Installer”的工具。
3.配置Ubuntu引导U盘
4.最后跟安装windows系统一样了
二.下载与安装jdk
1.准备工作:
到官网下载jdk-7uXX-linux-x64.tar.gz
2.创建Java的目标文件夹,在终端操作指令: sudo mkdir /usr/lib/jvm/java
3.解压jdk至你创建的目录,解压命令: sudo tar zxvf jdk-7u4-linux-x64.tar.gz /usr/lib/jvm/java
4.配置环境变量:
终端输入:gedit ~/.bashrc
在编辑文件的尾行添加:
export JAVA_HOME=/usr/lib/jvm/java/jdk1.7.0_04
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
输入命令使之立即生效:
source ~/.bashrc
5.配置jdk默认版本(因为Ubuntu默认可能会安装有一个jdk,如:openjdk)
在终端输入:
在终端输入:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.7.0_04/bin/java 300
在终端输入:
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.7.0_04/bin/javac 300
上面的命令是把刚才安装的JDK设置为默认版本
在终端输入:
sudo update-alternatives --config java
6.验证jdk 是否配置成功:
在终端输入:java -version
jdk7显示版本信息:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixedmode)
注意:当复制和解压指令执行出现权限不够时需要切换到root权限下,在终端输入指令sudo su 然后会提示输入用户密码即可进入root用户
三.下载与安装tomcat
1.准备工作:下载tomcat8
2.解压tomcatzip:
在终端输入:unzip tomcat.zip
3.复制tomcat至/usr/lib目录下
在终端输入:cp tomcat /usr/lib
4.配置tomcat环境
分别配置bin目录下的startup和shutdown.sh文件
这里以startup.sh文件为例
在终端输入 :(到tomcat的bin目录下)sudo gedit startup.sh
在文件尾行添加:export java_home=...
export jre_home=...
export classppath=...
export path=...
export tomcat_home=...
省略号后面分别为对应的路径跟windows下配置环境一样
5.启动tomcat:
在终端输入:sudo ./startup.sh
6.查看启动给日志:
在终端输入:
cd ../logs
tail -f catanina.out
7.在浏览器中输入http://localhost:8088/显示tomcat主页则配置成功
四.linux添加用户、权限
1、添加用户
首先用adduser命令添加一个普通用户,命令如下:
#adduser tommy //添加一个名为tommy的用户
#passwd tommy //修改密码
Changing password for user tommy.
New UNIX password: //在这里输入新密码
Retype new UNIX password: //再次输入新密码
passwd: all authentication tokens updated successfully.
2、赋予root权限
方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy
修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。
方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。
>>参考2====================================
用useradd新增的用户不能直接用ssh远程访问,需要修改ssh相关配置 如下: vi /etc/ssh/sshd_config 添加
AllowUsers root@192.168.1.32 admin多个用户用空格隔开
>>参考3==================================== 如何让普通用户获得root用户的权限执行操作而不需要知道root用户的密码或向root用户进行切换呢?有一个命令sudo可以实现这个功能. Sudo的工作流程: (1)root用户编辑/etc/sudoers文件,添加要分配的普通用户记录,其中有这么一行记录:root ALL=(ALL) ALL,在这行后面添加:Sam ALL=(ALL) ALL (2) 那么sam用户在执行操作时,如果所执行的操作自己没有权限,则会去/etc/sudoers文件中查找是否有对应的记录,如果有的话则临时获得root权限,执行只有root才能执行的操作. 注意:这里会提示输入密码,但是输入的是sam用户的密码,而不是root用户的密码.例如: Shell> sudo mkdir –p a/b/c/d We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password: #这里的密码是sam用户自己的密码,而不是root的密码 几个操作: 1) 编辑/etc/sudoers文件,使用visudo命令, Shell> visudo 其实visudo命令也是调用vi去编辑sudoer文件的,但是在保存时会去检查你修改后文件的语法,如果错误是不能保存的,但是如果直接用vi来编辑该文件,强制保存虽然成功,但是如果有语 法错误这里并不能给出提示,也就导致了后面sudo命令的不可用. 2) 记录解析: Sam ALL=(ALL) ALL 使用者帐户 登入的主机=(可以变换的身份) 可以下达的命令 上述语句的意思是 sam用户可以在任何地方登录,并可切换成任何用户进行任何操作.这里如果(ALL)不写,只写为 sam ALL=ALL,他默认只能切换为root用户.
>>参考4====================================
linux chown命令参数及用法详解--改变档案的所有者:
要更改文件 program.c 的所有者: chown jim program.c program.c 的用户访问权限现在应用到 jim。作为所有者,jim 可以使用 chmod 命令允许或拒绝其他用户访问 program.c。
要将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build:chown -R john:build /tmp/src
如: tomcat的安装目录的所有者修改(#chown -R user:group /usr/java/tomcat5.5)
>>参考5====================================
linux下添加,删除,修改,查看用户和用户组
1,创建组
groupadd test
增加一个test组
2,修改组
groupmod -n test2 test
将test组的名子改成test2
3,删除组
groupdel test2
删除 组test2
4,查看组
a),查看当前登录用户所在的组 groups,查看apacheuser所在组groups apacheuser
b),查看所有组 cat /etc/group
c),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法
cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’
这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.
二,用户操作
1,增加用户
查看复制打印?
[root@krlcgcms01 mytest]# useradd –help
Usage: useradd [options] LOGIN
Options:
-b, –base-dir BASE_DIR 设置基本路径作为用户的登录目录
-c, –comment COMMENT 对用户的注释
-d, –home-dir HOME_DIR 设置用户的登录目录
-D, –defaults 改变设置
-e, –expiredate EXPIRE_DATE 设置用户的有效期
-f, –inactive INACTIVE 用户过期后,让密码无效
-g, –gid GROUP 使用户只属于某个组
-G, –groups GROUPS 使用户加入某个组
-h, –help 帮助
-k, –skel SKEL_DIR 指定其他的skel目录
-K, –key KEY=VALUE 覆盖 /etc/login.defs 配置文件
-m, –create-home 自动创建登录目录
-l, 不把用户加入到lastlog文件中
-M, 不自动创建登录目录
-r, 建立系统账号
-o, –non-unique 允许用户拥有相同的UID
-p, –password PASSWORD 为新用户使用加密密码
-s, –shell SHELL 登录时候的shell
-u, –uid UID 为新用户指定一个UID
-Z, –selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
[root@krlcgcms01 mytest]# useradd --help
Usage: useradd [options] LOGIN
Options:
-b, --base-dir BASE_DIR 设置基本路径作为用户的登录目录
-c, --comment COMMENT 对用户的注释
-d, --home-dir HOME_DIR 设置用户的登录目录
-D, --defaults 改变设置
-e, --expiredate EXPIRE_DATE 设置用户的有效期
-f, --inactive INACTIVE 用户过期后,让密码无效
-g, --gid GROUP 使用户只属于某个组
-G, --groups GROUPS 使用户加入某个组
-h, --help 帮助
-k, --skel SKEL_DIR 指定其他的skel目录
-K, --key KEY=VALUE 覆盖 /etc/login.defs 配置文件
-m, --create-home 自动创建登录目录
-l, 不把用户加入到lastlog文件中
-M, 不自动创建登录目录
-r, 建立系统账号
-o, --non-unique 允许用户拥有相同的UID
-p, --password PASSWORD 为新用户使用加密密码
-s, --shell SHELL 登录时候的shell
-u, --uid UID 为新用户指定一个UID
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mappinguseradd test
passwd test
增加用户test,有一点要注意的,useradd增加一个用户后,不要忘了给他设置密码,不然不能登录的。
2,修改用户
usermod -d /home/test -G test2 test
将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。
gpasswd -a test test2 将用户test加入到test2组
gpasswd -d test test2 将用户test从test2组中移出
3,删除用户
userdel test
将test用户删除
4,查看用户
a),查看当前登录用户
[root@krlcgcms01 ~]# w
[root@krlcgcms01 ~]# who
b),查看自己的用户名
[root@krlcgcms01 ~]# whoami
c),查看单个用户信息
[root@krlcgcms01 ~]# finger apacheuser
[root@krlcgcms01 ~]# id apacheuser
d),查看用户登录记录
[root@krlcgcms01 ~]# last 查看登录成功的用户记录
[root@krlcgcms01 ~]# lastb 查看登录不成功的用户记录
e),查看所有用户
[root@krlcgcms01 ~]# cut -d : -f 1 /etc/passwd
[root@krlcgcms01 ~]# cat /etc/passwd |awk -F \: ‘{print $1}’
五.VI编辑器的用法
在这里,首先介绍移动光标的命令。通常光标的移动可以通过键盘右边的方向键,但是由于每次移动光标,手都要大幅度的移动到键盘右边,这样使用vi是体现不出效率的,所以建议使用vi固有的命令(键)来控制光标的移动。
光标的移动命令如下所示:
向右移动 --> l
向左移动 --> h
向下移动 --> j
向上移动 --> k
如上所示,例如要向右移动光标8个字符的距离,只要在键盘上敲 l 键8次即可;向下移动3行的距离,只要在键盘上敲 j 键3次即可……也就是说,在vi命令模式中通过这几个键(命令)来控制光标的移动。
其次就是文本删除的命令。在Windows下大多数编辑器在删除文本时只要连续按[Backspace]键即可。但由于在vi中,插入模式和命令模式是分离开来的,所以在命令模式下需要通过命令(按键)来删除文本,而不是直接按[Backspace]键。
文本删除的命令如下所示:
删除光标所在位置的字符 --> x
删除光标所在的行 --> dd(敲 d 两次)
如上所示,例如要删除从光标位置起向右的3个字符,只要在键盘上敲 x 键3次即可;要删除光标所在的行,只要敲 dd (连续敲d键两次),光标所在行的所有字符以及行将会被删除。
再次,当编辑完了一个文档,想要保存后退出的时候的命令为“ZZ”(大写、连续敲2次)。
保存并退出文档:
保存当前修改并退出 --> ZZ
另外,vi还有一些编辑性质的命令,一并总结如下
具有编辑性质的有用的命令:
撤销上一步操作 --> u
移动光标到行首 --> 0 (数字0)
移动光标到行末 --> $
移动光标到当前页最顶行 --> H
移动光标到当前页最底行 --> L
向前翻一页(Page Up) --> Ctrl + f
向后翻一页(Page Down) --> Ctrl + b
还有在服务器配置中使用vi时,频繁用到的就是vi的搜索功能。在vi命令行的状态下,键入“/”(斜 线)后,vi底部出现“/”,并处于输入等待状态,这时候输入要查找的文字或文字列,然后按回车就可以找到相应的文字或文字列。当有多个对象存在时,敲 “n”(小写)键为查找下一个目标,敲“N”为查找上一个目标。
vi是所有
LUNIX系统
都会提供的屏幕编辑器,它提供了一个视窗设备,通 过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世界里必将畅行 无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。若其它的Linux机器里没有安装joe或pico,如果不会使用vi,那可能就真的没辄 了。
vi编辑器
有3种模式:
命令模式
、
输入模式
、
末行模式
。掌握这三种模式十分重要:
命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字母i或o或a,就可以进入vi的输入模式编辑文件。
输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。
末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。
下面介绍vi常用的命令操作
进入输入模式命令
i 在光标 左侧输入正文[常用]
a 在光标 右侧输入正文[常用]
o 小写字符o, 在光标所在行的 下一行增添新行
O 大写字符O, 在光标所在行的 上一行增添新行
I 在光标 所在行的开头输入正文
A 在光标 所在行的末尾输入正文
上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段
正文,从而实现正文的替换。这些命令包括:
s 用输入的正文替换光标所指向的字符[常用]
ns 用输入的正文替换光标右侧n 个字符
cw 用输入的正文替换光标右侧的字 [常用]
ncw 用输入的正文替换光标右侧的n 个字
cb 用输入的正文替换光标左侧的字 [常用]
ncb 用输入的正文替换光标左侧的 n 个字
cd 用输入的正文替换光标的所在行[常用]
ncd 用输入的正文替换光标下面的n 行
c$ 用输入的正文替换从光标开始到本行末尾的所有字符[常用]
c0 用输入的正文替换从本行开头到光标的所有字符[常用]
r 取代光标所在处的字符, 比如c3 表示将光标所在处的字符替换为字符3 [常用]
R 取代字符直至按【ESC】为止
按【Esc】键或组合键【ctrl】+[ 退出输入模式
末行模式
w 保存文件 [常用]
w file 将当前文件的内容保存到file文件
wq 保存文件并退出vi编辑器[常用]
wq file 将 当前文件的内容写入file 文件,并保持原有文件的内容不变,然后退出vi编辑器(假如当前文件内容有变动但未执行保存操作,那么执行该命令后不会退出vi编辑器)
r file 读取file 文件的内容,插入当前光标所在行的后面
e file 关闭当前文件,并打开新文件file (如果当前文件内容有变动但未保存,则该命令不会被执行)[常用]
f file 将当前文件重命名为file [常用]
f 打印当前文件名称和状态,如文件的行数、光标所在的行号等
q 退出vi编辑器(如果当前文件有改动,则无法退出) [常用]
q! 强制退出vi编辑器(不保存修改)[常用]
# 将光标移到第#行[常用]
PS: 关于行号使用的一些技巧:
一般用数值来指定绝对行号;字符“.”表示光标所在行的行号;字符“$”表示文件最后一行的行号,例如:
.+5 将光标从当前行往下移动5 行
$ 将光标移到文件的最后一行
1 将光标移到文件的第一行
23w file 将文件的第23行写入file文件
3,5w file 将第3 行至第5 行写入file 文件
1,.w file 将第1 行至当前行写入file 文件
.,$w file 将当前行至最后一行写入file 文件
.,.+5w file 从当前行开始将6 行内容写入file 文件
1,$w file 将所有内容写入file 文件,相当于:w file 命令
移动光标的操作
【Home】 光标到行首
【End】 光标到行尾
【Page Up】 向上翻页
【Page Down】 向下翻页
【Delect】 删除光标位置的字符
【Ctrl】+ f 向前移动一页
【Ctrl】+ b 向后移动一页
h 光标向左移动一个字符 [常用]
j 光标向下移动一个字符 [常用]
k 光标向上移动一个字符 [常用]
l 光标向右移动一个字符 [常用]
数字0 把光标移到行尾 [ 常用]
$ 把光标移到行首 [ 常用]
G 把光标移到文件的末尾 [ 常用]
gg 把光标移到文件的开头 [ 常用]
w 把光标移到下一个单词的开头 [ 常用]
e 把光标移到当前或下一个单词的字尾 [ 常用]
b 把光标移到当前或下一个单词的开头 [ 常用]
^ 把光标移到该行的第一个非空白字符(tab,space) [ 常用]
:# 把光标移到该行的第#个位置,例如:3, :10 [ 常用]
) 光标移到句尾
( 光标移到句首
注: 句子用半角句号后加一个空格(. )分割
} 光标移到段落结尾
{ 光标移到段落开头
注: 段落以空行分割
nG 将光标定位到第n行的开头 [ 常用]
n+ 将光标下移n行
n- 将光标上移n行
n$ 将光标下移n行,并置于行尾
H 将光标置于当前屏幕的顶行
M 将光标置于当前屏幕的中间行
L 将光标置于屏幕的最后行
~ 改变当前字符的大小写 [ 常用]
>> 把当前行往右移动8个字符(相当于【tab】键) [ 常用]
<< 把当前行往左移动8个字符(相当于【Shift】+【tab】) [ 常用]
nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
撤销操作
u 命令撤销最近一次的操作,可以使用多次来恢复原有的操作 [ 常用]
U 撤销所有操作
. 可以恢复对使用u命令的操作 [ 常用]
复制/删除/粘贴操作
x 删除光标处的单个字符,并把删除后的字符放到缓存区( 实际上删除相当于剪切 ) [ 常用]
nx 删除三个字符。 例如, 3x删除光标处向右的三个字符
"bnx 把删除的字符放到缓存区b
dw 删除当前字符到单词尾(包括空格)的所有字符 [ 常用]
dd 删除光标所在行 [常用] [ 常用]
ndd 删除n行。 例如, 3dd从当前行开始向下删除三行文本 [ 常用]
"bndd 把删除的内容放到缓存区b
PS: 如果要删除第m至第n行的内容,可以在末行模式中输入m,nd。比如3,5d表示删除第3~5行 [ 常用]
yy 复制当前光标所在行的内容到vi缓冲区 [ 常用]
nyy 复制n行。例如:5yy就是从当前光标所处的行向下复制5行,把复制的内容放到vi缓存区 [常用]
"bnyy 将复制的内容放到缓存区b . 比如,b3yy 将三行数据存入缓存区b [ 常用]
PS: 如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区 [ 常用]
yw 复制当前光标所在位置到单词尾字符 (不包括空格) 的内容到vi缓存区,相当于复制一个单词 [常用]
nyw 复制n个单词例如:2yw就是复制两个单词
"bnyw 例如, 复制n个单词到缓存区b
y$ 复制光标所在位置到行尾内容到缓存区
y^ 复制光标所在位置到行首内容到缓存区
p 小写p, 将缓存区的内容粘贴到当前行的下方(与yy配合) ,或插入到当前光标的下一个位置(与dw, x, y$ , y^ 配合)[常用]
P 大写P,与小写p的作用类似,但粘贴都方向相反
查找与替换
vi的查找与替换功能要再末行模式下完成。
/关键字 自上而下查找,比如/work,表示从当前光标处往下查找关键字为work的内容[ 常用]
?关键字 自下而上查找 , 比如/work,表示从当前光标处往上查找关键字为work的内容 [ 常用]
PS: 当找到匹配项时,光标会定位在关键词都字符开头。要继续查找下一个匹配项,只需敲入字符n; 要往回查找,敲入N. 可以输入2n往下查找下下一个匹配项
s/old_string/new_string 用new_string替换光标所在行中首次出现的old_string
s/old_string/new_string/g 用new_string替换光标所在行中的所有old_string
m,ns/old_string/new_string/g 用new_string替换第m行至第n行的所有old_string [ 常用]
%s/old_string/new_string/g 用new_string替换所有的old_string [ 常用]
/pattern_address/s/old_string/new_string/g 从当前光标处往下查找与pattern_address匹配的行,然后在该行上用new_string替换掉所有的old_string(实际上,这个命 令是由/pattern_address 和/s/old_string/new_string/g组合而成)
g/pattern_address/s/old_string/new_string/g 找出所有与pattern_address匹配的行, 并用new_string替换掉每一行所有的old_string( 注意: 前后两个g的含义是不一样的,前面的g表示对整个文本搜索与pattern_address匹配的行, 后面的g表示针对每一个与pattern_address匹配的行都用new_string替换掉old_string)
如果pattern_address和old_string一样,可以简写为g/pattern_address/s//new_string
可以在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc [ 常用]
PS: 查找的一些技巧
/str/w file 正向搜索,并将第一个包含字符串str 的行写入file 文件
/str1/,/str2/w file 正向搜索,并将包含字符串str1 的行至包含字符串str2 的行写入file 文件
恢复文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以. 开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:
O 只读打开,不改变文件内容
E 继续编辑文件,不恢复.swp文件保存的内容
R 将恢复上次编辑以后未保存文件内容
Q 退出vi
D 删除.swp文件
或者使用vi -r 文件名来恢复未保存的内容