Linux操作系统

组成

  • 系统调用子系统
  • 进程管理子系统
  • 内存管理子系统
  • 文件子系统
  • 设备子系统
  • 网络子系统

总览

几个命令

总览

设置密码

命令:passwd

创建新用户

命令:useradd + 用户名

  • 为新建用户设置密码:passed + 用户名
  • /etc/passwd:查看用户
  • /etc/group:查看组

浏览文件

  • ls:列出当前目录下的文件
    • window的是dir
    • window的cd ..表示切换到上一级目录
  • ls -l:用列表的方式列出文件
    • 其中第一个字段的第一个字符是文件类型。如果是“-”,表示普通文件;如果是 d,就表示目录。
    • 第一个字段剩下的 9 个字符是模式,其实就是权限位(access permission bits)
    • 3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。
      • 如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。
      • 这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限。
      • 例子:-rw-r–r-- 就可以翻译为,这是一个普通文件,对于所属用户,可读可写不能执行;对于所属的组,仅仅可读;对于其他用户,也是仅仅可读。如果想改变权限,可以使用命令 chmod 711 hosts。
    • 第二个字段是硬链接(hard link)数目
    • 第三个字段是所属用户,第四个字段是所属组。第五个字段是文件的大小,第六个字段是文件被修改的日期,最后是文件名。
    • 可以通过命令chown改变所属用户,chgrp改变所属组。

管理和安装软件

  • Linux常用的有两大体系
    • CentOS体系

    • Ubuntu体系

  • 软件格式:前者使用rpm,后者使用deb

CentOS

rpm -- 程序管理(Redhat Package Manager)
  • 本地安装rpm文件:rpm -i + rpm文件(安装一个下载到本地的软件包)
  • 查看安装的软件列表:rpm -qa
  • 将列出来的所有软件形成一个输出:rpm -qa | grep jdk
    • 是管道,用于连接两个程序
    • 前面 rpm -qa 的输出就放进管道里面,然后作为 grep 的输入,grep 将在里面进行搜索带关键词 jdk 的行,并且输出出来。
    • grep 支持正则表达式,因此搜索的时候很灵活,再加上管道,这是一个很常用的模式。
  • 列出所有软件:rpm -qa | more 或者 rpm -qa | less
    • more 是分页后只能往后翻页,翻到最后一页自动结束返回命令行,less 是往前往后都能翻页,需要输入 q 返回命令行,q 就是 quit。
  • 删除:rpm -e (只是删除安装的文件)
yum -- 软件管家
  • 下载:yum install + 软件名

  • 搜索:yum search + 关键字

  • 卸载:yum erase + 软件名

  • 下载地址配置文件:/etc/yum.repos.d/CentOS-Base.repo

Ubuntu

dpkg -- 程序管理(Debian package)
  • 本地安装deb文件:dpkg -i + deb文件(安装一个下载到本地的软件包)
  • 查看安装的软件列表:dpkg -l
  • 将列出来的所有软件形成一个输出:dpkg -l | grep jdk
  • 删除:dpkg -r(只是删除安装的文件)
apt -- 软件管家
  • 下载:apt-get install + 软件名

  • 搜索:apt-cache search + 关键字

  • 卸载:apt-get purge + 软件名

  • 下载地址配置文件:/etc/apt/sources.list

下载

  • 其实无论是先下载再安装,还是通过软件管家进行安装,都是下载一些文件,然后将这些文件放在某个路径下,然后在相应的配置文件中配置一下。
  • 还有一种简单粗暴的方法,就是将安装好的路径直接下载下来,然后解压缩成为一个整的路径。
    • 在 JDK 的安装目录中,Windows 有 jdk-XXX_Windows-x64_bin.zip,这是 Windows 下常用的压缩模式。
    • Linux 有 jdk-XXX_linux-x64_bin.tar.gz,这是 Linux 下常用的压缩模式。
    • Linux 上面有一个工具 wget,后面加上链接,就能从网上下载

