常用命令

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”

  1. # 创建帐号:
  2. $ useradd -c "Bruce Li" Bruce
  3. # 查看帐号信息
  4. $ cat /etc/passwd | grep Bruce
  5. Bruce:x:501:501:Bruce Li:/home/Bruce:/bin/bash
  6. # 说明
  7. Bruce 用户名
  8. x 口令、密码
  9. 501 用户ID0表示root、普通用户从500开始)
  10. 501 所在组
  11. Bruce Li 备注描述
  12. /home/Bruce 用户主目录
  13. /bin/bash 用户缺省shell
  14. # 设置密码
  15. $ sudo passwd Bruce

2)创建帐号,设置用户ID

  1. $ useradd -u 555 zss
  2. $ cat /etc/passwd | grep zss
  3. zss:x:555:555::/home/zss:/bin/bash

3)创建用户,自动创建宿主目录

  1. $ useradd -m "lss"
  2. ls /home

4)创建用户,指定相关的选项

  1. # -s:指定用户登入后所使用的shell,Ubuntu默认的shell是/bin/sh
  2. # -d:指定用户登入时的启始目录
  3. # -m:自动建立用户的登入目录(宿主目录)
  4. $ sudo useradd -c "赵六六" -d /home/liuliu -m -s /bin/bash liuliu

5)创建用户,指定用户组

  1. useradd -g sales jack -G company,employees
  2. #-g:加入主要组、-G:加入次要组

6)创建用户,指定过期时间

  1. $ useradd -e "2022/05/01" qiqi

7)创建用户,不创建宿主目录,同时不允许登录系统

  1. $ useradd -M -s /sbin/nologin baba

删除用户

userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

语法

userdel [选项] [参数]

选项

  • -f:强制删除用户,即使用户当前已登录;
  • -r:删除用户的同时,删除与用户相关的所有文件。

参数

用户名:要删除的用户名

例子

1)删除用户zss

  1. userdel zss

2)删除用户lss,并删除其宿主目录

  1. 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中

  1. usermod -G staff newuser2

2)修改newuser的用户名为newuser1

  1. usermod -l newuser1 newuser

3)锁定账号newuser1

  1. usermod -L newuser1

4)解除对newuser1的锁定:

  1. usermod -U newuser1

设置用户密码

语法

passwd [选项] [用户名]

选项

  • -d:删除密码,仅有系统管理者才能使用;
  • -f:强制执行;
  • -k:设置只有在密码过期失效后,方能更新;
  • -l:锁住密码;
  • -s:列出密码的相关信息,仅有系统管理者才能使用;
  • -u:解开已上锁的帐号。

例子

1)修改jenkins用户的密码

  1. [zing@zing home]$ sudo passwd jenkins
  2. 更改用户 jenkins 的密码
  3. 新的 密码:
  4. 重新输入新的 密码:
  5. passwd 所有的身份验证令牌已经成功更新。

2)修改当前登录用户的密码

  1. [zing@zing home]$ passwd
  2. 更改用户 zing 的密码
  3. zing 更改 STRESS 密码。
  4. (当前)UNIX 密码:
  5. 新的 密码:
  6. 重新输入新的 密码:
  7. passwd 所有的身份验证令牌已经成功更新。

3)锁定用户

  1. #锁定jenkins用户
  2. [zing@zing home]$ sudo passwd -l jenkins
  3. [sudo] password for zing:
  4. 锁定用户 jenkins 的密码
  5. passwd: 操作成功
  6. #切换登录jenkins,输入密码,登录失败(提示密码不正确)
  7. [zing@zing home]$ su jenkins
  8. 密码:
  9. su: 密码不正确

4)解除锁定jenkins用户

  1. [zing@zing home]$ sudo passwd -u jenkins
  2. 解锁用户 jenkins 的密码
  3. passwd: 操作成功
  4. #切换登录jenkins用户,并输入密码,登录成功
  5. [zing@zing home]$ su jenkins
  6. 密码:
  7. #登录成功
  8. [jenkins@zing home]$

5)清除密码

  1. [zing@zing home]$ sudo passwd -d jenkins
  2. 清除用户的密码 jenkins
  3. passwd: 操作成功
  4. [zing@zing home]$ su jenkins
  5. #不需要输入密码,直接切换登录成功
  6. [jenkins@zing home]$

查看当前用户

whoami命令用于打印当前有效的用户名称,相当于执行id -un命令。

语法

whoami

例子

  1. [zing@zing home]$ whoami
  2. zing
  3. [zing@zing home]$ id -un
  4. zing

切换用户

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用户

  1. $ su -
  2. $ su

