Linux基础_Linux操作系统简介
Posted 一头牛这么多人放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础_Linux操作系统简介相关的知识,希望对你有一定的参考价值。
# UNIX是什么
UNIX操作系统是一个计算机操作系统,一个用来协调,管理,控制计算机硬件和软件资源的控制程序,具有多用户(同一时刻可以有多个用户同时使用UNIX操作系统而不相互干扰),多任务(同一时间在UNIX操作系统上可以运行多个程序)的操作系统,属于分时操作系统。
UNIX诞生史:1965年时,贝尔实验室加入一项由通用电气和麻省理工学院合作的计划。该计划要建立一套多永辉、多任务、多层次的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程序在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程序移植到PDP-7上。MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。(来自百度百科)
# Linux是什么
Linux是一套免费使用和自由传播的类UNIX操作系统(UNIX目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)),是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux的主要用途是:服务器,网络服务器
# CentOS的安装过程
# LInux基础知识
# 关闭Linux系统的命令:init 0 (需要是root用户登录才能执行)
# 切换不同终端方法:ctrl + alt + (F1~F6)
# 普通用户登录系统提示符:$
# root用户登录系统提示符:#
# 用 exit 命令来退出系统终端
# Linux命令的格式: 命令 [选项] [参数]
命令:告诉操作系统执行什么操作
选项:说明命令的运行方式,部分以"-"开头
参数:说明命令操作的是什么(如一个文件或者目录)
[root@localhost 桌面]# ls -a / # 表示查看根目录下的详细信息
# 输入命令 clear 清屏,或快捷键ctrl+l
# ctrl+c 终止当前命令
# Linux中一些简单的命令
# 查看当前所在终端登录的用户 [root@localhost 桌面]# whoami root # 查看当前系统所有用户,及显示当前时间 [root@localhost 桌面]# who root tty1 2019-01-25 08:38 (:0) root pts/0 2019-01-25 09:38 (:0.0) # 查看当前时间 [root@localhost 桌面]# date 2019年 01月 25日 星期五 09:41:27 CST # 设置当前时间 [root@localhost 桌面]# date "100914452016" 2016年 10月 09日 星期日 14:45:00 CST # 跟硬件时间同步 [root@localhost 桌面]# hwclock 2019年01月25日 星期五 09时43分49秒 -0.594216 seconds # 同步系统时间 [root@localhost 桌面]# hwclock -w [root@localhost 桌面]# date 2016年 10月 09日 星期日 14:58:21 CST # 查看日历 [root@localhost 桌面]# cal 十月 2016 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 查看日历,指定日历日期 [root@localhost 桌面]# cal 7 1999 七月 1999 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 新建用户 [root@bogon ~]# useradd heihei [root@bogon ~]# passwd heihei # 给用户heihei新建密码 更改用户 heihei 的密码 。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 # 修改用户密码 [root@localhost 桌面]# passwd heihei # 终端中切换用户 [root@bogon ~]# su - doaoao 上一次登录:三 1月 9 20:01:20 CST 2019:0 上 [doaoao@bogon ~]$ su - heihei 密码: [heihei@bogon ~]$ # 用 "man + 命令"(来获取某个Linux命令的说明) [root@localhost 桌面]# man ls # 用 "命令 + --help"(来获取某个Linux命令的说明) [root@localhost 桌面]# ls --help
# Linux中的目录结构
bin目录:用来存放常用的可执行文件
sbin目录:存放系统的可执行文件
家目录:用来存放用户自己的文件或目录;root用户的家目录为.root,普通用户的家目录为/home(并用用户名创建用户家目录的一级文件,doaoao的家目录为/home/doaoao)
dev目录:设备文件目录
etc目录:配置文件目录
# 绝对路径:从头开始找
# 相对路径:一个文件相对另一个文件的位置,待补充...
# 目录文件的浏览
cd .. # 返回上级目录 cd ~ # 返回到当前用户家目录(root用户为root目录,普通用户切换到home目录) cd - # 返回上一次所在的目录 cd # 切换到家目录 cd 目录名 # 切换到指定的目录 ls # 列出当前目录或指定目录中的内容 ls -l # 查看详细信息 ls -l / # 列出某个目录下的详细信息 ls -a # 显示隐藏文件 ls -l -a # 显示隐藏文件 也显示详细信息,等同于ls -all cp # 复制文件和目录 [root@bogon ~]# cp /home/hello /opt/ # 将home下的hello文件拷贝到opt下 cp 源文件 目标文件 -r:递归的,递归地复制目录,当复制一个目录时,复制该目录中所有的内容,包括子目录的全部内容 [root@bogon ~]# cp -r /home/hello /opt/ -f :强制性,在目标文件一已经存在的情况下不询问直接强制复制 [root@bogon ~]# cp -f /home/hello /opt/ # 将test5下的abc.txt移动到/test6中 [root@localhost ~]# mv test5/abc.txt /test6 # mkdir /test创建目录 # touch 创建文件 # 删除一个目录(不能删除包含子文件的目录) rmdir [root@localhost ~]# rmdir /test7 # 可删除文件夹 rm -r # 删除一个目录,可以删除包含文件和子目录的目录 [root@localhost ~]# rmdir /test5 rmdir: 删除 "/test5" 失败: 目录非空 [root@localhost ~]# rm -rf /test5 # 浏览文件中的内容 [root@localhost ~]# cat abc.txt helloworld # 查看命令的别名 用 alias [root@bogon ~]# alias cp alias cp=\'cp -i\' # 给命令取别名 [root@bogon ~]# alias heihei="cp -i" # head 浏览文件中的内容(默认显示头10行) [root@localhost ~]# head abc.txt helloworld 545 45 4 54 54 54 54 54 54 # 显示/etc/passwd文件详细信息前十行 [root@localhost ~]# head 5 /etc/passwd # 显示/etc/passwd文件详细信息前五行 [root@localhost ~]# head -n 5 /etc/passwd # 显示文件后10行内容 [root@localhost ~]# tail abc.txt 54 54 54 5 45 4 54 54 54 # 显示文件后5行信息 [root@localhost ~]# tail -n 5 abc.txt 4 54 54 54 # more 浏览文件(浏览一部分 用回车键下翻,百分比方式查看) [root@localhost ~]# more abc.txt pwd # 查看当前目录
# 掌握/etc/passwd文件结构将其功能
功能:用来存储用户相关信息,该文件也被称为用户信息数据库
[root@localhost ~]# head -n 1 /etc/passwd root:x:0:0:root:/root:/bin/bash
文件结构:每一行代表的是一个账号,有几行就代表有几个账号;每一行使用 “:”分隔符,由7部分组成
第一字段:用来记录用户名称,用来对应第三个字段的UID,root的UID为0
第二字段:如果该字段为表示用户登录系统是需要使用密码;如果为空表示用户不必利用密码进行登录
第三字段:UID指的是使用者的标识符
第四字段:用来记录用户所属群组的GID
第五字段:记录于用户有关的注释信息
第六字段:记录用户的家目录,root的家目录为/root,普通用户doaoao的家目录为/home/doaoao
第七字段:当用户登录系统时,会取得一个Shell来与系统的核心沟通以进行用户的操作
# 掌握/etc/shadow文件结构及其功能
功能:存有用户的密码,每一个用户占一行记录,该文件实际上就是存放用户密码信息的数据库
[root@localhost ~]# head -n 1 /etc/shadow root:$6$MqR7env0v.YcJO/7$yMmnDq2U7UBt7dq/HCKAdE6U2FD054DGzr948mxXHS6o0SlIHCtF5TTjBRSdxWyFsg.JmhpqukBbgZnqqltHS.:17917:0:99999:7:::
第一字段:用户名
第二字段:经过加密后的密码
# 掌握/etc/group文件结构及其功能
[root@localhost 桌面]# head -n 5 /etc/group root:x:0:root bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon
第一字段:组名
第二字段:当显示为x时表示登录Linux系统时必须使用密码登录
第三字段:为GID,使用GID来对应群组名称
第四字段:记录该群组中的成员,如果要想将某个账号添加到改群组,就可以将该账号添加到该字段下,如将账号doaoao加到root组下,即在第一行的后面加上",doaoao" ,即 root:x:0:root,doaoao
# 账号相关文件之间的UID/GID与口令之间的关系示意图
# 初始群组与有效群组
问题:当一个账号加入多个群组时,当账号在进行操作时,该以哪个群组为准?
账号doaoao的初始群组为doaoao(用命令groups来知道账号所属的所有群组)
[doaoao@localhost ~]$ groups
doaoao
将账号添加到root群组中
[root@localhost ~]# usermod -G root doaoao [root@localhost ~]# su - doaoao [doaoao@localhost ~]$ groups doaoao root
当一个账号所属的群组由多个时,可利用命令groups输数账号所属的所有群组,排在第一位的就是账号的有效群组,也就是说上方的账号doaoao所属的有效群组为doaoao,如果此时去创建一个文件,那么这个文件就是的属主为doaoao,属组也为群组doaoao
[doaoao@localhost ~]$ touch abc.txt [doaoao@localhost ~]$ ll 总用量 0 -rw-rw-r-- 1 doaoao doaoao 0 1月 26 10:49 abc.t
有效群组的切换 newgrp
注意:有效群组的切换只能在该账号支持的群组中进行切换,例如账号doaoao支持群组为doaoao和root,切换有效群组时只能在这两个账号之间进行切换
[doaoao@localhost ~]$ newgrp root [doaoao@localhost ~]$ groups root doaoao [doaoao@localhost ~]$ touch abcd.txt [doaoao@localhost ~]$ ll 总用量 0 -rw-r--r-- 1 doaoao root 0 1月 26 10:53 abcd.txt -rw-rw-r-- 1 doaoao doaoao 0 1月 26 10:49 abc.txt
# 账号
新增账号 useradd
useradd常用的选项
-u:指定用户的UID,由一组数字组成,直接指定一个特殊的UID给该账号 -g:指定用户所属的群组,后面接的为组名 -G:后面接的组名表示该账号还可以加入该群组 -M:强制,不创建用户家目录 -m:强制,创建用户家目录(系统默认创建家目录) -c:指的是在/etc/passwd的第五段的注释信息 -d:用来指定用户的家目录 -r:创建一个系统账号 -s:指定用户所用的shell -e:后面加上日期,日期的格式为 YYYY-MM-DD,可写入/etc/shadow的第五段(表示账号的失效日期) -f:表示/etc/shadow的第七段,指定口令是否失效;0为失效,-1为永远不失效
# 添加一个普通用户 [root@localhost ~]# useradd heihei3 # 添加用户其它信息 [root@localhost ~]# useradd -u 666 -g root doaoao1 # [root@bogon ~]# useradd -u 505 -g heihei -d /home/hee -c hello -s /bin/bash xiaohei [root@bogon ~]# tail -1 /etc/passwd xiaohei:x:505:1002:hello:/home/hee:/bin/bash # UID:505 # 所属群组:heihei # 家目录:/home/hee # 注释信息:hello # shell:/bin/bash # 用户名:xiaohei
useradd是如何给账号添加默认信息的(默认家目录,默认群组,默认shell)
用[root@localhost ~]# vim /etc/default/useradd,打开useradd配置文件
# useradd defaults file GROUP=100 # 初始的用户GID为100 HOME=/home # 用户的默认家目录为/home INACTIVE=-1 # 口令过期后是否失效的配置值,表示/etc/shadow的第七段,0为失效,-1为永远不失效 EXPIRE= # 账号失效的日期 SHELL=/bin/bash # 默认使用shell程序的文件名 SKEL=/etc/skel # 用户家目录的参考目录(用户/home/doaoao下的各个数据向都是由/etc/shel中拷贝过去的) CREATE_MAIL_SPOOL=yes # 创建者所使用的mailbox
chage的使用
chage可以用来显示口令的详细参数
[root@localhost ~]# chage 用法:chage [选项] 登录 选项: -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” -E, --expiredate 过期日期 将帐户过期时间设为“过期日期” -h, --help 显示此帮助信息并推出 -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态 -l, --list 显示帐户年龄信息 -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数” -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数” -R, --root CHROOT_DIR chroot 到的目录 -W, --warndays 警告天数 将过期警告天数设为“警告天数”
账号doaoao的详细口令参数
[root@localhost ~]# chage -l doaoao 最近一次密码修改时间 :1月 24, 2019 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :99999 在密码过期之前警告的天数 :7
usermod使用
用于修改用户的相关信息
[root@localhost ~]# usermod 用法:usermod [选项] 登录 选项: -c, --comment 注释 修改用户备注信息 -d, --home HOME_DIR 修改用户家目录 -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态 -g, --gid GROUP 修改用户的GID -G, --groups GROUPS 将一个用户添加到指定群组中 -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户 -h, --help 显示此帮助信息并推出 -l, --login LOGIN 新的登录名称 -L, --lock 锁定用户帐号 -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用) -o, --non-unique 允许使用重复的(非唯一的) UID -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 修改用户所用的shell -u, --uid UID 修改用户的UID -U, --unlock 解锁用户帐号 -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
利用-G添加组成员(覆盖形式)
[root@localhost ~]# groupadd group2 [root@localhost ~]# usermod -G group2 doaoao [root@localhost ~]# su - doaoao [doaoao@localhost ~]$ groups doaoao group2 [doaoao@localhost ~]$
以追加形式 -aG 添加组成员
[root@localhost ~]# groupadd group3 [root@localhost ~]# usermod -aG group3 doaoao [root@localhost ~]# su - doaoao [doaoao@localhost ~]$ groups doaoao group2 group3
userdel使用
[root@localhost ~]# userdel 用法:userdel [选项] 登录 选项: -f, --force force some actions that would fail otherwise e.g. removal of user still logged in or files, even if not owned by the user -h, --help 显示此帮助信息并推出 -r, --remove 在删除用户的同时删除这个用户的家目录及其邮箱 -R, --root CHROOT_DIR chroot 到的目录 -Z, --selinux-user 为用户删除所有的 SELinux 用户映射
删除用户doaoao不删除其家目录及其邮箱
[root@localhost ~]# userdel doaoao
删除用户doaoao删除家目录及其邮箱
[root@localhost ~]# userdel -r doaoao
groupadd使用
[root@localhost ~]# groupadd 用法:groupadd [选项] 组 选项: -f, --force 如果组已经存在则成功退出 并且如果 GID 已经存在则取消 -g -g, --gid GID 为新组使用 GID -h, --help 显示此帮助信息并推出 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值 -o, --non-unique 允许创建有重复 GID 的组 -p, --password PASSWORD 为新组使用此加密过的密码 -r, --system 创建一个系统账户 -R, --root CHROOT_DIR chroot 到的目录
[root@localhost ~]# groupadd group5
groupmod使用
[root@localhost ~]# groupmod 用法:groupmod [选项] 组 选项: -g, --gid GID 将组 ID 改为 GID -h, --help 显示此帮助信息并推出 -n, --new-name NEW_GROUP 修改群组的名称 -o, --non-unique 允许使用重复的 GID -p, --password PASSWORD 将密码更改为(加密过的) PASSWORD -R, --root CHROOT_DIR chroot 到的目录
[root@localhost ~]# groupmod -g 200 -n test_group group5
groupdel的使用
[root@localhost ~]# groupdel 用法:groupdel [选项] 组 选项: -h, --help 显示此帮助信息并推出 -R, --root CHROOT_DIR chroot 到的目录 [root@localhost ~]#
[root@localhost ~]# groupdel test_group
gpasswd:群组管理员功能
如果系统管理员太过繁忙,当某个账号想要加加入某个项目时却找不到系统管理员。这个时候就可以创建群组管理员可以用来将某些账户移入/移出群组,通过gpasswd来创建群组管理员
# 创建一个新的群组 [root@localhost ~]# groupadd test_group1 # 创建一个群组口令 [root@localhost ~]# gpassed test_group1 -bash: gpassed: command not found [root@localhost ~]# gpasswd test_group1 正在修改 test_group1 组的密码 新密码: 请重新输入新密码: # 将用户doaoao添加为账号管理员 [root@localhost ~]# gpasswd -A doaoao test_group1 [root@localhost ~]# grep test_group1 /etc/group /etc/gshadow /etc/group:test_group1:x:672: /etc/gshadow:test_group1:$6$T0YvW/ossN2$Ngb4jWtookuy9O2sowKw3IXqPnC7rAC9GkskWoAKue5GQg CHHYprlu27RtcSFZdOhxzloPLM0ylaITfxnHpuB1:doaoao:
# 权限
# 利用 ls -l 来查看文件的权限
[root@localhost ~]# ls -l 总用量 1792 -rw-r--r-- 1 root root 61 10月 9 2016 abc.txt -rw-------. 1 root root 1417 1月 21 19:47 anaconda-ks.cfg -rw-r--r--. 1 root root 0 1月 21 15:47 a.txt -rw-r--r--. 1 root root 97 1月 24 10:21 cenros.repo -rw-r--r--. 1 root root 46478 1月 21 19:47 install.log -rw-r--r--. 1 root root 10033 1月 21 19:44 install.log.syslog -rw-r--r--. 1 root root 1722164 11月 4 2014 python-boto-2.32.1-1.el6.centos.noarch.rpm
-rw-r--r--. 1 root root 46478 1月 21 19:47 install.log
第一列:-rw-r--r--
第1个字符为第1组:"-"表示为一个文件,"d"表示为一个目录,"b"表示设备,"p"表示管道文件
第2,3,4字符为第2组:表示文件的属主对文件具有的权限(权限分三类:读r,写w,执行x,rwx表示具有三钟权限 ),用u表示属主对该文件具有全部权限
第5,6,7字符为第3组:表示文件或目录的属主所在的群组中的其它用户具有的权限,用g表示该权限
第8,9,10字符为第4组:表示既不是属主也不是和属主同一组的其它用户的权限用o代表该权限
第二列:"."表示文件是在安全状态下创建的
第三列:"1"表示的为硬链接数
第四列:root表示文件或文档的属主为root
第五列:root表示文件或文档的属组为root
第六列:46478表示文件的大小
第七列:1月 21 19:47表示文件或则文档的创建时间
第八列:install.log表示文件的名称
注:root用户也被称为超超级用户,它完全可以不受限制地访问任何用户的账户和文件及其目录
# 文件权限的修改chmod
[root@bogon ~]# mkdir /test [root@bogon ~]# cd /test/ [root@bogon test]# touch a.txt [root@bogon test]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 1月 10 11:22 a.txt [root@bogon test]# chmod u-rw a.txt # 表示u权限改为 --- [root@bogon test]# ll 总用量 0 ----r--r--. 1 root root 0 1月 10 11:22 a.txt [root@bogon test]# chmod u+rw a.txt # 表示u权限改为 rw- [root@bogon test]# ll 总用量 0 -rw-r--r--. 1 root root 0 1月 10 11:22 a.txt [root@bogon test]# chmod u=rwx a.txt # 表示u权限改为 rwx [root@bogon test]# ll 总用量 0 -rwxr--r--. 1 root root 0 1月 10 11:22 a.txt [root@bogon test]# chmod u=- a.txt # 表示u权限改为 --- [root@bogon test]# ll 总用量 0 ----r--r--. 1 root root 0 1月 10 11:22 a.txt
r:表示read(读)权限---------->4
w:表示write(写)权限--------->2
X:表示execut(执行)权限---->1
+:表示加入权限
-:表示去掉权限
=:表示设定权限
注:
# 对待目录来说 可读权限表示能够浏览该目录下包含的文件,子文件,子目录
# 对目录具有可读可写表示 可以在目录下进行添加文件 重命名文件 删除文件
# 对目录的可执行权限(例如windows中的双击打开文件)(Linux中的cd到该目录下)
chown修改文件或目录属主
# 创建新文件并查看其权限 [root@localhost ~]# chown doaoao test_owner.txt [root@localhost ~]# ls -l -rw-r--r-- 1 root root 0 1月 26 13:50 test_owner.txt # 修改文件的属主为doaoao [root@localhost ~]# chown doaoao test_owner.txt [root@localhost ~]# ls -l -rw-r--r-- 1 doaoao root 0 1月 26 13:50 test_owner.txt
chgrp修改文件或目录的属组
# 查看文件的属组为root [root@localhost ~]# chown doaoao test_owner.txt [root@localhost ~]# ls -l -rw-r--r-- 1 doaoao root 0 1月 26 13:50 test_owner.txt # 查看文件的属组为doaoao [root@localhost ~]# chgrp doaoao test_owner.txt [root@localhost ~]# ls -l -rw-r--r-- 1 doaoao doaoao 0 1月 26 13:50 test_owner.txt
chown同时修改属主和属组
[root@localhost ~]# chown root.root test_owner.txt [root@localhost ~]# ls -l -rw-r--r-- 1 root root 0 1月 26 13:50 test_owner.txt
基础补充:一次性创建多个文件
[root@localhost test]# touch /test/{1..9}.txt [root@localhost test]# ll 总用量 0 -rw-r--r--. 1 root root 0 1月 10 20:36 1.txt -rw-r--r--. 1 root root 0 1月 10 20:36 2.txt -rw-r--r--. 1 root root 0 1月 10 20:36 3.txt -rw-r--r--. 1 root root 0 1月 10 20:36 4.txt -rw-r--r--. 1 root root 0 1月 10 20:36 5.txt -rw-r--r--. 1 root root 0 1月 10 20:36 6.txt -rw-r--r--. 1 root root 0 1月 10 20:36 7.txt -rw-r--r--. 1 root root 0 1月 10 20:36 8.txt -rw-r--r--. 1 root root 0 1月 10 20:36 9.txt ----r--r--. 1 root root 0 1月 10 11:22 a.txt
补充:
centos6.9(Linux系统)安装VMware tools教程:https://jingyan.baidu.com/article/cd4c2979361620756f6e606b.html
待补充...
以上是关于Linux基础_Linux操作系统简介的主要内容,如果未能解决你的问题,请参考以下文章