解压缩

  • Linux 下面默认会有 tar 程序。如果是解压缩 zip 包,就需要另行安装。
  • tar.ge格式的,通过 tar xvzf jdk-XXX_linux-x64_bin.tar.gz 就可以解压缩。

配置环境变量

  • 通过 tar 解压缩之后,也需要配置环境变量,可以通过 export 命令来配置。
    •   export JAVA_HOME=/root/jdk-XXX_linux-x64
        export PATH=$JAVA_HOME/bin:$PATH
    • export 命令仅在当前命令行的会话中管用,一旦退出重新登录进来,就不管用了
  • 在当前用户的默认工作目录,例如 /root 或者 /home/cliu8 下面,有一个.bashrc 文件
    • 这个文件是以点开头的,这个文件默认看不到,需要 ls -la 才能看到,a 就是 all
    • 每次登录的时候,这个文件都会运行,因而把它放在这里。
    • 这样登录进来就会自动执行。当然也可以通过 source .bashrc 手动执行。
  • 编辑.bashrc文件,可以使用文本编辑器 vi,也可以使用更加友好的 vim。
    • 如果默认没有安装,可以通过 yum install vim 及 apt-get install vim 进行安装。

vim的使用

  • 打开文件:vim + 文件名(路径)
    • 如果没有这个文件,就创建一个
  • 输入i:进入编辑模式
  • 退出编辑模式:esc
  • 输入:
    • 后面是输入命令的
    • 输入命令w:write
      • 可以保存文本
    • 输入q:退出
    • 冒号!:是强制

运行程序

  • Linux 执行程序最常用的一种方式,通过 shell 在交互命令行里面运行。
    • 只要文件有 x 执行权限,都能到文件所在的目录下,通过./filename运行这个程序。
    • 当然,如果放在 PATH 里设置的路径下面,就不用./ 了,直接输入文件名就可以运行了,Linux 会帮你找。
    • 缺点:一旦退出交互命令行,程序就停止运行了
  • Linux 运行程序的第二种方式,后台运行
    • nohup命令:当前交互命令行退出的时候,程序还要在
    • 这个时候,程序不能霸占交互命令行,而是应该在后台运行。最后加一个 &,就表示后台运行。
    • 另外一个要处理的就是输出,后台运行时,输出到文件中。
    • 最终命令的一般形式:nohup command >out.file 2>&1 &
      • “1”表示文件描述符 1
      • “2”表示文件描述符 2,意思是标准错误输出
      • “2>&1”表示标准输出和错误输出合并了。合并到 out.file 里。
    • 关闭进程
      • 启动的程序包含某个关键字,那就可以使用下面的命令
        • ps -ef |grep 关键字 |awk '{print $2}'|xargs kill -9
      • ps -ef
        • 可以单独运行,列出所有正在运行的程序
      • awk工具
        • 可以很灵活地对文本进行处理
        • awk '{print $2}'是指第二列的内容,是运行的程序 ID。
        • 可以通过 xargs 传递给 kill -9,也就是发给这个运行的程序一个信号,让它关闭
      • 如果你已经知道运行的程序 ID,可以直接使用 kill 关闭运行的程序。

服务(systemd)

  • Linux中的服务是程序运行的第三种方式,以服务的方式运行。
    • 例如常用的数据库 MySQL,就可以使用这种方式运行。
  • Ubuntu
    • 安装MySQL:apt-get install mysql-server
    • 启动MySQL:systemctl start mysql
    • 设置开机启动:systemctl enable mysql
      • 之所以成为服务并且能够开机启动,是因为在 /lib/systemd/system 目录下会创建一个 XXX.service 的配置文件,里面定义了如何启动、如何关闭。
  • CentOS
    • 安装MySQL:yum install mariadb-server mariadb
    • 启动MySQL:systemctl start mariadb
    • 设置开机启动:systemctl enable mariadb
      • 同理,会在 /usr/lib/systemd/system 目录下,创建一个 XXX.service 的配置文件,从而成为一个服务。

重启关机

  • 关机:shutdown -h now
  • 重启:reboot