2)切换到指定名称用户

  1. $ 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

  1. <a name="GpqzQ"></a>
  2. ## 3、文件属性
  3. <a name="Bcunr"></a>
  4. ### 1)查看文件详细信息
  5. ```shell
  6. # 1.查看文件的详细信息
  7. $ list -l
  8. # 文件的详细属性与权限
  9. drwx------ 2 root root 4096 Sep 5 14:09 .gconfd
  10. -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
  11. -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
  12. [1] [2] [3] [4] [5] [6] [7]

说明:

  1. [1]:表示此档案的类型和权限(permission),共由10个字符组成
  2. 1)第一个字符表示档案的类型,如:目录、文件、链接文件等
  3. 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
  4. 当为[ - ]则是档案,例如上表档名为『install.log』那一行;
  5. 若是[ l ]则表示为连结档(link file);
  6. 若是[ b ]则表示为设备文件里面的可供储存的接口设备(可随机存取设备);
  7. 若是[ c ]则表示为设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)
  8. 2)后面的九个字符
  9. 接下来的九个字符中,以三个为一组,且均为『rwx 的三个参数的组合;
  10. 其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute);
  11. 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已
  12. 第一组表示:『文件所有者的权限』
  13. 第二组表示:『同用户组的权限』
  14. 第三组表示:『其他非本用户组的权限』
  15. [2]:表示有多少文件名连结到此节点(i-node)
  16. 每个文件都会将它的权限和属性记录到文件系统的 i-node 中,不过我们使用目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。
  17. [3]:表示这个文件(或目录)的「所有者帐号」
  18. [4]:表示这个文件的所属用户组
  19. Linux中,每个帐号都会从属于一个或多个用户组
  20. [5]:表示这个文件的容量大小,默认单位为 bytes;
  21. [6]:表示这个档案的建档日期或者是最近的修改日期
  22. 显示完整的日期时间:ls -l --full-time
  23. red hat发行版修改系统语言编码在 /etc/sysconfig/i18n中;
  24. ubuntu中此配置在 etc/default/locale 中。
  25. [7]:为该文件的名称
  26. 注:如果文件名以“.”开始,则表示该文件为隐藏文件,如:.conf。如果要正常显示隐藏文件,则需要-a参数,ls -a

image-20210510000843196.png

2)改变群组:chgrp

语法:

chgrp [-R] 组名 dirname/filename

-R : 进行递归(recursive)的持续变更,亦即连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在变更某一目录内所有的文件的情况。

  1. # 例子:将test.txt文件所属的用户组由root改为zing
  2. $ ls -l
  3. -rw-rw-r-- 1 root root 16 7 21 08:28 test.txt
  4. $ sudo chgrp zing test.txt
  5. $ ls -l
  6. -rw-rw-r-- 1 root zing 16 7 21 08:28 test.txt

3)改变文件拥有者:chown

语法:

1)chown [-R] 账号名称 文件或目录

2)chown [-R] 账号名称:组名 文件或目录

-R : 进行递归(recursive)的持续变更,亦即连同子目录下的所有文件都变更

  1. # 例子一:将test.txt文件的拥有者由root改为zing
  2. $ chown zing test.txt
  3. $ ls -l
  4. -rw-rw-r-- 1 zing zing 16 7 21 08:28 test.txt
  5. # 例子二:将test.txt文件的拥有者和所在群组都改为root
  6. $ sudo chown root:root test.txt
  7. $ ls -l
  8. -rw-rw-r-- 1 root root 16 7 21 08:28 test.txt

4)改变文件权限:chmod

Linux文件的权限由9个符号组成,每三个符号一组,共分三组,每组的符号由rwx-四个符号组成。第一组表示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
  1. $ list -l
  2. -rw-rw-r-- 1 root root 16 7 21 08:28 test.txt
  3. $ chmod 777 test.txt
  4. $ list -l
  5. -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. # 1)同时设置所有身份为可读、可写、可执行
  2. $ chmod a=rwx test.txt
  3. # 2)去除group可写、可执行的权限;去除other的可写权限
  4. $ chmod g-rx,o-w test.txt
  5. # 3)设置user可读、可写、可执行操作;设置group和other可读、可执行的权限
  6. $ 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

  1. <a name="r6zbm"></a>
  2. ## 5、vi/vim的使用
  3. - 一般模式
  4. - 进入编辑模式:i、0、a、r
  5. - 进入命令模式::、/、?
  6. - 常见操作
  7. - 定位
  8. - 1G:光标回到第一行
  9. - G:光标跳到最后一行
  10. - h(左)、j(下)、k(上)、l(右),方向键
  11. - n + Enter:光标跳到第n行
  12. - 行号 + shift + g 或 行号 +gg:快速定位到某行
  13. - 搜索替换
  14. - /keyword:向下搜索keyword,按n重复向下查找
  15. - ?keyword:向上搜索keyword,按N重复向上查找
  16. - :n1,n2s/word1/word2/g[c]:在n1、n2行之间搜索word1,并替换为word2
  17. - 删除字符
  18. - x,X:向后 / 向前删除字符
  19. - d0:删除光标左边内容至行首
  20. - d$:删除光标右边内容至行末
  21. - 删除行
  22. - dd:删除 / 剪切当前行
  23. - d1G:删除当前行到第一行之间的内容
  24. - dG:删除当前行到最后一行的内容
  25. - ndd:向下删除n行
  26. - 复制剪切粘贴
  27. - yy:复制当前行
  28. - 2yy或y2y : 复制 2 行
  29. - y^:复制至行首,或y0
  30. - y$:复制至行尾
  31. - yw:复制一个word
  32. - y2w :复制两个word
  33. - yG :复制至文件尾
  34. - y1G :复制至文件首
  35. - --
  36. - dd:剪切游标所在行整行
  37. - d^: 剪切至行首,或d0
  38. - d$: 剪切至行尾
  39. - dw:剪切一个word
  40. - dG :剪切至文件尾
  41. - --
  42. - p,P:在下一行 / 上一行粘贴
  43. - 撤销恢复
  44. - u:撤销
  45. - ctrl + r:恢复,重做上一次操作
  46. - 编辑模式
  47. - 进入一般模式:ESC
  48. - 进入命令模式:先进入一般模式
  49. - 命令模式
  50. - 进入一般模式:ESC
  51. - 进入编辑模式:先进入一般模式
  52. - 常见操作
  53. - :w:保存文件
  54. - :q:退出
  55. - q!:强制退出
  56. - :wq:保存退出
  57. - :w file:另存为
  58. - :r file:读取 file ,插入到当前文件
  59. - :n1,n2 w file:将n1行至n2行别存在为
  60. - :! 命令:暂时离开vim,执行一次命令
  61. - :set nu:显示行号
  62. - :set nonu:取消行号
  63. <a name="AzlWF"></a>
  64. ## 6、网络管理
  65. - 查看当前系统的网卡信息:ifconfig
  66. - 查看与某台机器的连接情况:ping
  67. - 查看当前系统的端口使用:netstat -tulpn
  68. <a name="dOb1w"></a>
  69. ## 7、进程管理
  70. <a name="XsnTv"></a>
  71. ### 1)查看进程状态
  72. ```powershell
  73. # -e:显示所有程序
  74. # -f:显示UID,PPIP,C与STIME栏位。
  75. $ ps -ef
  76. # 注意:如果直接用ps((Process Status))命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。
  77. $ ps -ef | grep sshd
  • User:执行者
  • PID:进程号
  • PPID:父进程ID
  • STIME:启动时间
  • CMD:启动时调用的命令行

