1.关机命令:sudo shutdown -h now
2.查看版本:cat /proc/version
查看硬件芯片(主板):cat /proc/cpuinfo //BCM2708
3.设置root密码:
sudo passwd root 然后输入两次想设置的密码即可。
4.用户切换:
其它用户 => root用户:su 或 sudo su
root用户 => 其他用户:su pi 或 exit #pi是一个用户名。
5.用户归属于用户组 //详见《鸟哥的linux私房菜》第六、十四章
树莓派在操作串口ttyAMA0时提示没有权限,Cannot open /dev/ttyAMA0: Permission denied,
于是查看ttyAMA0隶属的组:ls -l /dev/ttyAMA0 //发现隶属于tty组
输出:crw-rw---- 1 root tty 204, 64 Jul 1 17:58 /dev/ttyAMA0
查看用户(如pi)隶属的组别:groups pi //查看pi用户所在的组,以及组内成员发现没有tty组。
(注:通过文件/etc/group可以查看所有组及pi隶属的组,命令:sudu nano /etc/group)
输出:pi : pi adm dialout cdrom sudo audio 所在组|组内成员 video plugdev games users netdev input spi gpio
用户pi没有隶属于tty组别,所以不能操作ttyAMA0串口,应将pi用户加入tty组:sudo gpasswd --add pi tty
然后groups pi //可以看到多了tty
输出:pi : pi adm tty dialout cdrom sudo audio 所在组|组内成员 video plugdev games users netdev input spi gpio
logout退出系统(注销),login登陆。
小结:查看串口驱动:cat /proc/tty/drivers/serial
查看串口设备:dmesg | grep ttyS*
groups pi 查看pi用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组及当前用户隶属于哪些组
/etc/shadow和/etc/passwd系统存在的所有用户名
解说:/etc/group文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去。
Linux下每个文件都有用户和群组权限。你可以在终端运行ls -l 命令来查看完整的权限和属性。
例:pi@raspberrypi:~/raspi_project$ ls -al raspi_ks103.py
输出:-rwxrwxrwx 1 pi pi 983 Jul 18 21:09 raspi_ks103.py
6. 改变/usr/local目录的权限:(-R是对所有子目录都有效)
chomd 777 -R /usr/local
7. 文件节点号查询:
ln -i
8. 查看linux操作历史记录
查看用户的登录记录:last
shell$ history或vi ~/.bash_history //(以.号开头的文件是隐藏文件)
常用日志文件如下:
9.使用find命令在系统中搜索文件,使用grep在文件中搜索字符串。
grep查找命令:grep EXIT_*.h
find命令:find /目录 -name 'ab*.*'
10.获取帮助信息
man gcc
man ls
info gcc
info ls
11.进入家目录:
cd ~
进入其它家目录:
cd ~家用户名
12. /proc文件系统:应用程序通过读写proc文件系统获得设备驱动信息或者设置设备驱动参数。
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/version
cat /proc/net/sockstat
cat /proc/sys/fs/file-max =>76593
echo 80000 >/proc/sys/fs/file-max
cat /proc/sys/fs/file-max =>80000
13.当前运行进程列表:
每个进程都有唯一的标识符:1-32000之间的数字。ps命令给出当前正在运行进程的列表:ps -a
16.Linux系统
配置文件:/etc
设备文件:/dev
/dev/console:系统控制台设备
/dev/tty:控制终端
/dev/null:空设备
17.如果想知道标准输出是否被重定向了,只需检查底层文件描述符是否关联到一个终端即可。系统调用isatty就是用来完成这一任务的。只要将文件描述符传递给他,他就可判断出该描述符是否连接到一个终端。
#include <unistd.h>
int isatty(int fd);
如果打开的文件描述符fd连接到一个终端,则系统调用isatty返回1,否则返回0.
18.linux的source命令:
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
注意:source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。
19.如何清除ubuntu系统中的软件包
如果你频繁的在你的系统中安装/卸载,那么不时的清理一下你的系统是十分必要的。
sudo apt-get autoremove
20.从datached HEAD 状态恢复回来
git checkout master