Linux的相关命令和软件安装

610 阅读11分钟

Linux

linux关机

  • 关机指令为:shutdown

  • shutdown –h now # 立马关机

  • reboot # 就是重启,等同于 shutdown –r now

  • 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

系统目录结构

树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)

以下是对这些目录的解释:

  • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
  • /tmp:这个目录是用来存放一些临时文件的。
  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /usr/bin: 系统用户使用的应用程序。
  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src: 内核源代码默认的放置目录。
  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

处理目录的常用命令

  • ls: 列出目录
  • cd:切换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • cp: 复制文件或目录 cp 来源档 目标档
  • rm: 移除文件或目录
  • mv: 移动文件与目录,或修改文件与目录的名称

ls

ls-al

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

文件属性

  • [ d ]则是目录,当为[ - ]则是文件,若是[ l ]则表示为链接文档 ( link file );若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
  • 下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute),这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
  • r:4 w:2 x:1

修改文件属性

  1. chgrp:更改文件属组 chgrp [-R] 属组名 文件名
  2. chgrp [-R] 属组名 文件名 属主名:属组名 文件名
  3. chmod:更改文件9个属性 chmod 770 filename

文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容

    1. -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

    2. -n :列 印出行号,连同空白行也会有行号

  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

  • nl 显示的时候,顺道输出行号!

  • more 一页一页的显示文件内容

    1. 空白键 (space):代表向下翻一页;
    2. Enter :代表向下翻『一行』/字
    3. /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字
    4. :f :立刻显示出档名以及目前显示的行数;
    5. q :代表立刻离开 more ,不再显示该文件内容。
    6. b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

    1. ?字串 :向上搜寻『字串』的功能;
    2. /字串 :向下搜寻『字串』的功能;
    3. 空白键 ,[pagedown] :向下翻动一页;
    4. [pageup] :向上翻动一页;
    5. q :离开 less 这个程序;
  • head 只看头几行

  • tail 只看尾巴几行

Linux 链接概念

  • 硬连接

    两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

    ln f1 f2 # 创建f1的一个硬连接文件f2

  • 软连接

    A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

    ln –s 被链接的源文件 链接文件

Vim

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。这三种模式的作用分别是:

  1. 命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

​ 以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

  1. 输入模式:

  2. 底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。

    在底线命令模式中,基本的命令有:

    • q 退出程序
    • w 保存文件

账号管理

添加账号 useradd

useradd 选项 用户名 useradd -m abc

  • -g 用户组 指定用户所属的用户组。
  • -m 使用者目录如不存在则自动建立

Linux下如何切换用户

  • 从普通用户切换到root用户,还可以使用命令:sudo su
  • 切换用户的命令为:su username 从root用户切换到普通用户
  • $表示普通用户, #表示超级用户,也就是root用户

删除帐号

常用的选项是 -r,它的作用是把用户的主目录一起删除。

userdel -r kuangshen

修改帐号

usermod 选项 用户名

用户口令的管理

passwd 选项 用户名

用户组管理

增加一个新的用户组使用groupadd命令

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

如果要删除一个已有的用户组,使用groupdel命令

groupdel 用户组

修改用户组的属性使用groupmod命令

groupmod 选项 用户组

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字

切换组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

$ newgrp root

LINUX系统文件

与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

  1. /etc/passwd

    /etc/passwd文件是用户管理工作涉及的最重要的一个文件。

    Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

    其格式和具体含义如下:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
    
  2. /etc/shadow

    由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

    /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

  3. /etc/group

    用户组的所有信息都存放在/etc/group文件中,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。

    组名:口令:组标识号:组内用户列表
    

    磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘管理

    Linux磁盘管理常用命令为 df、du。

    • df :列出文件系统的整体磁盘使用量

      • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
      • -k :以 KBytes 的容量显示各文件系统;
      • -m :以 MBytes 的容量显示各文件系统;
    • du:检查磁盘空间使用量

      • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

      • -h :以人们较易读的容量格式 (G/M) 显示;

      • -s :列出总量而已,而不列出每个各别的目录占用容量;

    磁盘卸载命令 umount 语法:

    umount [-fn] 装置文件名或挂载点
    

    磁盘挂载与卸除

    根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”

    Linux 的磁盘挂载使用mount命令,卸载使用umount命令。

    磁盘挂载语法:

    mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
    
    # 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
    [root@www ~]# mkdir /mnt/hdc6
    [root@www ~]# mount /dev/hdc6 /mnt/hdc6
    [root@www ~]# df
    Filesystem           1K-blocks     Used Available Use% Mounted on
    /dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6
    

​ 磁盘卸载命令 umount 语法:

​ umount [-fn] 装置文件名或挂载点

软件安装方式

1.jdk安装(rpm安装)

# 安装java rpm
 # rpm -ivh jdk-8u221-linux-x64.rpm

# 安装完成后配置环境变量 文件:/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
export CLASSPATH JAVA_HOME
# 保存退出

# 让新增的环境变量生效!
source /etc/profile

# 测试 java -version
 # java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

2.Tomcat安装(解压缩安装)

# mv apache-tomcat-9.0.22.tar.gz /usr
# cd /usr
# ls
apache-tomcat-9.0.22.tar.gz
# tar -zxvf apache-tomcat-9.0.22.tar.gz   # 解压

安装Docker(yum安装)

  1. 官网安装参考手册:docs.docker.com/install/lin…

  2. 确定你是CentOS7及以上版本

    [root@192 Desktop]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)
    
  3. yum安装gcc相关(需要确保 虚拟机可以上外网 )

    yum -y install gcc
    yum -y install gcc-c++
    
  4. 卸载旧版本

    yum -y remove docker docker-common docker-selinux docker-engine
    # 官网版本
    yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine
    
  5. 安装需要的软件包

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  6. 设置stable镜像仓库

    # 错误
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    ## 报错
    [Errno 14] curl#35 - TCP connection reset by peer
    [Errno 12] curl#35 - Timeout
    
    # 正确推荐使用国内的
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  7. 更新yum软件包索引

    yum makecache fast
    
  8. 安装Docker CE

    yum -y install docker-ce docker-ce-cli containerd.io
    
  9. 启动docker

    systemctl start docker
    
  10. 测试

    docker version
    
    docker run hello-world
    
    docker images
    

Linux的防火墙端口开启

各个软件端口要开启 如tomcat的端口是8080

# 查看firewall服务状态
systemctl status firewalld

# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

# 查看防火墙规则
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service

命令含义:
--zone #作用域
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效