最近用树莓派搭建了NAS存储系统,用到了一些linux命令,这里做一些记录。

0.获取root权限

第一次获取时,要先设置密码,命令如下:

sudo passwd

然后输入两遍设置的密码,然后再输入

su root

然后输入设置的密码,即可获取root权限。

若是单次命令获取root权限,只要在命令前加上sudo即可。

1.文件操作

1.1 文件的建立

sudo touch filename

用来创建文件,然后可以用命令:

sudo stat filename

查看文件的状态,包括修改时间等等。

1.2 目录建立

sudo mkdir directory

用来建立名为directory的目录

sudo mkdir -p test/redcat/linux

-p表示多级目录的创建,这样可以进行多级目录的创建。

1.3 文件删除

sudo rm filename

删除该文件。

sudo rm -f test

-f为强行删除文件。

sudo rm -r directory

-r表示递归删除所有内容,即包括该文件夹下的所有文件。

sudo rm -r -f dir
sudo rm -rf dir

强制删除该目录和目录下所有文件,且不再提示。

1.4文件复制

sudo cp sourcefile objectfile
sudo 源文件1 源文件2 目的地目录

将一个或者两个源文件复制到目标文件objctfile中,且目的地目录必须存在。
若要复制整个目录及下边文件,需要用-r

sudo cp -r 源目录 目的地目录
sudo cp -r 源目录1 源目录2 目的地目录

1.5 文件移动(剪切)

mv 源文件 目的地文件
mv test1/file1 test2/
mv test1/file1 .
mv 源目录 目的地目录

若源文件和目的地文件都是在同一路径下,那么即效果为重命名的效果。
.代表当前目录,即移动到当前目录。

1.6 文件查看

sudo cat filename

表示查看文件的全部内容

sudo cat -b filename

表示查看内容并显示行号

sudo head file
sudo tail file

查看文件的前十行;
查看文件后十行

1.7 文件路径

相对路径:相对于当前系统所在目录的一个文件名称的简写,此名称不以“/”开头;
绝对路径:是文件在系统中的真实位置,以“/”开头。

pwd

显示当前所在位置的绝对路径

cd -        ##表示目录和当前目录之间所在目录切换
cd ..       ##进入当前目录的上级目录
cd ~       ##进入当前用户家目录
cd ~user   ##进入user家目录
cd 目录名  ##进入指定目录
cd ~+       ##表示跳转到当前目录
cd ~-        ##跳转到当前用户的之前的目录

接下来是路劲查看的命令

ls           ##显示当前目录下的所有内容
ls -l file   ##文件的属性
ls dir       ##目录中包含的内容
ls -d dir 	##目录本身
ls -a dir	##显示所有文件,包含隐藏的文件
ls -S dir	##查看并按大小排序
ls -ld	##查看目录本身的属性
ls -R		##显示当前文件的所有文件和对应目录的子目录

1.8 按tab键实现命令自动补齐

1.9 文件大小统计

wc filename		##显示文件基本信息
wc -l filename	##显示文件内容行数
wc -c filename	##显示文件字节数
wc -m filename	##显示文件字符数
wc -w filename	##显示文件内容的单词数

1.10 系统中历史记录的调用

history		##查看历史记录
history -c	##清空当前环境中的历史
! 数字		##调用此行的历史命令
! test		#执行以test关键字开头的最近一条历史
ctrl+r+关键字:##会调用最近一条含有关键字的命令

1.11 系统中的通配符

*					##表示匹配多个字符
?					##表示匹配单个字符
[[:alpha:]]			##表示匹配单个字符
[[:upper:]]			##表示匹配单个大写字母
[[:lower:]]			##表示匹配单个小写字母
[[:digit:]]			##单个数字
[[:punct:]]			##单个符号
[[:space:]]		##单个空格
[[:alnum:]]		##单个数字和字母
[1-9]				##表示1位,1-9中任意一个数字
[!3-5]			##表示不是3-5的一个数字
[^3-5]			##同上
[a-z]
{1..3}			##表示1,2,3
{1,3,5}

以上方法可以在创建文件或者删除文件等操作中使用。

touch file{1..3}			##创建1到3的文件

2.安装与卸载,以及python版本切换

通过输入命令来查看当前python版本:

python --version

一般来说,软件的二进制文件都可以在/usr/bin或/usr/local/bin找到,对于Raspbian这个Debian系得Linux,可以输入命令来找:

dpkg -L python3

为了能够让python版本更加简单得进行切换,Debian系统提供了一个update-alternatives工具,具体步骤如下:
(1)查看有没有关于Python的可选项:

update-alternatives --display python

若报错,显示无python的候选项,那么就需要开始建立python的组,并添加python2和python3的可选项,具体命令如下:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1

里面的两个路径,根据自己实际情况进行更改。命令中最后的数字,表示优先级,越大优先级越高。接下来查看python组的配置:

sudo update-alternatives --config python

然后根据界面提示进行切换python版本即可。如果要删除某个可选项的话,可以用命令:

