1 Linux 系统简介
1.1 Ubuntu 和 CentOS 版本介绍
CentOS —— 公司流行版本,Ubuntu —— 流行的桌面版本;CentOS(Community ENTerprise Operating System)是 Linux 发行版之一,Ubuntu 是一个以桌面应用为主的 Linux 操作系统,在于为一般用户提供一个最新的、又相当稳定的主要由自由软件构建而成的操作系统。两者同为目前版本中个人和小团队常用的服务级操作系统,在线提供的软件库中可以很方便的安装到很多开源的软件及库。两个版本都以 bash
作为基础 shell
,所以在很多基础命令上,ubuntu 与 centos 的差别不是很明显,而 ubuntu 在桌面界面上要做的更为出色,很多人如果是从兴趣出发而学习 linux的首选一般都是 ubuntu。
Xfce 终端:Linux 命令行终端,打开后会进入 zsh Shell
环境,可以使用 Linux 命令。
1.2 Ubuntu 和 CentOS 版本对比
主要区别:
- centos 中新建的非 root 用户是没有 sudo 的权限的,如果需要使用 sudo 权限必须在
/etc/sudoers
中加入账户和权限,所以切换到 root 账号的时候只需要输入:su + root账号的密码即可;在 ubuntu 中,一般使用 sudo +命令,如果是第一次使用会提示输入当前用户的密码(而不是 root 的密码,ubuntu 初次使用时 root 密码需要自己另外设置)。 - 在线安装软件中,centos 使用的是
yum
命令,而ubuntu中使用的是apt-get
命令;除此之外yum
中还有一个从软件源中搜索某个软件的方法:yum search software
。 - centos 是来自于 redhat,所以 centos 支持
rpm
格式的安装,而 ubuntu 显然是不支持的。
ubuntu系统:普通用户下输入命令:sudo apt-get install vim-gtk
centos系统: 普通用户下输入命令:yum -y install vim*
- 两者是不同的公司做的不同的发行版,很多配置文件的位置和默认的文件路径都有很大区别,这个需要使用过程中慢慢体会。
细节差别:
- 系统升级
CentOS:升级不频繁,省事省心。
Ubuntu:升级比较频繁,经常需要更新系统。 - 系统稳定性
CentOS:目前CentOS系统更加安全稳定。
Ubuntu:升级包可能会造成系统的不稳定和不安全。 - 使用复杂难度
CentOS:用户量相对较少,没有详细的使用帮助类教程,新用户上手比较难。
Ubuntu:拥有大量的帮助文档和教程,也有庞大的社区论坛,可以方便的获得帮助。
PS:对于想学习Linux知识的话,Ubuntu算是理想的选择。 - 软件管理
CentOS:使用.rmp包,以及使用yum进行软件管理。
Ubuntu:使用.deb包,以及使用apt-get进行软件管理(部分Ubuntu也支持yum)。 - 系统性能方面
这两者的性能都差不多,主要还是取决于美国服务器的硬件配置以及软件系统。
1.3 Ubuntu 与 Windows 对比
ubuntu 和 windows 不同,在 ubuntu 里,一个程序的不同文件是被放在不同的地方的。比如说,主程序文件一般是放在 /usr/bin/
里,配置文件放在 /etc/
里,帮助文档放在 /usr/share/man
里,设置好相应的环境变量后这样安装的软件是很方便使用的。
2 基本操作
2.1 Linux 常用编辑器 —— Gedit/Sublime/Vi
- Gedit 是一个 Linux 环境下的文本编辑器,类似 windows 下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。
- Sublime Text 是一个代码编辑器,具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等;Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API ,Goto 功能,即时项目切换,多选择,多窗口等等;Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac 等操作系统。
- Vi 是
Visual interface
的简称,它在 Linux 上的地位就仿佛 Edit 程序在 DOS 上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。主要有三种工作方式:命令模式、文本输入模式、末行模式。
2.2 Shell常用命令
Shell命令的基本格式如下:
$ command -options [arguments]
1、ls查看目录信息
- 语法:ls [选项] [路径]
- 功能:显示指定工作目录下的内容(列出当前工作目录所包含的文件及子目录)
参数 | 含义 |
---|---|
-a | 显示所有文件及目录(ls将文件名或目录名称开头为“.”的视为隐藏文档) |
-l | 除文件名称外,还将文件形态、权限、拥有者、文件大小等详细信息列出 |
-r | 将文件以相反次序显示 |
-t | 将文件依照建立时间之先后次序列出 |
-A | 同-a,但不列出“.”(当前目录)及“…”(子目录) |
-F | 在列出的文件名称之后添加某符号,如可执行文件名之后则加“*”,目录之后则加“/” |
-R | 递归。若目录下有文件,则其下文件依序列出 |
例如:
$ ls -l ./test/
2、pwd查看当前工作目录
- 语法:pwd [-version] [-help]
- 功能:显示当前工作目录的绝对路径
3、unname查看当前系统信息
- 语法:unname [选项]
- 功能:列出当前系统的内核信息
参数 | 含义 |
---|---|
-r | 列出具体内核版本好 |
-s | 列出内核名称 |
-o | 列出系统信息 |
4、cd切换目录
- 语法:cd [路径]
- 功能:切换到指定路径下
5、cat显示文件内容
- 语法:cat [选项] [文件]
- 功能:显示全部文件内容,如果内容超过一屏,则显示最后一屏内容
参数 | 含义 |
---|---|
-n | 由1开始对所有输出的行数编号 |
-b | 和-n相似,但对于空白行不编号 |
-s | 当遇到有连续两行以上的空白行时,就代换为一行的空白行 |
6、ifconfig显示和配置网络信息
- 语法:ifconfig [interface] 或 ifconfig interface options | address
- 功能:查看或设置网络设备属性
参数 | 含义 |
---|---|
interface | 网络接口名称,如eth0(网卡) |
up | 激活网络设备 |
down | 关闭网络设备 |
add | IP地址,即设置网络设备地址 |
netmask add | 子网掩码 |
例如:
$ ifconfig eth0 192.168.0.25 netmask 255.255.255.0 # 设置网卡eth0的IP地址和子网掩码
2.3 快捷键
1、常用的命令
快捷键 | 作用 |
---|---|
Tab | 补全目录、补全命令参数 |
Ctrl + C | 强行终止当前程序 |
Ctrl + D | 键盘输入结束或退出终端 |
Ctrl + S | 暂停当前程序 |
Ctrl + Z | 将当前程序放到后台运行,恢复到前台为命令 fg |
Ctrl + A | 将光标移至输入行头,相当于 Home 键 |
Ctrl + E | 将光标移至输入行末,相当于End键 |
Ctrl + K | 删除从光标所在位置到行末 |
Alt + Backspace | 向前删除一个单词 |
2、学会利用历史输入命令
使用键盘上的方向上键↑,恢复之前输入过的命令
3、学会使用通配符
通配符是一种特殊语句,主要有星号(*)和问号(?)
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[^list] | 匹配 除 list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9][a-z] |
{string1,string2,…} | 匹配 string1 或 string2 (或更多)其一字符串 |
{c1…c2} | 匹配 c1-c2 中全部字符 如 {1…10} |
4、 学会在命令行中获取帮助
用户可以通过执行 man 命令调用手册页。
3 用户及文件权限管理
1、创建用户
在 Linux 系统里,root 账户(超级管理员)拥有整个系统至高无上的权限,比如新建和添加用户。一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。
sudo adduser userone # 新建一个用户
sudo passwd shiyanlou # 设置用户密码
su - <user> # 可以切换到用户 user
2、用户组
- 使用groups命令
- 查看/etc/group文件
cat /etc/group | sort # cat 命令用于读取指定文件的内容并打印到终端输出, | sort 表示将读取的文本进行一个字典排序再输出
cat /etc/group | grep -E "shiyanlou"
# /etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
group_name:password:GID:user_list
3、删除用户
sudo deluser lilei --remove-home
# 使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录
# 为该用户保留工作目录。删除用户组可以使用 groupdel 命令
4、查看文件权限
Linux ls
(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
sudo usermod -G sudo lilei # 将其他用用户加入sudo用户组
sudo chown shiyanlou 1.txtx # 变更文件所有者
echo "echo \"hello shiyanlou\"" > 1.txt # 文件里面添加内容
chmod 600 iphone11 ls -alh 1.txt # 修改文件权限
5、修改文件权限
修改文件权限
- 方式一:二进制数字表示
rwx——每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,这个顺序是固定的。 - 方式二:加减赋值操作
chmod go-rw iphone11
# g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户),+ 和 - 分别表示增加和去掉相应的权限
参考
- Linux内核官网:https://www.kernel.org/
- Linux基础入门:https://www.lanqiao.cn/courses/1