Linux基础及Shell指令
Linux基本认知
一.linux和windows的区别
- 交互方式
Windows 图形界面 交互
Linux 指令交互 主要用命令的形式进行操作, 简单高效,适合开发,免费开源。 - 文件结构
Windows 目录从属分区
Linux 分区从属于目录 - 解析gec@ubuntu:~$
gec当前用户
@ 分隔符
ubuntu 所使用的系统内核名,特点是界面非常友好,容易上手,对硬件的支持非常全面,
是最适合做桌面系统的Linux发行版本。
: 分割符,用于区分$ 之间的内容
~ 表示当前的工作路径 ,“ ~ ”表示家目录,“ / ”表示根目录
$ 用户权限标识符 :普通用户
#用户权限标识符 : 代表超级用户身份(管理员身份)
Shell基本操作指令
ls 显示当前文件夹下的内容
gec@ubuntu:~$ ls
Desktop Download examples.desktop
gec@ubuntu:~$
ls -l 查看所在目录下的所有文件详细信息
drwxr-xr-x 2 gec gec 4096 Dec 10 2017 Desktop
d 文件属性
rwx 代表的是文件权限 创建者 创建组 其他用户
gec 代表创捷者 第二个gec 代表创建组
4096 文件大小
Dec 创建时间 月份
10 代表创建日期
2017 年份
Desktop 文件夹名字
ls -a 查看隐藏文件
ls -l 普通文件 文件名 查看指定的文件
cd 切换路径
cd 路径名
~ 家目录
/ 根目录
- 返回上一次所在目录 并且打印当前所在目录路径
.. 返回上一级目录
绝对路径 从根目录写起 /mnt/hgfs/linux/ 最左边一个/代表的是根目录。其余的叫做分割符
相对路径 从当前路径写起 只要不是从根目录下开始写的路径叫做相对路径 例如 cd Videos。
touch 新建普通文件
touch 文件名
示例命令输入:gec@ubuntu:~$ touch 1.txt
mkdir 创建目录(等同于Win的文件夹)
示例命令输入:gec@ubuntu:~$ mkdir 123
cp 复制文件/文件夹
cp 目标文件名 目标路径
示例命令输入:gec@ubuntu:~$ cp 1.txt 123
cp 文件夹名 目标路径 -rf
mv 剪切文件 / 重命名
功能1:剪切文件
mv 目标文件 目标路径
功能2:重命名
mv 原文件名 新文件名
具体是剪切 还是重命名是需要根据第2个参数来决定的。
如果说第二个参数是路径。那么它就是剪切
如果说第二个参数是文件名,则是重命名.
cat + 普通文件名
显示普通文件内的内容
pwd 打印当前所在路径
clear 清屏
rm 删除文件
rm 文件名
删除目录:
方法一 : rmdir + 目录名
方法二 : rm 目录名 -rf
sudo 临时获取超级权限(管理员身份)
gec@ubuntu:/$ touch 2.txt
touch: cannot touch `2.txt': Permission denied 权限不够
sudo touch 2.txt
示例命令输入:gec@ubuntu:/$ sudo touch 2.txt
[sudo] password for gec: 输入密码 123456 密码不回显
一般在根目录下操作,才会需要获取临时超级权限
管理员身份与普通用户切换
输入指令 : sudo su
输入隐形密码 :123456
退出管理员身份
指令 : exit
sudo apt-get update 更新ubuntu的库
共享目录设置
windows可以访问 linux也可以访问点击
-
共享目录的设置
1).先在windows下新建一个目录(文件夹)
2).打开虚拟机–>点击 虚拟机按钮 -->点设置—选项—>点击 共享文件夹—>
右侧 选总是启用–> 添加刚才新建的文件夹 -
共享目录的访问
windows 打开图标
linux 指令进入
cd /mnt/hgfs
gec@ubuntu:~/LOL$ cd /mnt/hgfs 为共享目录的固定挂载路径
gec@ubuntu:/mnt/hgfs$ ls 查看共享目录是否创建成功
share
gec@ubuntu:/mnt/hgfs$ cd share 进入到共享目录
gec@ubuntu:/mnt/hgfs/share$ ls 查看共享目录
g++编译器
在使用g++ 对C++语言程序进行编译时,可细分为四个阶段:
预处理(Pre-processing)、编译(Compiling)、汇编(Assembling)、链接(Linking)
-
用test.cpp为例说明:
1)预处理: g++ -E test.cpp -o test.i 对预编译指令都做相应的处理 展开头文件 处理宏定义…
2)编译: g++ -S test.i -o test.s 编译成汇编指令代码 生成汇编代码
3)汇编: g++ -c test.s -o test.o 将汇编指令代码转化为目标文件 转化为机器语言
4)链接: g++ test.o -o test 将目标文件与库文件(静态库或动态库)链接得到可执行文件。 -
概念:把cpp源程序 转换 成机器可以识别 可执行二进制程序,linux 使用g++ 编译指令
-
编译方法:g++ cpp程序名(我们的.cpp源文件) -o 生成的可执行程序名(程序名可自定义)
-
编译示例:gec@ubuntu:/mnt/hgfs/share$ g++ demo.cpp -o demo
运行程序
./demo
#include <iostream>
int main()
{
std::cout << "hello wrold" << std::endl;
return 0;
}