Linux系统概述和编程基础
一、Linux系统概述
1.1 计算机的体系结构
1.2 Linux系统的概述
- Linux系统诞生于1991年,由林纳斯-托瓦兹(Linus Torvalds)设计与研发
- Linux系统是一套免费,自由,开发源代码的类Unix操作系统,是一个基于Posix(可移植操作系统接口)标准和多用户,多任务,支持多线程的操作系统
- Linux能运行主要的Unix工具软件,应用程序和网络协议,支持32位和64位硬件
1.3 主要发行版本
- Redhat:目前最大的Linux发行商,功能全面并且稳定。
- Ubuntu:目前最好的Linux桌面版,拥有人性化交互界面和强大的软件源支持
- CenetOS:是RHEL的克隆版本,相当于免费版本的Redhat系统
二、CentOS系统安装
2.1Vmware的下载和安装
2.2 CentOS系统的下载安装
三、Linux系统目录结构
3.1 框架结构
3.2 目录详解
目录名称 | 功能介绍 |
---|
/bin | binarie:存放二进制可执行文件 (例如tomcat的bin目录) |
/sbin | super binaries:存放二进制文件,只有root用户才能访问 |
/boot | 系统启动核心目录,存放系统启动程序文件,例:查看启动文件的大小 |
/dev | devices:用于存放硬件设备文件 |
/etc | etcetera:存放系统配置文件(字体文件等) |
/home | 家目录,每一个用户都有一个”家”,用户的起始目录,创建用户跟随创建相应的家目录 |
/lib | library:系统资源文件类库 |
/proc | 内存映射目录,可以查看系统相关硬件的信息 |
/var | variable:可变的,变量. 部署项目用的 |
/tmp | temporary:用来存放临时文件 |
/root | 超级用户root的家目录 |
/user | unix shared resouce: 存放unix共享系统资源,类似于” C:/ Program Files”,用于安装 |
四、常用命令
4.1 Shell的概念
- Shell俗称外壳,是提供用户使用界面的一种软件,叫做命令解析器
- 主要负责接受用户输入的命令,然后调用相应的应用程序,最后向用户输出程序运行结果
4.2 命令的格式
- 命令[-选项] [参数]
- 命令区分大小写,其中选项和参数是可选的,中间采用空格隔开
4.3 常用命令的解析
查看目录文件下文件/目录
命令 | 功能描述 |
---|
ls | list显示文件 |
ls -l 或 ll | list -list显示详细信息 |
ls -a | list -all显示全部(包含隐藏文件)文件 |
ls -al | list -all list显示全部文件的详细信息 |
ls 目录名 | 查看目录下有什么东西 |
目录切换
命令 | 功能描述 |
---|
cd … | 返回上一级目录 |
cd dirname | 进去目录 |
cd 或 cd ~ | 直接回到用户的home目录 |
cd / | 回到系统根目录 |
- 相对路径:从当前目录开始的路径
- 绝对路径:从根目录开始的路径
查看完整路径
查看当前用户
用户切换
命令 | 功能描述 |
---|
su | 普通用户切换到root用户 |
su root | 切换到root用户 |
su 用户名 | 切换到普通用户 |
exit | 退回到切换之前的用户 |
- 最好使用su和exit搭配使用,否则多次使用su指令会导致用户的叠加
管理用户
命令 | 功能描述 |
---|
useradd xxx | 创建用户 |
passwd xxx | 为创建的用户设置密码 |
userdel | 删除用户 |
查看命令的所在目录
命令 | 功能描述 |
---|
which 命令 | 查看指定命令所在的路径信息 |
文件操作
命令 | 功能描述 |
---|
touch fileName | 创建名字为fileName的文件 |
touch dir/fileName | 在dir目录下创建名字为fileName的文件 |
echo 内容 > fileName | 把内容覆盖到fileName文件中,若文件不存在则创建 |
echo 内容 >> fileName | 把内容追加到fileName文件中 |
cat fileName | 打印文件内容到终端 |
more fileName | 分屏查看文件各行内容,不支持回看 |
less fileName | 查看文件各部分内容,支持回看 |
head -n fileName | 查看文件的前n行内容 |
tail -n fileName | 查看文件末尾n行内容 |
wc fileName | 查看文件的行数 |
目录操作
命令 | 功能描述 |
---|
mkdir 目录名 | 创建普通文件夹 |
mkdir -p 目录/目录/目录 | 递归方式创建多级父子文件夹 |
mv dir1 dir2 | 将dir1移动到dir2中 |
mv dir1/dir2 ./ | 将dir1中dir2移动到当前目录下 |
mv dir1 name | 将dir1改名为name(若没有name文件存在则改名,否则移动) |
cp dir1 name | 将dir1拷贝到name(拷贝文件,非目录) |
cp -r dir1 dir2 | 需要设置参数 -r (recursive递归) 无视目录层次(可以拷贝目录) |
rm 文件 | 删除文件 |
rm -r 目录 | 递归删除目录(无视目录层次) |
rm -rf 文件/目录 | -r force(强制) 删除文件/目录 |
查找操作
命令 | 功能描述 |
---|
find / -name passwd[完整名称] | 查找passwd文件 |
find ./ -name “p*” | 查找带”p”的文件(模糊查询) |
find ./ -type f | 查找所有文件 |
grep 内容 fifileName | 从指定文件中查找指定的内容 |
权限管理
命令 | 功能描述 |
---|
chmod 权限 文件/目录名 | 管理指定文件的权限信息,r读:4 w写:2 x执行:1 |
进程管理
命令 | 功能描述 |
---|
ps | 查看当前终端窗口里的进程 |
ps -aux | 查看系统中的所有进程 |
ps -ef | 查看进程列表 |
kill 进程号 | 杀死指定的进程 |
kill -9 进程号 | 强制杀死指定的进程 |
其它命令
命令 | 功能描述 |
---|
ifconfig | 查看当前系统的IP地址等信息 |
tar zcvf 压缩文件名.tar.gz 路径1 路径2 … | 实现一组文件或文件夹的打包 |
tar zxvf 压缩文件名.tar.gz | 实现解压压缩包 |
man [章节号] 命令/函数名 | 查询指定的命令或函数 |
五、vi工具的使用
5.1 基本概念
- vi和vim是Linux系统命令行下的文本编辑器,通常格式为:
vi 文件名
或 vim 文件名
5.2 三种模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BVPHXdlG-1641472568024)(…/…/AppData/Roaming/Typora/typora-user-images/image-20220106195322528.png)]
5.3 使用方式
命令模式的编辑命令
命令 | 功能描述 |
---|
i | 在当前位置之前插入 |
a | 在当前位置之后插入 |
o | 在当前位置下一行插入 |
命令行模式的删除命令
命令 | 功能描述 |
---|
x | 删除一个字符 |
dw | 删除当前词 |
ndw | 删除n个词 |
dd | 删除当前行 |
ndd | 删除n行 |
命令行模式的修改命令
命令 | 功能描述 |
---|
r | 替换一个字符 |
cw | 替换一个单词 |
cc | 替换一行 |
c | 替换从光标至行尾 |
命令行模式的拷贝命令
命令 | 功能描述 |
---|
yw | 拷贝单个词 |
yy | 拷贝行 |
dd | 剪切行 |
p | 当前行下粘贴 |
u | 撤销 |
ctrl+r | 取消撤销 |
底行模式的命令
命令 | 功能描述 |
---|
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:w | 存盘 |
:w newfile | 存成新文件 |
:wq | 存盘退出vi(或zz,或:x) |
:q! | 强行退出不存盘 |
:x,ycoz | 拷贝第x行到y行之间的数据到z行之后 |
:x,ymoz | 移动第x行到y行之间的数据到z行之后 |
:%s /源字符串/目标字符串 | 将每一行的第一个源字符串替换为目标字符串 |
:%s /源字符串/目标字符串/g | 将所有的源字符串替换为目标字符串(g代表全局) |
- 使用vimtutor命令来联系vi命令
- 用户主目录下.vimrc文件可以实现vi的简单设置