什么是linux?
定义:
linux是一套免费使用和自由传播的类unix操作系统,支持多用户、多任务、多线程和多CPU。它能运行住主要的UNIX工具软件、应用程序和网络协议,是一个性能稳定的多用户网络操作系统。
优势:
稳定且有效率;
免费(或少许费用);
漏洞少且快速修补;
多任务多用户;
更加安全的用户与文件权限策略;
适合小内核程序的嵌入系统;
相对不耗资源。
Linux的种类:
红帽企业版 Linux : RHEL 是全世界内使用最广泛的 Linux 系统。它具有极强的性能与稳定性是众多生成环境中使用的(收费的)系统。
Fedora:由红帽公司发布的桌面版系统套件,用户可以免费体验到最新的技术或工具,这些技术或工具在成熟后会被加入到 RHEL 系统中,因此Fedora 也成为 RHEL 系统的试验版本。
Centos :通过把 RHEL 系统重新编译并发布给用户免费使用的Linux 系统,具有广泛的使用人群。
Deepin :中国发行,对优秀的开源成品进行集成和配置。
Debian :是一款派生自 Debian 的操作系统,对新款硬件具有极强的兼容能力。 Ubunt 与Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域,。
Shell:
其中Bash是目前最常见的Shell。MacOS中默认Shell就是Bash。
通过执行 echo $SSHELL 命令可以査看到当前正在使用的 Shell 。还可以通过 cat /etc/shells 查看当前系统安装的所有 Shell 种类。
当然Shell还有很多种,主要的Shell有下面这些:
Bourne Shell (sh)
Bourne Again shell (bash)
C shell (esh)
TENEXC Shell (tcsh)
Korn shell (ksh)Z Shell (zsh)
Friendly Interactive Shell (fish)
命令:
- 命令行提示符
进入命令行环境以后,用户会看到 Shell的提示符。提示符往往是一串前缀,最后以一个美元符号$结尾,用户可以在这个符号后面输入各种命令。执行一个简单的命令 pwd:
命令解析:
root: 表示用户名;
iZm5e8dsxce9ufaic7hi3uz: 表示主机名;
~:表示目前所在目录为家目录,其中root 用户的家目录是/root 普通用户的家目录在 /ome下:
#:指示你所具有的权限(root 用户为#,普通用户为$)。
执行whoami命令可以查看当前用户名;
执行hostname命令可以查看当前主机名;
关于如何创建、切换、删除用户,在后面的用户与权限会具体讲解,这里先使用root 用户进行演示。
[备注]root 是超级用户,具备操作系统的一切权限。
快捷方式:
- 通过上下方向键↑↓来调取过往执行过的 Linux 命令;
- 命令或参数仅需输入前几位就可以用 Tab 键补全;
- Ctr+R:用于查找使用过的命令(history 命令用于列出之前使用过的所有命令,然后输入!命令加上编号(!2)就可以直接执行该历史命令)
- Ctr+1:清除屏幕并将当前行移到页面顶部,
- Ctr+C:中止当前正在执行的命令,
- Ctr+U:从光标位置剪切到行首,
- Ctrl+K:从光标位置剪切到行尾;
- Ctrl+w:剪切光标左侧的一个单词,
- Ctrl+Y:粘贴 Ctrl+U |K|Y 剪切的命令;
- Ctr+A:光标跳到命令行的开头;
- Ctrl+E:光标跳到命令行的结尾;
- Ctrl+ D:关闭 Shell 会话;
文件和目录
文件的组织:
/: 跟目录(有且只有一个根目录)
bin: binary 的缩写,表示二进制文件,bin目录包含了会被所有用户使用的可执行程序
boot: 包含与 Linux 启动密切相关的文件
dev: device 的缩写,表示设备,它里面的子目录,每一个对应一个外设,比如我们的光盘驱动器的文件就在这里面
etc: 包含系统的配置文件
home: 用户的私人目录,在这里放置私人的文件,类似windows下的“我的文档”,Linux 中每个用户都在 home 目录下有一个私人目录
lib: library的缩写,表示库,包含被程序所调用的库文件
media: 媒体,可移动的外设(USB 盘,SD 卡)插入电脑时,Linux 可以让我们通过 media 的子目录来访问这些外设中的内容
mnt: mount 的缩写,表示挂载,类似media,一般表示临时挂载一些装置
opt: optional application software package 的缩写,表示可选的应用软件包,用于安装第三方软件和插件
root: 超集用户 root 的家目录
sbin: system binary 的缩写,表示系统二进制文件,包含系统级的重要可执行程序
srv: service 的缩写,表示服务,包含一些网络服务启动之后所需要取用的数据
tmp: temporary 的缩写,表示临时的,
普通用户和程序存放临时文件的地方
usr: Unix Software Resource 的缩写,表示lunix操作系统软件资源,usr 目录是最庞大的目录之一,它安装了大部分用户要调用的程序
var: variable 的缩写,表示动态的,通常包含程序的数据,比如 log 文件
浏览和切换目录
ls
列出文件和目录,它是 Linux 最常用的命令之一
- a显示所有文件和目录包括隐藏的
- I显示详细列表
- h适合人类阅读的
- t按文件最近一次修改时间排序
- i显示文件的 inode ( inode 是文件内容的标识)
- drwxr-xr-x 表示文件权限
- 5 表示链接的数目
- root root 表示文件的所有者 和 文件的所在群组
- 4096 表示文件大小
- 日期 表示文件目录最后一次修改时间
- climb 表示目录或文件名
cd
cd是英语change directory的缩写,表示切换目录。
cd / ------>跳转到根目录
cd ~ ------>跳转到家目录
cd … ------>跳转到上级目录
cd ./home ------>跳转到当前目录的home目录下
cd /home/lion ------>跳转到根目录下的home目录下的lion目录
cd ------>不添加任何参数,也是回到家目录
du
列举目录大小信息。
-h 适合人类阅读的;
-a 同时列举出目录下文件的大小信息;
-s 只显示总计大小,不显示具体信息。
浏览和创建文件
cat
一次性显示文件所有内容,更适合查看小的文件。
less
分页显示文件内容,更适合查看大的文件。
【快捷操作】
空格键: 前进一页(一个屏幕);
b键: 后退一页;
回车键: 前进一行;
y键: 后退一行;
上下键: 回退或前进一行;
d 键: 前进半页;
u键:后退半页;
q键: 停止读取文件,中止 less 命令:
=键: 显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息;
h键: 显示帮助文档;
/键: 进入搜索模式后,按n键跳到一个符合项目,按 N 键跳到上一个符合项目,同时也可以输入正则表达式匹配。
head
显示文件的开头几行(默认是10行)
tail
显示文件的结尾几行(默认是10行)
touch
创建一个文件
mkdir
创建一个目录
文件的复制和移动
cp
拷贝文件和目录
cp file file_copy --> file 是目标文件,file_copy 是拷贝出来的文件
cp file one -->把 file 文件拷贝到 one 目录下,并且文件名依然为 file
cp file one/file_copy -->把 file 文件拷贝到 one 目录下,文件名为file_copy
cp *.txt folder -->把当前目录下所有 txt 文件拷贝到 folder 目录下
mv
移动(重命名)文件或目录,与cp的用法相同
mv file one -->将 file 文件移动到 one 目录下
mv new_folder one -->将 new folder 文件夹移动到one目录下
mv *.txt folder -->把当前目录下所有 txt 文件移动到 folder 目录下
mv file new_file —>file 文件重命名为 new file
rm
删除文件和目录,由于 Linux 下没有回收站,一旦删除非常难恢复,因此需要谨慎操作
rm new file -->删除 new_file 文件
rm f1 f2 f3 -->同时删除 f1 f2 f3 3个文件
- -i 向用户确认是否删除;
- -f 文件强制删除;
- -r 递归删除文件夹,著名的删除操作 rm -rf。
用户权限
用户
Linux 是一个多用户的操作系统。在 Linux 中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫root,是一个很特殊的用户,它是超级用户,拥有最高权限。
自己创建的用户是有限权限的用户,这样大大提高了 Linux 系统的安全性,有效防止误操作或是病毒攻击,但是我们执行的某些命令需要更高权限时可以使用 sudo 命令。
sudo
以root身份运行命令
sudo ls/date -->当然査看日期是不需要sudo的这里只是演示,sudo 完之后一般还需要输入用户密码的
useradd+passwd
useradd添加新用户
passwd修改用户密码
这两个命令需要root用户权限
useradd laowine -->添加一个laowine用户,添加完之后在 /home 路径下可以查看
passwd laowine -->修改laowine用户的密码
userdel
删除用户,需要root权限
userdel laowine -->只会删除用户名,不会从/home中删除对应文件夹
userdel laowine -r -->会同时删除/home下的对应文件夹
su
切换用户,需要root权限
sudo su -->切换为root用户(exit 命令或 CTRL +D 快捷键都可以使普通用户切换为 root 用户)
su laowine -->切换为普通用户
SU - -->切换为root用户
vim
打开vim
在终端命令行中输入 vim 回车后 Vim 就会被运行起来,也可以用 Vim 来打开一个文件,只需要在 vim 后面再加文件名。如 vim file.name ,如果文件不存在,那么会被创建。
插入
进入文件之后,此时处于交互模式,可以通过输入i进入插入模式。
移动
在 vim 的交互模式下,我们可以在文本中移动光标。
h向左移动一个字符
j向下移动一个字符
k向上移动一个字符
i 向右移动一个字符
当然也可以使用四个方向键进行移动,效果是一样的。
跳至行首和行末
行首:在交互模式下,为了将光标定位到一行的开始位置,只需要按下数字键0即可,键盘上的Home 键也有相同效果。
行末:在交互模式下,为了将光标定位到一行的未尾,只需要按下美元符号键S即可,键盘上的End 键也有相同效果。
按单词移动
在交互模式下,按字母键 w可以一个单词一个单词的移动。
退出文件
在交互模式下,按下冒号键:进入命令模式,再按下q键,就可以退出了。如果在退出之前又修改了文件,就直接想用 :q退出 Vim ,那么 Vim 会显示一个红字标明错误信息。此时我们有两个选择:
保存并退出 :wq 或 :x;
不保存且退出 :q!。
标准操作
删除字符
在交互模式下,将光标定位到一个你想要删除的字符上,按下字母键x你会发现这个字符被删除了。也可以一次性删除多个字符,只需要在按x键之前输入数字即可。
删除(剪切)单词,行
删除一行:连按两次d来删除光标所在的那一行。
删除多行:例如先输入数字2,再按下dd,就会删除从光标所在行开始的两行。
删除一个单词:将光标置于一个单词的首字母处,然后按下 dw。
删除多个单词:例如先按数字键2再按 dw 就可以删除两个单词了
从光标所在位置删除至行首: d0。
从光标所在位置删除至行末: ds
复制单词,行
复制行:按两次y会把光标所在行复制到内存中,和 dd 类似, dd 用于“剪切”光标所在行。
复制单词: yw 会复制一个单词。
复制到行末: y$ 是复制从光标所在处到行末的所有字符。
复制到行首: y0 是复制光标所在处到行首的所有字符。
粘贴
如果之前用 dd 或者 yy 剪切复制过来的,可以使用p来粘贴。同样也可以使用 数字+p 来表示复制多次。
替换一个字符
在交互模式下,将光标置于想要替换的字符上。按下r键,接着输入你要替换的字符即可。
撤销操作
如果要撤销最近的修改,只需要按下u键,如果想要撤销最近四次修改,可以按下4,再按下u。
重做
取消撤销,也就是重做之前的修改使用 ctrl +r。
跳转到指定行
Vim 编辑的文件中,每一行都有一个行号,行号从1开始,逐一递增。
行号默认是不显示,如果需要它显示的话,可以进入命令模式,然后输入 set mu ,如果要隐藏行号的话,使用 set nonu 。
跳转到指定行: 数字+gg,例如 7gg ,表示跳转到第7行。
要跳转到最后一行,按下 G。
要跳转到第一行,按下 gg。
高级操作
查找
处于交互模式下,按下/键,那么就进入査找模式,输入你要查找的字符串,然后按下回车。光标就会跳转到文件中下一个查找到的匹配处。如果字符串不存在,那么会显示"patern notfound"。
n 跳转到下一个匹配项,
N 跳转到上一个匹配项。
「注意]用斜杠来进行的查找是从当前光标处开始向文件尾搜索,如果你要从当前光标处开始,向文件头搜索则使用?,当然也可以先按下 gg 跳转到第一行在进行全文搜索。