趣谈Linux1
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
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeの博客!