在操作系统中,进程的执行也需要分配 CPU 进行执行,也就是按照程序里面的二进制代码一行一行地执行。于是,为了管理进程,我们还需要一个进程管理子系统(Process Management Subsystem)。如果运行的进程很多,则一个 CPU 会并发运行多个进程,也就需要 CPU 的调度能力了。
在操作系统中,不同的进程有不同的内存空间,但是整个电脑内存就这么点儿,所以需要统一的管理和分配,这就需要内存管理子系统(Memory Management Subsystem)。
Linux修改密码的命令:passwd;创建用户的命令:useradd。
/bin/bash 的位置是用于配置登录后的默认交互命令行的,不像 Windows,登录进去是界面,其实就是 explorer.exe。而 Linux 登录后的交互命令行是一个解析脚本的程序,这里配置的是 /bin/bash。
ls -l,也就是用列表的方式列出文件。
# ls -l
drwxr-xr-x 6 root root 4096 Oct 20 2017 apt
-rw-r--r-- 1 root root 211 Oct 20 2017 hosts
其中第一个字段的第一个字符是文件类型。如果是“-”,表示普通文件;如果是 d,就表示目录。当然还有很多种文件类型。
第一个字段剩下的 9 个字符是模式,其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。
这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限。
第二个字段是硬链接(hard link)数目。
第三个字段是所属用户,第四个字段是所属组。第五个字段是文件的大小,第六个字段是文件被修改的日期,最后是文件名。你可以通过命令chown改变所属用户,chgrp改变所属组。
Linux 现在常用的有两大体系,一个是 CentOS 体系,一个是 Ubuntu 体系,前者使用 rpm,后者使用 deb。
在 Linux 下面,凭借rpm -qa和dpkg -l就可以查看安装的软件列表,-q 就是 query,a 就是 all,-l 的意思就是 list。
如果你不知道关键词,可以使用rpm -qa | more和rpm -qa | less这两个命令,它们可以将很长的结果分页展示出来。这样你就可以一个个来找了。
如果要删除,可以用rpm -e和dpkg -r。-e 就是 erase,-r 就是 remove。
Linux 也有自己的软件管家,CentOS 下面是 yum,Ubuntu 下面是 apt-get。
对于 CentOS 来讲,配置文件在/etc/yum.repos.d/CentOS-Base.repo里。
对于 Ubuntu 来讲,配置文件在/etc/apt/sources.list里。
对应 Linux 里面会放的更散一点。例如,主执行文件会放在 /usr/bin 或者 /usr/sbin 下面,其他的库文件会放在 /var 下面,配置文件会放在 /etc 下面。
如果是 tar.gz 这种格式的,通过 tar xvzf jdk-XXX_linux-x64_bin.tar.gz 就可以解压缩了。
在 Linux 也是一样的,通过 tar 解压缩之后,也需要配置环境变量,可以通过 export 命令来配置。
export JAVA_HOME=/root/jdk-XXX_linux-x64
export PATH=$JAVA_HOME/bin:$PATH
export 命令仅在当前命令行的会话中管用,一旦退出重新登录进来,就不管用了。若需要永久存在,通过 vim .bashrc,将 export 的两行加入后,输入:wq,写入并且退出,这样就编辑好了。
最终命令的一般形式为nohup command >out.file 2>&1 &。这里面,“1”表示文件描述符 1,表示标准输出,“2”表示文件描述符 2,意思是标准错误输出,“2>&1”表示标准输出和错误输出合并了。合并到哪里去呢?到 out.file 里。
我们假设启动的程序包含某个关键字,那就可以使用下面的命令关闭进程。
ps -ef |grep 关键字 |awk '{print $2}'|xargs kill -9
此文章为10月Day16学习笔记,内容来源于极客时间《趣谈Linux操作系统》,推荐该课程。