最近用树莓派搭建了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点之间每两个小时