Simple Linux Tutorial - DDLdancer/OneWho_Wiki GitHub Wiki

1. 远程登陆

首先根据自己当前电脑的平台我们要选择打开对应终端, 省略...
成功打开终端之后,我们就可以输入命令了.
使用ssh 命令的基本语法为(在自己的笔记本上执行)
ssh username@server
其中username 是自己在目的主机的用户名,server 是IP 地址或域名.
例如在我们自己的onewho内网, 要登陆ip地址为192.168.1.101的树莓派, 登录用户ubuntu, 可以使用命令:
ssh [email protected]

第一次登录系统会警告你是否将远程主机添加到known hosts 列表,输入yes 确认。
之后就是输入密码的区域了,输入自己的密码,然后按Enter 键继续。注意:输入密码的时候屏幕上不会提示任何东西,好像卡住了一样。这实际是安全保护措施,即输入密码时看不到反馈。用户只需要正常输入即可。如果输入错误,建议长时间按住Backspace删掉再重新输入。

如果是第一次登录,服务器会要求你改掉初始的密码,此时按照提示进行操作即可。注意输入密码的顺序为:当前密码-> 新密码-> 重复新密码。即第一个输入的密码是当前的旧密码。

login
到这里就已经成功登录了

2. 基础工具

directory command

ls
ls -a
ls -l
cd
pwd #present working directory
touch #创建文件
mkdir #创建目录
rm #remove删除
cp #copy
mv #move移动

工具:

man #官方文档,适合查找
tldr #too long don't read
echo 
cat #打印文件内容
less #大堆输出看着干净
sudo #核武器
sudo su
ubuntu@ubuntu:~$ echo hello > hello.txt
ubuntu@ubuntu:~$ cat hello.txt
hello
ubuntu@ubuntu:~$ cat < hello.txt
hello
ubuntu@ubuntu:~$ cat < hello.txt > hello2.txt
ubuntu@ubuntu:~$ cat hello2.txt
hello

ls -al | grep rc

• TAB:命令补全,Shell 会根据可用的命令或文件路径自动将其补全。如果候选不唯一时,再按一下TAB 会显示所有的可能补全方式。
• Ctrl+C:向当前正在程序发送中断信号,迫使程序停止
• Ctrl+W:删除光标前一个单词。还在不停按Backspace 吗?试试Ctrl+W 吧。
• Ctrl+D:向命令行输入终止符EOF,有时候我们也用^D 来表示终止符。
• Ctrl+A:将光标移动到行首。
• Ctrl+E:将光标移动到行尾。
• Alt+F:将光标向右移动一个单词。
• Alt+B:将光标向左移动一个单词。
• 方向键的上和下/Ctrl-n & Ctrl-p:查看命令历史的前一个/后一个指令。
• Ctrl+R:逆向查找历史执行过的命令。非常常用。

3. 文件系统

Linux 系统的目录结构和Windows 有很大区别。在Windows 中我们经常说“C 盘,D盘”,但在Linux 中没有相关的概念。所有的目录都是从根目录/ 衍生出来的。在Linux 下不同硬盘分区以挂载点的形式存在于目录结构中。在本节我们需要了解Linux 的目录结构是如何组织的。
• /bin:供所有用户使用的完成基本任务(在单人维护模式下还能够被操作的指令)的可执行文件,如bash, mv, cp, touch, more, chmod, ls, which。注意,在某些系统(如CentOS 7)中已经不提供单独的/bin;
• /boot:启动Linux 时使用的一些核心文件。如操作系统内核、引导程序Grub 等;
• /dev:所有系统设备文件,从此目录可以访问各种系统设备;
• /etc:系统和应用软件的全局配置文件,如passwd, shadow, hosts, timezone;
• /home:普通用户的家目录所在的位置;
• /lib:系统必需动态链接共享库文件和内核模块,注意,在某些系统(如CentOS 7)中已经不提供单独的lib;
• /lib64:64 位系统动态链接共享库文件;
• /lost+found:几乎每个分区都有,储存发生意外后丢失的文件,只有root 用户才能打开;
• /media:可移动设备的挂载点,如光盘,u 盘;
• /mnt:空,可以作为外挂设备的挂接点;
• /opt:一些第三方软件的安装位置;
• /proc:存在于内存中的虚拟文件系统,保存内核和进程以及处理器等状态信息;
• /root:超级用户的家目录
• /run:系统开机后所产生的各项信息放置到/var/run 目录下,新版的FHS 则规范到/run 下面;
• /sbin:供超级用户用的可执行程序,如reboot, shutdown, ifconfig;
• /tmp:创建临时文件或目录(系统一般会定期清理);
• /usr:UNIX System Resources,不是USER 的缩写。静态的用户级应用程序数据;
– /usr/bin/:供一般用户用的非必需的可执行程序;
– /usr/games/:与游戏比较相关的数据放置处;
– /usr/include/:存放编写程序需要的头文件的目录;
– /usr/lib/:系统的非必需的库文件;
– /usr/local/:空,安装本地程序的默认路径
– /usr/sbin/:供超级用户用的非必需的可执行程序;
– /usr/share/:放置只读架构的数据文件,包括共享文件,程序帮助文档,模板,程序图标等;
– /usr/src/:内核和软件的源代码的位置;
• /var:动态的应用程序数据;
– /var/cache:应用程序的缓存文件;
– /var/lib:应用程序的信息、数据,如数据库的数据等都存放在此文件夹;
– /var/local:/usr/local 中程序的信息、数据;
– /var/lock:锁定文件,许多程序遵循在/var/lock 中产生一个锁定文件的约定,以用来支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文件;
– /var/log:系统日志文件,如登录文件,一般来讲有些日志只能管理员查询,另一些日志是公开的;
– /var/opt:/opt 中程序的信息、数据;
– /var/run:正在执行着的程序的信息,如PID 文件应存放于此;
– /var/tmp:临时文件(不会被系统定期清理);

4. 环境变量

shell中用于储存系统与当前运行信息
env 查看变量

重要变量:
USER
HOME
PWD
ROS相关
以及最重要的PATH
系统是如何找到可执行文件的?
echo $PATH可查看
这个变量中不同的路径以: 分隔,且处于前面的路径优先级较高。当系统遍历完该变量中的路径后,若还找不到该程序,就会提示“Command not found”了。
多数情况下,我们编译的程序都在当前目录下,而这些目录一般都不在环境变量PATH中。对于这种情况,我们还是可以使用绝对路径或相对路径来指定程序名,这样的话系统就直接按照指定的路径去寻找你的程序了。例如执行当前目录下的程序hello 可以输入
./ hello

which工具

5. bashrc

那么环境变量怎么设呢?
example:自己写个python程序
export
source

6. 编译运行 or apt-get

C:源码文件->二进制文件
python: 源码文件+python程序直接执行
实例:

  1. librealsense的编译与安装
  2. ros包的安装

7. 工具

tmux #多开窗口以及防断开
fzf #文件查找工具以及C-r最佳替代
top #CPU,内存查看与管理

scp #与本机传输文件,在本机执行