常用命令
1、文件与目录管理
1)目录切换
**cd usr**: 切换到该目录下usr目录**cd ..(或cd../)**: 切换到上一层目录**cd /**: 切换到系统根目录**cd ~**: 切换到用户主目录**cd -**: 切换到上一个操作所在目录
2)目录操作
**mkdir 目录名称**: 增加目录**ls或者ll**(ll是ls -l的别名,ll命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息**find 目录 参数**: 寻找目录(查)
示例:- 列出当前目录及子目录下所有文件和文件夹:
find . - 在
/home目录下查找以.txt结尾的文件名:find /home -name "*.txt" - 同上,但忽略大小写:
find /home -iname "*.txt" - 当前目录及子目录下查找所有以.txt和.pdf结尾的文件:
find . \( -name "*.txt" -o -name "*.pdf" \)或find . -name "*.txt" -o -name "*.pdf"
- 列出当前目录及子目录下所有文件和文件夹:
**mv 目录名称 新目录名称**: 修改目录的名称(改)
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作。mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。后面会介绍到mv命令的另一个用法。**mv 目录名称 目录的新位置**: 移动目录的位置—-剪切(改)
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。另外mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。**cp -r 目录名称 目录拷贝的目标位置**: 拷贝目录(改),-r代表递归拷贝
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归**rm [-rf] 目录**: 删除目录(删)
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf目录/文件/压缩包
3)文件操作
**touch 文件名称**: 文件的创建(增)**cat/more/less/tail 文件名称**文件的查看(查)**cat**: 查看显示文件内容**more**: 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看**less**: 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看**tail-10**: 查看文件的后10行,Ctrl+C结束
注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控 文 件的变化
**vim 文件**: 修改文件的内容(改)
vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。
在实际开发中,使用vim编辑器主要作用就是修改配置文件,下面是一般步骤:
vim 文件———>进入文件——->命令模式———>按i进入编辑模式——->编辑文件 ———->按Esc进入底行模式——->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。)**rm -rf 文件**: 删除文件(删)
同目录删除:熟记rm -rf文件 即可
4)压缩文件
- 打包并压缩文件:
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:**tar -zcvf 打包压缩后的文件名 要打包压缩的文件**
其中:
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
比如:加入test目录下有三个文件分别是:aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令:**tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt**或:**tar -zcvf test.tar.gz /test/**
- 解压压缩包:
命令:tar [-xvf] 压缩文件
其中:x:代表解压
示例:
1 将/test下的test.tar.gz解压到当前目录下可以使用命令:**tar -xvf test.tar.gz**
2 将/test下的test.tar.gz解压到根目录/usr下:**tar -xvf xxx.tar.gz -C /usr**(- C代表指定解压的位置)
2、用户与用户组管理
1)用户
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
Linux用户管理相关命令:
useradd 选项 用户名:添加用户账号userdel 选项 用户名:删除用户帐号usermod 选项 用户名:修改帐号passwd 用户名:更改或创建用户的密码passwd -S 用户名:显示用户账号密码信息passwd -d 用户名: 清除用户密码
useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
用户相关的配置文件
- 记录所有用户的信息:/etc/passwd
- 记录用户的密码信息:/etc/shadow
- 记录所有的组名:/etc/group
添加用户
语法
useradd [选项] 用户名
选项
- -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
- -d<登入目录>:指定用户登入时的启始目录;
- -D:变更预设值;
- -e<有效期限>:指定帐号的有效期限;
- -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
- -g<群组>:指定用户所属的群组;
- -G<群组>:指定用户所属的附加群组;
- -m:自动建立用户的登入目录(宿主目录);
- -M:不要自动建立用户的登入目录(宿主目录);
- -n:取消建立以用户名称为名的群组;
- -r:建立系统帐号;
- -s:指定用户登入后所使用的shell;
- -u:指定用户。
例子
1)创建帐号Bruce,设置帐号备注”Bruce Li”
# 创建帐号:$ useradd -c "Bruce Li" Bruce# 查看帐号信息$ cat /etc/passwd | grep BruceBruce:x:501:501:Bruce Li:/home/Bruce:/bin/bash# 说明Bruce 用户名x 口令、密码501 用户ID(0表示root、普通用户从500开始)501 所在组Bruce Li 备注描述/home/Bruce 用户主目录/bin/bash 用户缺省shell# 设置密码$ sudo passwd Bruce
2)创建帐号,设置用户ID
$ useradd -u 555 zss$ cat /etc/passwd | grep zsszss:x:555:555::/home/zss:/bin/bash
3)创建用户,自动创建宿主目录
$ useradd -m "lss"ls /home
4)创建用户,指定相关的选项
# -s:指定用户登入后所使用的shell,Ubuntu默认的shell是/bin/sh# -d:指定用户登入时的启始目录# -m:自动建立用户的登入目录(宿主目录)$ sudo useradd -c "赵六六" -d /home/liuliu -m -s /bin/bash liuliu
5)创建用户,指定用户组
useradd -g sales jack -G company,employees#-g:加入主要组、-G:加入次要组
6)创建用户,指定过期时间
$ useradd -e "2022/05/01" qiqi
7)创建用户,不创建宿主目录,同时不允许登录系统
$ useradd -M -s /sbin/nologin baba
删除用户
userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel [选项] [参数]
选项
- -f:强制删除用户,即使用户当前已登录;
- -r:删除用户的同时,删除与用户相关的所有文件。
参数
用户名:要删除的用户名
例子
1)删除用户zss
userdel zss
2)删除用户lss,并删除其宿主目录
userdel -r lss
修改用户
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。
语法
usermod [选项] [属性值] 用户名
选项
- -c<备注>:修改用户帐号的备注文字;
- -d<登入目录>:修改用户登入时的目录;
- -e<有效期限>:修改帐号的有效期限;
- -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
- -g<群组>:修改用户所属的群组;
- -G<群组>;修改用户所属的附加群组;
- -l<帐号名称>:修改用户帐号名称;
- -L:锁定用户密码,使密码无效;
- -s:修改用户登入后所使用的shell;
- -u:修改用户ID;
- -U:解除密码锁定。
例子
1)将newuser2添加到组staff中
usermod -G staff newuser2
2)修改newuser的用户名为newuser1
usermod -l newuser1 newuser
3)锁定账号newuser1
usermod -L newuser1
4)解除对newuser1的锁定:
usermod -U newuser1
设置用户密码
语法
passwd [选项] [用户名]
选项
- -d:删除密码,仅有系统管理者才能使用;
- -f:强制执行;
- -k:设置只有在密码过期失效后,方能更新;
- -l:锁住密码;
- -s:列出密码的相关信息,仅有系统管理者才能使用;
- -u:解开已上锁的帐号。
例子
1)修改jenkins用户的密码
[zing@zing home]$ sudo passwd jenkins更改用户 jenkins 的密码 。新的 密码:重新输入新的 密码:passwd: 所有的身份验证令牌已经成功更新。
2)修改当前登录用户的密码
[zing@zing home]$ passwd更改用户 zing 的密码 。为 zing 更改 STRESS 密码。(当前)UNIX 密码:新的 密码:重新输入新的 密码:passwd: 所有的身份验证令牌已经成功更新。
3)锁定用户
#锁定jenkins用户[zing@zing home]$ sudo passwd -l jenkins[sudo] password for zing:锁定用户 jenkins 的密码 。passwd: 操作成功#切换登录jenkins,输入密码,登录失败(提示密码不正确)[zing@zing home]$ su jenkins密码:su: 密码不正确
4)解除锁定jenkins用户
[zing@zing home]$ sudo passwd -u jenkins解锁用户 jenkins 的密码 。passwd: 操作成功#切换登录jenkins用户,并输入密码,登录成功[zing@zing home]$ su jenkins密码:#登录成功[jenkins@zing home]$
5)清除密码
[zing@zing home]$ sudo passwd -d jenkins清除用户的密码 jenkins。passwd: 操作成功[zing@zing home]$ su jenkins#不需要输入密码,直接切换登录成功[jenkins@zing home]$
查看当前用户
whoami命令用于打印当前有效的用户名称,相当于执行id -un命令。
语法
whoami
例子
[zing@zing home]$ whoamizing[zing@zing home]$ id -unzing
切换用户
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
语法
su [选项] [参数]
选项
- -c<指令>或—command=<指令>:执行完指定的指令后,即恢复原来的身份;
- -f或—fast:适用于csh与tsch,使shell不用去读取启动文件;
- -l或—login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
- -m,-p或—preserve-environment:变更身份时,不要变更环境变量;
- -s或—shell=:指定要执行的shell;
- —help:显示帮助;
- —version;显示版本信息。
参数
用户:指定要切换身份的目标用户。
例子
1)切换到root用户
$ su -$ su
2)切换到指定名称用户
$ su root
2)用户组
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
Linux系统用户组的管理相关命令:
groupadd 选项 用户组:增加一个新的用户组groupdel 用户组:要删除一个已有的用户组groupmod 选项 用户组: 修改用户组的属性 ```bash查看组信息
$ cat /etc/group
添加组,生成默认组ID
$ sudo groupadd g1
添加组,指定组ID
$ sudo groupadd -g 1200 g2
删除组
$ sudo groupdel g1
用户从组内移除
$ sudo gpasswd -d jack company
用户添加到组
$ sudo gpasswd -a user1 company
<a name="GpqzQ"></a>## 3、文件属性<a name="Bcunr"></a>### 1)查看文件详细信息```shell# 1.查看文件的详细信息$ list -l# 文件的详细属性与权限drwx------ 2 root root 4096 Sep 5 14:09 .gconfd-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog[1] [2] [3] [4] [5] [6] [7]
说明:
[1]:表示此档案的类型和权限(permission),共由10个字符组成1)第一个字符表示档案的类型,如:目录、文件、链接文件等当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;当为[ - ]则是档案,例如上表档名为『install.log』那一行;若是[ l ]则表示为连结档(link file);若是[ b ]则表示为设备文件里面的可供储存的接口设备(可随机存取设备);若是[ c ]则表示为设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)2)后面的九个字符接下来的九个字符中,以三个为一组,且均为『rwx』 的三个参数的组合;其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute);要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已第一组表示:『文件所有者的权限』第二组表示:『同用户组的权限』第三组表示:『其他非本用户组的权限』[2]:表示有多少文件名连结到此节点(i-node)每个文件都会将它的权限和属性记录到文件系统的 i-node 中,不过我们使用目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。[3]:表示这个文件(或目录)的「所有者帐号」[4]:表示这个文件的所属用户组在Linux中,每个帐号都会从属于一个或多个用户组[5]:表示这个文件的容量大小,默认单位为 bytes;[6]:表示这个档案的建档日期或者是最近的修改日期显示完整的日期时间:ls -l --full-timered hat发行版修改系统语言编码在 /etc/sysconfig/i18n中;而ubuntu中此配置在 etc/default/locale 中。[7]:为该文件的名称注:如果文件名以“.”开始,则表示该文件为隐藏文件,如:.conf。如果要正常显示隐藏文件,则需要-a参数,ls -a
2)改变群组:chgrp
语法:
chgrp [-R] 组名 dirname/filename
-R : 进行递归(recursive)的持续变更,亦即连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在变更某一目录内所有的文件的情况。
# 例子:将test.txt文件所属的用户组由root改为zing$ ls -l-rw-rw-r-- 1 root root 16 7月 21 08:28 test.txt$ sudo chgrp zing test.txt$ ls -l-rw-rw-r-- 1 root zing 16 7月 21 08:28 test.txt
3)改变文件拥有者:chown
语法:
1)chown [-R] 账号名称 文件或目录
2)chown [-R] 账号名称:组名 文件或目录
-R : 进行递归(recursive)的持续变更,亦即连同子目录下的所有文件都变更
# 例子一:将test.txt文件的拥有者由root改为zing$ chown zing test.txt$ ls -l-rw-rw-r-- 1 zing zing 16 7月 21 08:28 test.txt# 例子二:将test.txt文件的拥有者和所在群组都改为root$ sudo chown root:root test.txt$ ls -l-rw-rw-r-- 1 root root 16 7月 21 08:28 test.txt
4)改变文件权限:chmod
Linux文件的权限由9个符号组成,每三个符号一组,共分三组,每组的符号由r、w、x、-四个符号组成。第一组表示owner(属主权限),第二组表示group(属组权限),第三组表示others(其他用户权限)。
权限的设定方法有两种:分别可以使用数字或者是符号来进行权限的变更
方法一:数字设置法
chmod [-R] xyz 文件或目录
- xyz :就是分别为owner、group、others的权限对应的数值,为 rwx 属性数值的和
- -R : 进行递归(recursive)的持续变更,亦即连同子目录下的所有文件都会变更
- 分别使用数字来表示各个权限
- r :4
- w :2
- x :1
- : 0
- 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,如:当权限为: [-r-xrwx—-] 分数则是:
- owner = r-x = 4+0+1 = 5
- group = rwx = 4+2+1 = 7
- others = —- = 0+0+0 = 0
$ list -l-rw-rw-r-- 1 root root 16 7月 21 08:28 test.txt$ chmod 777 test.txt$ list -l-rwxrwxrwx 1 root root 16 7月 21 08:28 test.txt
方法二:符号设置法
表示三个身份的owner、group、others分别使用u、g、o表示,另上还增加了a(all),表示所有身份。语法如下表所示:
| 关键字 | 身份 | 操作 | 权限 | 操作的目录或文件 |
|---|---|---|---|---|
| chmod | u g o a |
+(追加) -(去除) =(设定) |
r w x |
目录或文件 |
# 1)同时设置所有身份为可读、可写、可执行$ chmod a=rwx test.txt# 2)去除group可写、可执行的权限;去除other的可写权限$ chmod g-rx,o-w test.txt# 3)设置user可读、可写、可执行操作;设置group和other可读、可执行的权限$ chmod u=rwx,go=rx test.txt
5)目录与文件的权限意义
5.1)权限对文件的重要性
- r (read):可读取此文件的实际内容,如读取文本文件的文字内容等;
- w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
- x (eXecute):该文件具有可以被系统执行的权限。(注:在Linux系统中,判断是否为可执行文件不是由后缀决定的,而是由「x」这个属性决定的)
5.2)权限对目录的重要性
- r (read contents in directory):表示具有读取目录结构列表的权限。当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。
- w (modify contents of directory):具有变动该目录结构列表的权限,如:
- 建立新的文件和目录;
- 删除已经存在的文件与目录(不论该文件或目录的权限如何)
- 将已存在的文件或目录重命名;
- 搬移该目录内的文件、目录位置。
- 注:目录中的w属性必须要慎用!
- x (access directory):目录的 x 代表的是用户能否进入该目录作为工作目录!
- 所谓的工作目录(work directory)就是你目前所在的目录!
- 注:判断是否能进入目录
4、软件安装
在Linux中,软件的安装与管理方式很多,主要有以下种方式:
- rpm安装
- yum安装(RedHat发行系统、CentOS中的软件包管理器)
- apt安装(Debian发行系列、Ubuntu中的软件包管理器)
- 源码安装
- 脚本安装
- …
```bash
更新软件源
$ apt update
搜索软件:
$ apt search package_name
软件列表
$ apt list
已安装软件
$ apt list —installed
安装软件
$ apt install package_name
修复软件依赖
$ apt install -f
升级软件
$ apt upgrade package_name
更新所有可用的包
$ apt update && sudo apt upgrade
卸载软件
$ apt remove package_name
卸载软件及依赖
$ apt autoremove package_name
删除配置
$ apt purge package_name
设置软件包为手动安装(这样autoremove就不会自动卸载该软件)
$ apt-mark manual package_name
重新配置软件
$ dpkg-reconfigure package_name
安装本地软件包
$ dpkg -i your_deb_file.deb
<a name="r6zbm"></a>## 5、vi/vim的使用- 一般模式- 进入编辑模式:i、0、a、r- 进入命令模式::、/、?- 常见操作- 定位- 1G:光标回到第一行- G:光标跳到最后一行- h(左)、j(下)、k(上)、l(右),方向键- n + Enter:光标跳到第n行- 行号 + shift + g 或 行号 +gg:快速定位到某行- 搜索替换- /keyword:向下搜索keyword,按n重复向下查找- ?keyword:向上搜索keyword,按N重复向上查找- :n1,n2s/word1/word2/g[c]:在n1、n2行之间搜索word1,并替换为word2- 删除字符- x,X:向后 / 向前删除字符- d0:删除光标左边内容至行首- d$:删除光标右边内容至行末- 删除行- dd:删除 / 剪切当前行- d1G:删除当前行到第一行之间的内容- dG:删除当前行到最后一行的内容- ndd:向下删除n行- 复制剪切粘贴- yy:复制当前行- 2yy或y2y : 复制 2 行- y^:复制至行首,或y0- y$:复制至行尾- yw:复制一个word- y2w :复制两个word- yG :复制至文件尾- y1G :复制至文件首- --- dd:剪切游标所在行整行- d^: 剪切至行首,或d0- d$: 剪切至行尾- dw:剪切一个word- dG :剪切至文件尾- --- p,P:在下一行 / 上一行粘贴- 撤销恢复- u:撤销- ctrl + r:恢复,重做上一次操作- 编辑模式- 进入一般模式:ESC- 进入命令模式:先进入一般模式- 命令模式- 进入一般模式:ESC- 进入编辑模式:先进入一般模式- 常见操作- :w:保存文件- :q:退出- q!:强制退出- :wq:保存退出- :w file:另存为- :r file:读取 file ,插入到当前文件- :n1,n2 w file:将n1行至n2行别存在为- :! 命令:暂时离开vim,执行一次命令- :set nu:显示行号- :set nonu:取消行号<a name="AzlWF"></a>## 6、网络管理- 查看当前系统的网卡信息:ifconfig- 查看与某台机器的连接情况:ping- 查看当前系统的端口使用:netstat -tulpn<a name="dOb1w"></a>## 7、进程管理<a name="XsnTv"></a>### 1)查看进程状态```powershell# -e:显示所有程序# -f:显示UID,PPIP,C与STIME栏位。$ ps -ef# 注意:如果直接用ps((Process Status))命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。$ ps -ef | grep sshd
- User:执行者
- PID:进程号
- PPID:父进程ID
- STIME:启动时间
- CMD:启动时调用的命令行
**ps -ef**/**ps -aux**: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:**ps aux|grep redis** (查看包括redis字符串的进程),也可使用 pgrep redis -a。
2)查看进程
# 查看所有的进程列表$ top# 退出q 或 ctrl + c# 查看某个进程,其中Xxx为进程的PID(进程号),可通过ps命令查看$ top -p Xxx
3)杀死进程
# Xxx为进程的PID(进程号),可通过ps命令查看# -9:强制无条件删除$ kill -9 Xxx
8、其它常用命令
**pwd**: 显示当前所在位置**grep 要搜索的字符串 要搜索的文件 --color**: 搜索命令,—color代表高亮显示**ps -ef**/**ps -aux**: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:**ps aux|grep redis**(查看包括redis字符串的进程),也可使用pgrep redis -a。
注意:如果直接用ps((Process Status))命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。**kill -9 进程的pid**: 杀死进程(-9 表示强制终止。)
先用ps查找进程,然后用kill杀掉**shutdown**:shutdown -h now: 指定现在立即关机;shutdown +5 "System will shutdown after 5 minutes":指定5分钟后关机,同时送出警告信息给登入用户。**reboot**:**reboot**: 重开机。**reboot -w**: 做个重开机的模拟(只有纪录并不会真的重开机)。
9、常用快捷键
1)tab:命令或路径自动补全(可连按二次)
2)ctrl+c:终止当前任务命令或程序
3)ctrl+d:退出当前用户环境。相当于exit,logout
4)ctrl+l:清屏,相当于clear
5)ctrl+shift+c/ctrl+shift+v:复制/粘贴,在SecureCRT客户端中
6)ctrl+a:光标回到命令开始位置,相当于Home键
7)ctrl+e:光标回到命令结束位置,相当于End键
8)ctrl+u:删除命令光标位置之前的内容
9)ctrl+k:删除命令光标位置之后的内容
10)连续两次tab:查看命令列表
10、JDK安装
10.1、准备
1)安装rpm
$ sudo apt install rpm
2)清除系统默认自带的JDK
如果安装CentOS6.8时,默认安装了例如openJDK等,请先执行rpm -qa | grep jdk查看已经自带的JDK,然后卸载。
# 查看$ rpm -qa | grep jdk# 卸载(Xxx为上一个命令查到的结果)$ sudo yum remove Xxx
10.2、赋予权限
sudo chmod 777 jdk-7u80-linux-x64.rpm
10.3、安装
# 当然,也可以下载*.tar.gz格式的安装$ sudo rpm -ivh jdk-8u291-linux-x64.rpm
出现错误:
warning: jdk-8u291-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEYerror:Failed dependencies:...
解决:忽视依赖关系
$ sudo rpm -ivh jdk-8u291-linux-x64.rpm --force --nodeps$ whereis java
10.4、默认安装路径:/usr/java
$ rpm -qip jdk-8u291-linux-x64.rpm/usr/java/jdk1.8.0_291-amd64
10.5、配置环境变量
1)打开配置文件
# 用户环境变量$ sudo vim ~/.profile# 系统环境变量$ sudo vim /etc/profile# 刷新或重启电脑$ source ~/.profile
2)在配置文件最下方添加
export JAVA_HOME=/usr/java/jdk1.8.0_291-amd64export JRE_HOME=${JAVA_HOME}/jre# export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}
3)保存退出,并使配置生效
$ source ~/.profile$ source /etc/profile
10.6、验证安装是否成功
$ java -version
课堂练习:编写Java程序,打印输出:hello,world
11.7、ubuntu安装
Ubuntu的软件包格式为deb,不支持rpm软件包的安装。因此,需要把rpm包转换为deb包。
## 方法一# 安装转换工具$ sudo apt install alien# 把rpm包转换为deb包$ sudo alien -d jdk-8u333-linux-x64.rpm# 安装,安装路径为:/usr/java/jdk1.8.0_333-amd64$ sudo dpkg -i jdk1.8_1.8.0333-1_amd64.deb# 配置环境变量# 测试是否安装成功 - 失败,原因是没找到tools.jar及rt.jar# tools.jar是关于一些工具的类库# rt.jar包含了jdk的基础类库$ java -versionError occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/Object# 解决:使用unpack200把rt.pack和tools.pack分别解压为rt.jar和tools.jarzing@zing-pc:/usr/java/jdk1.8.0_333-amd64/jar/lib$ ../bin/unpack200 rt.pack rt.jarzing@zing-pc:/usr/java/jdk1.8.0_333-amd64/lib$ ../bin/unpack200 tools.pack tools.jar# 解决tomcat启动失败zing@zing-pc:/usr/java/jdk1.8.0_333-amd64/jre/lib$ sudo ../bin/unpack200 jsse.pack jsse.jar## 方法二# 解压JDK# 配置环境环境变量
11、Tomcat安装
11.1、下载、解压安装
# 修改权限chmod 777 apache-tomcat-8.5.66.tar.gzchown zing apache-tomcat-8.5.66.tar.gzchgrp zing apache-tomcat-8.5.66.tar.gz# 解压安装在/opt目录下$ sudo tar -zxvf apache-tomcat-8.5.66.tar.gz -C /opt$ sudo chmod -R u+x apache-tomcat-8.5.66
11.2、配置环境变量
1)打开配置文件
sudo vim /etc/profile
2)在文件最后添加
export CATALINA_HOME=/opt/apache-tomcat-8.5.66
3)保存退出,并使配置生效
source /etc/profile
11.3、启动、停止Tomcat
# 进入bin目录$ ./startup.sh #启动# 访问:http://localhost:8080$ ./shutdown.sh #停止# 查看tomcat进程$ ps -ef | grep java$ netstat -anp | grep 8080# 查看防火墙状态$ sudo ufw status# 开启防火墙$ sudo ufw enable# 禁用防火墙$ sudo ufw disable
12、MySQL安装
# 更新服务器上的软件包索引$ sudo apt update# 安装$ sudo apt install mysql-server# 查看状态$ sudo systemctl status mysql$ sudo service mysql status# 运行安全脚本,根据向导执行MySQL安全设置$ sudo mysql_secure_installaction# 登录(默认情况下,MySQLroot用户设置为使用auth_socket插件而不是密码进行身份验证)$ sudo mysql# 查看用户信息mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;# 设置ROOT密码mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';# 重新加载授权表并使新的更改生效mysql> FLUSH PRIVILEGES;# 设置允许远程登录mysql> update user set host='%' where user='root'mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;# grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;(修改权限时在后面加with grant option)GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;mysql> flush privileges;# 找到 bind-address 修改值为 0.0.0.0$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf# 重启mysqlsudo /etc/init.d/mysql restartservice mysql start | restart | stopsudo systemctl status|start|restart mysql

