Linux入门
基本指令
显示文件
ls -al [path] # -a显示隐藏文件,-l输出详细信息,-a等同于--all
显示当前工作目录
pwd (print working directory)
目录结构
- bin —— binary 二进制可执行文件目录
- boot 存放用于启动Linux的核心文件
- dev —— device 设备文件目录
- etc —— etcetera 存放系统的管理文件和配置文件
- home 存放普通用户的文件目录
- lib —— library 存放各种编程语言的共享库
- lost+found 系统崩溃或以外关机产生的文件碎片
- mnt —— mount 临时挂载文件系统的默认挂载点
- opt —— optional 存放额外安装的软件
- proc —— process 虚拟目录,系统内存中的进程以文件形式体现
- root root用户文件目录
- sbin —— super user library 存放超级用户使用的二进制可执行文件
- tmp —— temporary 存放临时文件
- usr —— unix system resources 存放应用程序和文件的目录
- var —— variable 存放经常变化的文件
其他一些常用目录
- /usr/bin 安装软件的二进制可执行文件目录
- /usr/include 系统头文件的目录
- /usr/local 存放管理员自行安装的软件
- /usr/sbin 超级用户使用的二进制可执行的目录
- /usr/src 源代码存放目录
- /etc/passwd 保存系统中的用户
- /etc/group 保存系统中的用户组
/usr/local和/usr内部结构非常相似,区别在于前者是管理员用户自行维护的,后者是Linux发行版的软件包管理器自行维护
Shell和终端
1. shell
shell是包装在系统内核之外的壳,用于解释用户输入的命令,加以执行。
echo $SHELL # 可以查看当前使用的shell程序
2. 终端
终端用于用户向计算机输入信息,以及处理结果的返回
使用终端方式访问计算机可以实现多用户、多任务工作,因为每个终端都有显示屏和输入设备
Linux系统提供6个虚拟控制台终端,分别是tty1,tty2,…,tty6。其中tty1是开机后自动进入的,桌面操作系统将显示桌面环境,其他终端依然是字符界面。桌面环境下,Ctrl+Alt+F2~F6可以切换到其它终端。非桌面环境下,使用Alt+F1回到桌面环境。
3. 其他命令和操作
- 清屏 clear可以清除屏幕
- 自动补全路径 Tab
- 历史记录 history
- 使用变量 $HOME,$HOSTNAME等,也可自定义$hello=“Hello World”
- 使用反引号 反引号`中的命令会优先执行,然后将执行结果赋值给原命令继续使用
- 字符串转义问题 若参数值包括特殊字符时,可利用双引号或单引号包裹。双引号会自动解析字符串(读取变量值、执行命令等),单引号则会原样输出。若双引号定界符中出现特殊字符时,可在前加一个\转义
- 退出终端 exit命令
4. 运行级别
运行级别是指当前操作系统正在运行的功能级别,0~6表示7个级别,每个级别有不同的功能。这些级别定义在/etc/inittab文件中,每个级别运行的服务存放在/etc/rc.d目录中。
0 系统停机模式
1 单用户模式 类似Windows的安全模式,只用于root用户维护系统
2 多用户模式 没有NFS支持
3 多用户模式 有NFS支持,登录后进入控制台
4 未使用模式 系统未使用的保留模式
5 图形化模式 登陆后进入桌面环境
6 重启模式
su root # 切换至root用户
init 3 # 切换至控制台模式
init 5 # 切换至桌面模式
init 0 # 关机,poweroff
init 6 # 重启,reboot
文件管理
1. 文件、路径创建
- touch filename 更新已存在文件的时间属性,不存在则创建新文件
- echo Hello World > hello.txt 创建文件并写入内容(已存在则覆盖),>>表示追加
- mkdir [-p] path 创建目录,-p可以创建路径中不存在的目录,若省略,则上级目录必须存在
2. 文件查看与搜索
- cat命令用于将文件内容全部读取并显示出来
- less命令可以在打开文件之后随意浏览、翻页,q退出
- find命令可以根据搜索条件到指定路径下搜索文件,支持递归搜索子目录
find path [options] keyword
options包括-name、-size、-user,分别用于根据文件名、文件大小、文件所有者查找
find /bin -name "bas*"
3. 文件修改
mv 源文件或目录 目标文件或目录
- 源存在、目标不存在时,执行重命名
- 目标为一个存在的目录时,执行移动
- 源文件和目标文件不在同一个目录,目标文件不存在,执行移动并重命名
4. 文件删除
rm 无选项只能删除文件,-r可以递归删除指定目录,-f强制执行操作
vi编辑器
vi 文件名后进入命令模式,按i进入编辑,Esc返回命令模式。退出时按:进入底行模式,可输入命令并执行。
1. 命令模式
光标移动
- 字符级 左键/h,右键/l
- 行级 上键/k,下键/j,$(移动到行尾),0(移动到行首)
- 单词级 w(移动到下一个单词首字母),e(移动到本单词的尾字母),b(自动到本单词的首字母)
- 段落级 }(移动到段落开头),{(移动到段落结尾)
- 屏幕级 H(移动到屏幕首部),L(移动到屏幕尾部)
- 文档级 G(移动到文档尾行),nG(移动到文档的第n行)
删除
- x 删除光标所在的单个字符
- dd 删除光标所在的当前行
- ndd 删除包括光标所在行的后n行内容
- d$ 删除光标位置到行尾的所有内容
复制粘贴
- yy 复制光标所在当前行
- nyy 复制包括光标所在行的后n行内容
- ye 从光标所在位置开始复制到当前单词的结尾
- y$ 从光标所在位置开始复制到当前行的结尾
- y{ 从光标所在位置开始复制到当前段落开始的位置
- P 将复制的内容粘贴到光标所在位置
其它
- u 撤销命令
- . 重复上一次命令
- J 合并两行内容
- r字符 快速替换光标所在字符
2. 模式切换
命令模式进入插入模式
- i 进入插入模式
- a 进入插入模式,同时光标后移一位
- A 进入插入模式,同时光标移动到行末
- I 进入插入模式,同时光标移动到行首
- s 进入插入模式,同时删除光标所在字符
- S 进入插入模式,同时删除光标所在行
- o 进入插入模式,同时在当前行之下新增一行
- O 进入插入模式,同时在当前行之上新增一行
命令模式进入底行模式
- :或/ 进入底行模式,退出可删除底行文字或按Esc
3. 底行模式
- :set number/nu 显示行号
- :set nonumber/nonu 取消行号显示
- :n 光标跳转到第n行
- :/xx或/xx 查找xx内容,若查找结果不为空,按n向下查找,N向上查找
- : s/被替换内容/替换内容/ 替换光标所在行的第一个目标
- : s/被替换内容/替换内容/g 替换光标所在行的全部目标
- :%s/被替换内容/替换内容/g 替换整个文档中的全部目标
- :%s/被替换内容/替换内容/gc 替换整个文档中的全部目标,每替换一个都有提示
- :q 退出编辑器,改动文件不允许退出
- :q! 强制退出不保存文件
- :w 保存编辑后的文件
- :wq 保存文件并退出