**ps -ef**/**ps -aux** 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:**ps aux|grep redis** (查看包括redis字符串的进程),也可使用 pgrep redis -a

2)查看进程

  1. # 查看所有的进程列表
  2. $ top
  3. # 退出
  4. q ctrl + c
  5. # 查看某个进程,其中Xxx为进程的PID(进程号),可通过ps命令查看
  6. $ top -p Xxx

3)杀死进程

  1. # Xxx为进程的PID(进程号),可通过ps命令查看
  2. # -9:强制无条件删除
  3. $ 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

  1. $ sudo apt install rpm

2)清除系统默认自带的JDK

如果安装CentOS6.8时,默认安装了例如openJDK等,请先执行rpm -qa | grep jdk查看已经自带的JDK,然后卸载。

  1. # 查看
  2. $ rpm -qa | grep jdk
  3. # 卸载(Xxx为上一个命令查到的结果)
  4. $ sudo yum remove Xxx

10.2、赋予权限

  1. sudo chmod 777 jdk-7u80-linux-x64.rpm

10.3、安装

  1. # 当然,也可以下载*.tar.gz格式的安装
  2. $ sudo rpm -ivh jdk-8u291-linux-x64.rpm

出现错误:

  1. warning: jdk-8u291-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
  2. error:Failed dependencies:
  3. ...

解决:忽视依赖关系

  1. $ sudo rpm -ivh jdk-8u291-linux-x64.rpm --force --nodeps
  2. $ whereis java

10.4、默认安装路径:/usr/java

  1. $ rpm -qip jdk-8u291-linux-x64.rpm
  2. /usr/java/jdk1.8.0_291-amd64

10.5、配置环境变量

1)打开配置文件

  1. # 用户环境变量
  2. $ sudo vim ~/.profile
  3. # 系统环境变量
  4. $ sudo vim /etc/profile
  5. # 刷新或重启电脑
  6. $ source ~/.profile

2)在配置文件最下方添加

  1. export JAVA_HOME=/usr/java/jdk1.8.0_291-amd64
  2. export JRE_HOME=${JAVA_HOME}/jre
  3. # export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
  5. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  6. export PATH=$PATH:${JAVA_PATH}

3)保存退出,并使配置生效

  1. $ source ~/.profile
  2. $ source /etc/profile

10.6、验证安装是否成功

  1. $ java -version

课堂练习:编写Java程序,打印输出:hello,world

11.7、ubuntu安装

Ubuntu的软件包格式为deb,不支持rpm软件包的安装。因此,需要把rpm包转换为deb包。

  1. ## 方法一
  2. # 安装转换工具
  3. $ sudo apt install alien
  4. # 把rpm包转换为deb包
  5. $ sudo alien -d jdk-8u333-linux-x64.rpm
  6. # 安装,安装路径为:/usr/java/jdk1.8.0_333-amd64
  7. $ sudo dpkg -i jdk1.8_1.8.0333-1_amd64.deb
  8. # 配置环境变量
  9. # 测试是否安装成功 - 失败,原因是没找到tools.jar及rt.jar
  10. # tools.jar是关于一些工具的类库
  11. # rt.jar包含了jdk的基础类库
  12. $ java -version
  13. Error occurred during initialization of VM
  14. java/lang/NoClassDefFoundError: java/lang/Object
  15. # 解决:使用unpack200把rt.pack和tools.pack分别解压为rt.jar和tools.jar
  16. zing@zing-pc:/usr/java/jdk1.8.0_333-amd64/jar/lib$ ../bin/unpack200 rt.pack rt.jar
  17. zing@zing-pc:/usr/java/jdk1.8.0_333-amd64/lib$ ../bin/unpack200 tools.pack tools.jar
  18. # 解决tomcat启动失败
  19. zing@zing-pc:/usr/java/jdk1.8.0_333-amd64/jre/lib$ sudo ../bin/unpack200 jsse.pack jsse.jar
  20. ## 方法二
  21. # 解压JDK
  22. # 配置环境环境变量

11、Tomcat安装

11.1、下载、解压安装

  1. # 修改权限
  2. chmod 777 apache-tomcat-8.5.66.tar.gz
  3. chown zing apache-tomcat-8.5.66.tar.gz
  4. chgrp zing apache-tomcat-8.5.66.tar.gz
  5. # 解压安装在/opt目录下
  6. $ sudo tar -zxvf apache-tomcat-8.5.66.tar.gz -C /opt
  7. $ sudo chmod -R u+x apache-tomcat-8.5.66

11.2、配置环境变量

1)打开配置文件

  1. sudo vim /etc/profile

2)在文件最后添加

  1. export CATALINA_HOME=/opt/apache-tomcat-8.5.66

3)保存退出,并使配置生效

  1. source /etc/profile

11.3、启动、停止Tomcat

  1. # 进入bin目录
  2. $ ./startup.sh #启动
  3. # 访问:http://localhost:8080
  4. $ ./shutdown.sh #停止
  5. # 查看tomcat进程
  6. $ ps -ef | grep java
  7. $ netstat -anp | grep 8080
  8. # 查看防火墙状态
  9. $ sudo ufw status
  10. # 开启防火墙
  11. $ sudo ufw enable
  12. # 禁用防火墙
  13. $ sudo ufw disable

12、MySQL安装

  1. # 更新服务器上的软件包索引
  2. $ sudo apt update
  3. # 安装
  4. $ sudo apt install mysql-server
  5. # 查看状态
  6. $ sudo systemctl status mysql
  7. $ sudo service mysql status
  8. # 运行安全脚本,根据向导执行MySQL安全设置
  9. $ sudo mysql_secure_installaction
  10. # 登录(默认情况下,MySQLroot用户设置为使用auth_socket插件而不是密码进行身份验证)
  11. $ sudo mysql
  12. # 查看用户信息
  13. mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
  14. # 设置ROOT密码
  15. mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
  16. # 重新加载授权表并使新的更改生效
  17. mysql> FLUSH PRIVILEGES;
  18. # 设置允许远程登录
  19. mysql> update user set host='%' where user='root'
  20. mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
  21. # grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;(修改权限时在后面加with grant option)
  22. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  23. mysql> flush privileges;
  24. # 找到 bind-address 修改值为 0.0.0.0
  25. $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  26. # 重启mysql
  27. sudo /etc/init.d/mysql restart
  28. service mysql start | restart | stop
  29. sudo systemctl status|start|restart mysql

https://www.linuxcool.com/ Linux命令大全