sudo update-alternatives --remove python /usr/bin/python2.7

再次注意,上面的方法,update-alternatives只适用于Debian系得linux,Raspbian就是Debian系的。

3.文件编辑:Nano和Vi的使用

在编辑文件的时候,linux中有两个常用的编辑器,分别时Nano和Vi,其编辑文件的指令为:

sudo nano 文件路径
sudo vi 文件路径

其中nano我认为比较接近平常windows的编辑文件的方式,我个人比较喜欢。

3.1 Nano编辑器简单使用

(1)按Ctrl+G可以显示帮助文档和所有快捷键,按Ctrl+X退出帮助文档。

(2)Nano的保存功能被称为“写入”,按Ctrl+O来保存文件。按Ctrl+X退出Nano,若此时未保存,会提示是否保存,通过按Y或者N来选择。

(3)将光标移动到复制或者剪切的起始位置,按Ctrl+^,然后将光标移动到内容的末尾,然后如果要剪切选中内容,要按Ctrl+k,若要复制,要按Alt+^,然后再移动到要黏贴的地方,按Ctrl+U。

(4)若要删除一行文字,按Ctrl+K。
(5)若要搜索文字,按Ctrl+W。

3.2 Vi编辑器简单使用

所有Unix系统都会内建vi文本编辑器,其他的文本编辑器不一定会存在,因此学会用vi也很重要。

vi分为三种模式,分别时命令模式,输入模式和底线命令模式,这三种模式的作用分别是:
(1)命令模式,刚启动vi就是命令模式,这个状态下敲击键盘动作会被识别为命令,常用有以下几个命令:

  • i:切换到输出模式,以输入字符;
  • x:删除当前光标所在处的字符
  • ::切换到底线命令模式,以再最底一行输入命令。

因此,若想要编辑文本,则需要启动vi后,按下i,然后切换到输入模式。命令模式中只有一些最基本的命令,因此仍然要依靠底线命令模式输入更多命令。

(2)输入模式,在命令模式中按下i,就进入输入模式。在输入模式中,有以下几个快捷键或者输入方式:

  • 字符按键以及Shift组合:正常输入字符;
  • ENTER:换行;
  • BACKSPACE:退格键,删除光标前后一个字符;
  • DEL:删除键,删除光标后一个字符
  • 方向键:移动光标
  • HOME/END:移动光标到行首/行尾;
  • Page Up/Page Down:翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
  • ESC:退出输入模式,切换到命令模式;

(3)底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或者多个字符的命令,可用命令非常多,常用命令如下(以及省略了冒号):

  • q:退出程序
  • w:保存文件
  • wq:保存文件并退出程序

按ESC按键,可以随时退出底线命令模式。

4.Chmod权限设置

Linux/Unix的文件调用权限分为三个等级,分别是文件拥有者、群组、其他。可以用chmod控制文件如何被他人所利用。

常用语法为:

chmod abc file

其中a、b、c分别是一个数字,而它们分别代表拥有者、群组、其他这三个权限等级的权限值。

每一个权限等级(a、b、c)的值分别由数字累加而成。可读操作值为4,可写操作值为6,可执行操作值为1(r=4,w=2,x=1)。

因此,当要求为所有权限等级都可以对文件进行“可读可写可执行”操作时,命令为:

chmod 777 file

若只有拥有者和群组可以“可读可写可执行”,其他为“可读”,则命令为:

chmod 774 file

5.设置开机启动

大致有三种方法:
(1)编辑文件/etc/rc.local
输入命令:vi /etc/rc.local
然后再exit0的前一行添加开机需要启动的程序或者执行的命令就可以了。
(2)将写好的脚本(.sh文件)放到目录/etc/profile.d下,系统启动后就会自动执行该目录下的所有shell脚本了
(3)通过chkconfig命令设置
将启动文件拷贝到/etc/init.d或者/etc/rc.d/init.d下,然后启动文件,用vi。
文件文件前必须添加下面三行代码:

#!/bin/sh 这是shell脚本的开头,告知是shell类型
#chkconfig:35 20 80 分别代表运行级别,启动优先权,关闭优先权
#description:http server (自己添加名称)

最后再chkconfig --add 脚本文件名
就可以了

6.添加定时运行

cron是一个linux下定时执行工具,cron是linux的内置服务,它不自动运行,需要以下方法启动或关闭:

service cron start
service cron stop //关闭服务
service cron restart
service cron reload //重启载入配置

当输入命令

crontab -e

会出现一个文件,就是填写对应的定时规则的。具体规则如下:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
  • minute:0-59
  • hour:0-23
  • day-of-month:0-31
  • month:1-12
  • Day-of-week:0-6,0是周日

还有一些特殊符号*、/、-、,等
例子如下:

*/5 * * * * /home/test.sh   ##每五分钟         
0 * * * * * /home/test.sh  ##每小时
0 0 * * * /home/test.sh  ##每天
0 6 * * * /home/test.sh  ##每天早上6点
0 23-7/2 * * * /home/test.sh  ##晚上11到早上8点之间每两个小时