Linux系统简介(上)

一、Linux简介
1)命令解释器(shell),它用于用户交互和编写shell脚本
2)Linux发行版本:Ubuntu、CentOS
3)大致学习路径:
3.1. 计算机概览与硬件相关知识
3.2. Linux初级:
3.2.1. Linux系统安装
3.2.2. Linux图形界面使用
3.2.3. Linux常用命令
3.3. Linux中级:
3.3.1. Linux用户和文件系统管理
3.3.2. Linux软件安装配置
3.3.3. 网络管理
3.3.4. Linux系统维护
3.3.5. shell初级编程
3.4. Linux高级:
3.4.1. Linux服务器领域:数据库、防火墙、DNS服务器、LAMP服务器、VPN服务器、Web服务器、Mall服务器、集群服务器、FTP服务器、Samb服务器、NSF服务器,等……
3.4.2. Linux程序开发:shell高级编程、Linux内核基础、Linux驱动开发、Linux C/C++程序开发、嵌入式开发,等……
3.5. Linux内核研究和操作系统开发

二、基本概念及操作
1) x Clinet KDE GNOME 苹果Aqua 其他
x Protocal
x Server x Window服务器
Linux/Unix内核

2)通常在使用Linux时,并不是直接与系统打交道,而是通过一个叫shell的中间程序来完成的。图形界面下Linux还提供了一个叫做终端模拟器的程序(Terminal)。终端本质上是对应着Linux上的 /dev/tty/设备。

3)命令行操作
3.1. 输入:
$touch file #创建一个名为file的文件,touch是一个命令
$cd /etc/ #进入一个目录,cd是一个命令
$pwd #查看当前所在目录
3.2. 输出:
输出会返回你想要的结果,执行失败会告诉你哪里错了,如果成功那么会没有输出

4)重要快捷键:
[Tab]:命令补全
[Ctrl+C]:强行终止当前程序
[Ctrl+d]:键盘输入结束或退出终端
[Ctrl+S]:暂停当前程序,暂停后按下任意键恢复
[Ctrl+z]:将当前程序放到后台运行,恢复到前台命令为fg
[Ctrl+a]:将光标移至输入行头,相当于Home键
[Ctrl+e]:将光标移至输入行尾,相当于End键
[Ctrl+k]:删除从光标所在位置到行末
[Alt+Backspace]:向前删除一个单词
[shift+PgUp]:将终端显示向上滚动
[shift+PgDn]:将终端显示向下滚动

5)通配符:
主要有星号(*)和问号(?),用来对字符串模糊匹配(比如文件名、参数名)
* 匹配0个或多个字符
匹配任一字符
[list] 匹配list中的任意单一字符
[!list] 匹配除list中的任意单一字符意外的字符
[c1-c2] 匹配c1-c2中的任意单一字符,如:[0-9][a-z]
{string1, string2,...| 匹配string1或string2(或更多)其一字符串
{c1...c2} 匹配c1-c2中全部字符,如{1...10}

6)在命令行中获取帮助
可以使用man命令,它是Manual pages的缩写

三、用户及文件权限管理
1)由于Linux的用户管理和权限机制,不同用户不可以轻易地查看、修改彼此的文件。
2)查看用户:
$who am i / who mom likes
显示:shiyanlou pts/0 2018-03-21 14:24(:1.0)
      当前登陆用户名    伪终端/伪终端号   伪终端启动时间

注:伪终端是相对于[ctrl]+[alt]+[F1-F7]进行切换的/dev/tty 7个"真终端"设备而言,伪终端就是当你在图形用户界面使用/dev/tty7时每打开一个终端就会产生一个伪终端,pts/0后面那个数字就表示打开的伪终端序号。

2.1. $who am i
2.2. $who -a 打印能打印的全部
 -d 打印死掉的进程
 -m 同am i,mom likes
 -q 打印当前登陆用户数及用户名
 -u 打印当前登陆的用户信息
 -r 打印运行等级

