Linux基础
目录
1、Linux 简介
2、Ubuntu简介
3、文件和目录操作
3.1 基本shell操作
3.1.1 命令解析器
本质:根据命令的名字,调用对应的可执行程序
查看用的shell的类型:echo $SHELL
3.1.2 常用快捷键
- 使用tab键补齐命令/目录等
- 主键盘快捷键
3.1.3 Linux目录结构
重要的目录结构:
- /bin: Linux操作系统下可执行的系统级的二进制命令
- /dev: 设备目录
- /etc: 包含了当前操作系统用户所有配置的相关信息
- /home: 家目录
- /lib: 操作系统使用的库文件已经相关的配置都放在此目录下
- /media: 系统自动挂载目录
- /mnt: 手动挂载的目录
- /root: root用户的家目录
- /usr: unix软件资源包管理目录,存放的是当前用户下的一些东西
3.1.4 用户目录
-
绝对路径和相对路径
-
用户目录
- devin:当前登录用户
- ubuntu:主机名
- ~:用户的家目录(宿主目录)
- $:当前用户为普通用户
- #:超级用户
3.1.5 文件和目录操作
- tree :以树状形式显示当前文件和目录
- ls:查看执行目录下所有的文件和目录信息
- -a 查看隐藏文件
- -l 查看详细信息
- …
- cd :进入指定路径(cd ~ /cd -)
- pwd:显示当前路径
- 创建/删除目录、文件
-
cp:拷贝文件或者目录
-
查看文件内容
-
ln
- 文件和目录属性
- which:查看指定命令所在的路径
3.1.6 文件权限/用户/用户组
3.1.7 查找和检索
3.1.8 软件的安装和卸载
- 在线安装(首选)
- deb包安装
- 源码安装
3.1.9 磁盘管理
- 系统默认挂载目录:/media
- 手动挂载目录:/mnt
- 挂载方式:mount + 设备名 + 挂载目录
- 卸载:unmount 卸载的时候,用户的当前位置一定不能在/mnt(/media)或者及其子目录下,否则无法卸载
3.2 压缩包管理
- 打包
- 压缩
3.3 进程管理
- who:查看当前在线用户的情况
- ps:查看整个系统内部所运行的进程状况(ps -aux)
- kill:用来终止指定的进程
- env:查看当前进程环境变量
- top:查看任务管理器
3.4 网络管理
- ifconfig:获取网络接口信息
- ping:测试与目标主机的连通性
- -c:在发送指定数目的包后停止
- -i:设定间隔几秒发送一个包
- nslookup:产看服务器域名对应的IP地址
3.5 用户管理
-
创建用户
- sudo addusr + 用户名
- sudo useradd -s /bin/bash -g devin -d /home/devin -m devin
- 设置用户组:sudo groupadd devin
- 删除用户:
- sudo delusr + 用户名
- sudo usrdel -r itcast : -r的作用是把用户的主目录一起删除
- 切换用户:su + 用户名
- root用户:sudo su
- 设置密码:sudo passwd + 用户名
-
退出登录用户:exit
4、常用服务器
-
ftp服务器
- 安装ftp服务器 sudo apt-get install vsftpd
- 修改配置文件(/etc/vsftpd.conf)
- 启动进程:sudo service vsftpd restart
- 数据传递
- 出现的问题:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
- 解决方式:在配置文件种添加一行:allow_writeable_chroot=YES
-
tftp服务器
-
nfs服务器
5、vim
vim是一个文本编辑程序,没有菜单,只有命令,且命令繁多
vim有三种模式
- 命令模式
- 插入模式
- 末行模式
5.1 命令模式
5.1.1 移动光标
5.1.2 删除与撤销
5.1.3 复制粘贴
5.1.4 可视模式
5.1.5 查找和替换
5.1.6 文本行移动和Man Page
5.2 插入模式
5.3 末行模式
5.4 分屏操作
6、gcc
gcc是一个编译器,常用的参数如下:
- -v/–version 查看版本号
- -o 产生目标文件
- -I 指定头文件目录
- -D 编译时定义宏
- -On n=0~3,0是没有优化,1是缺省值,3优化级别最高
7、静态库的制作和使用
7.1 静态库的优缺点
- 优点
- 寻址方便,速度快
- 库被打包到可执行程序中,直接发布可执行程序即可使用
- 缺点
- 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大
- 如果静态库改变了,那么程序需要重新编译
7.2 制作和使用静态库
8、动态库的制作和使用
8.1 动态库的优缺点
- 优点
- 共享库的代码是在可执行程序运行的时候才载入内存,在编译的过程中只是简单的引用,因此代码体积小
- 易于更新(动态链接)
- 缺点
- 延时绑定,速度略慢