参考博客:https://blog.youkuaiyun.com/qq_39717374/article/details/81119320 部分进行修改
第一讲初识SLAM
一、Linux的熟悉
1.如何在 Ubuntu 中安装软件(命令⾏界⾯)?它们通常被安装在什么地⽅?
1)apt-get 方式的安装;
普通安装:sudo apt-get install XXX
修复安装:sudo apt-get -f install XXX
重新安装:sudo apt-get -f reinstall XXX
2)dpkg方式的安装
sudo dpkg -i package_name.deb
安装的地方
通常被安装在/usr/bin这个目录下,也有可能安装在opt目录下
2. linux 的环境变量是什么?我如何定义新的环境变量?
环境变量:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息;(个人理解就是系统中全局变量的意思,只是不同组的权限差别)
对所有用户生效的永久性变量(系统级):
这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。
设置方式: 用vim在/etc/profile文件中添加我们想要的环境变量,用export指令添加环境变量
当然,这个文件只有在root(超级用户)下才能修改。我们可以在etc目录下使用ls -l查看这个文件的用户及权限
【注意】:添加完成后新的环境变量不会立即生效,除非你调用source /etc/profile 该文件才会生效。否则只能在下次重进此用户时才能生效。
对单一用户生效的永久性变量(用户级):
只针对当前用户,和上面的一样,只不过不需要在etc下面进行添加,直接在.bash_profile文件最下面用export添加就好了。
这里 .bashrc和.bash_profile原则上来说设置此类环境变量时在这两个文件任意一个里面添加都是可以的。
~/.bash_profile是交互式login方式进入bash shell运行。
~/ .bashrc是交互式non-login方式进入bash shell运行。
二者设置大致相同。
就是.bash_profile文件只会在用户登录的时候读取一次
而.bashrc在每次打开终端进行一次新的会话时都会读取。
临时有效的环境变量(只对当前shell有效):
此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。 直接使用export指令添加。
修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell
vi /etc/profile
在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"
修改bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .bashrc文件就可以了。
vi ~/.bashrc
在下面添加:
Export PATH="$PATH:/NEW_PATH"
Ubuntu Linux系统环境变量配置文件:
/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
~/.profile : 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
3. linux 根⽬录下⾯的⽬录结构是什么样的?⾄少说出 3 个⽬录的⽤途。
1. / - 根目录:
每一个文件和目录都从这里开始。
只有root用户具有该目录下的写权限。此目录和/root目录不同,/root目录是root用户的主目录。
2. /bin - 用户二进制文件:
包含二进制可执行文件。
系统的所有用户使用的命令都设在这里,例如:ps,ls,ping,grep,cp等。
3. /sbin - 系统二进制文件:
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令。
4. /etc - 配置文件:
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
5. /dev - 设备文件:
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
6. /proc - 进程信息
包含系统进程的相关信息。
这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。
这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
7. /var - 变量文件
var代表变量文件。
这个目录下可以找到内容可能增长的文件。
这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
8. /tmp - 临时文件
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。
9. /usr - 用户程序
包含二进制文件、库文件、文档和二级程序的源代码。
/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
10. /home - HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita
11. /boot - 引导加载程序文件
包含引导加载程序相关的文件。
内核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
12. /lib - 系统库
包含支持位于/bin和/sbin下的二进制文件的库文件.
库文件名为 ld*或lib*.so.*
例如:ld-2.11.1.so,libncurses.so.5.7
13. /opt - 可选的附加应用程序
opt代表opitional;
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。
14. /mnt - 挂载目录
临时安装目录,系统管理员可以挂载文件系统。
15. /media - 可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
16. /srv - 服务数据
srv代表服务。
包含服务器特定服务相关的数据。
例如,/srv/cvs包含cvs相关的数据。
4. 假设我要给 a.sh 加上可执⾏权限,该输⼊什么命令?
chmod abd filename
chmod 777 a.sh
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
5. 假设我要将 a.sh ⽂件的所有者改成 xiang:xiang,该输⼊什么命令?
chown [-R] 账号名 文件/目录
chown [-R] xiang:xiang a.sh