3)创建用户
3.1. root账户拥有整个系统最高的权力,Linux和UNIX系统中的超级管理员账户。创建用户需要root权限,这里要用到sudo命令。
3.2. su,su- 与 sudo:
su <user> 可以切换到用户user,执行时需要输入目标用户的密码
sudo<cmd> 可以以特权级别运行cmd命令,需要当前用户属于sudo组
su-<user> 命令切换用户,同时环境变量也会跟着改变成目标用户的环境变量

创建用户: sudo adduser zhaocen 注:Linux下密码输入是不显示任何内容的
切换登陆用户: su -l zhaocen
退出当前用户:exit / CTRL+d

4)用户组
4.1. 查询用户组: groups shiyanlou
        #显示/home下有几个账户
$ls /home   
显示:shiyanlou:shiyanlou
用户:所属的用户组

4.2. 查看/etc/group文件
$cat /etc/group | sort
cat命令用于读取指定文件的内容并打印到终端输出
| sort 表示将读取的文本进行一个字典排序输出
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户一条记录。格式如下:
group_name:password:GID:user_list

4.3. 使用usermod命令可以为用户添加用户组
$sudo usermod -G sudo zhaoc

4.4. 删除用户
$sudo deluser zhaoc --remove-home

5)查看文件权限
$ls -l
显示:drwxrwxr-x 2 shiyanlou shiyanlou 4096 Aug 17 2016 Code
其中:
drwxr-xr-r:
d:表示文件类型 'd'目录/ 'I'软连接 / 'b'块设备 / 'c'字符设备 / 's' socket / 'p'管道 / '_'普通文件
rwx:所有者权限,'r'表示允许读权限、'w'表示允许写权限、'x'表示允许执行权限
r-x:所属用户组权限
r-x:其他用户组权限

2:链接数
shiyanlou:所有者
shiyanlou:所属用户组
4096:文件大小
Aug 17 2016:最后修改日期
Code:文件名

5.1. 文件类型
Linux里面一切皆文件,正因为这一点才有了设备文件(/dev目录下有各种设备文件,大多跟具体的硬件设备有关)
5.2. 文件权限
读权限(可以使用cat <file name>之类的命令来读取某个文件内容);写权限(表示可以编辑和修改某个文件);执行权限(指可以运行二进制程序文件或者脚本文件)
*一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件。
5.3. 链接数
链接到该文件所在的inode结点的文件名数目
5.4. 文件大小
以inode结点大小为单位来表示的文件大小,可以用ls -lh参数查询
5.5. ls命令显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件
ls -A:显示所有文件(含隐藏文件)
ls -AL:查看目录的完整属性
ls -dl<目录名>:显示所有文件大小
ls -AsSh:小s为显示文件大小,大S为按文件大小排序

6)变更文件所有者
6.1. 新建一个文件,命名‘iPhone6’
$ touch iphone6   (lilei创建)
$ cd /home/lilei (已切换为root用户‘shiyanlou’)
显示:shiyanlou:lilei/$
$ ls iphone6
$ sudo chown shiyanlou iphone6 (文件所有者从lilei修改为shiyanlou)

7)修改文件权限
7.1. 二进制数字表示
    r w x -->  2 1 0 --> 1*2*2 + 1*2*1 + 1*2*0 = 7
每个文件的三组权限(拥有者、所属用户组、其它用户,这个顺序是一定的)
对应一个‘rwx’,也就是一个‘7’

$ echo "echo \"hello shiyanlou\"" > iphone6
$ chmod 700 iphone6 #修改权限
修改前:-rw-rw-r-- | shiyanlou shiyanlou 0 Mar 22 12:43 iphone6
修改后:-rwx------ | shiyanlou shiyanlou 23 Mar 22 12:46 iphone6

7.2. 加减赋值操作
$ chmod go-rw iphone6
g、o、还有 u 分别表示group、other 和 user, + 和 - 分别表示增加和去掉相应的权限

猜你喜欢

转载自blog.csdn.net/zhaocen_1230/article/details/80687498