在开始深度学习之前,linux的下载和安装是第一步,我选择了我在文章中给出了下载安装的教程网址,希望对初学者有用,里面包含了初学linux的常用命令,如果练习完这些命令则算是比较初级的入门了linux,整个文档是我自己的学习流程!
一、Linux概述、命令以及操作
1.1认识linux
(1)操作系统:连通硬件和软件的枢纽,如:win7,Mac,Android,IOS等
(2)Unix:操作系统的鼻祖,由于语言兼容性从BCLP -> B -> C
(3)Minix:mini-unix,用于教育
(4)Linux:ubuntu,redhat,fedora,suse
(5)开源:可下载可执行文件及源代码。闭源:可下载可执行文件,不能下载源代码。
(6)Linux内核版:只包含内核,可用于扩展。下载网址:www.kernel.org
(7)Linux发行版:一般使用的都是发行版,下载地址:http://cn.ubuntu.com/
(8)虚拟机VMware workstation12安装步骤:
https://jingyan.baidu.com/album/4b52d702a155a4fc5c774bcf.html?picindex=7
VMware Workstation 12序列号: 5A02H-AU243-TZJ49-GTC7K-3C61N
(9)虚拟机VMware workstation12安装Linex步骤:
http://www.linuxdiyf.com/linux/20066.html
1.2 Linux文件和目录
(1)’/’:根目录
(2)’.’:当前目录
(3)’..’:上一级目录
(4)’r’:读
(5)’w’:写
(6)’x’:可执行
1.3 Linux命令-文件磁盘管理(在终端输入)
(1)加大字体:ctrl shift ‘+’ ;变小字体:ctrl ‘-‘
(2)ls:list,显示当前路径下所有文件和文件夹
ls –l:以列表方式显示文件的详细信息。显示是文件夹还是文件,一般蓝色是文件夹,白色是文件,最前面是’d’的是文件夹,最前面是“-”的是文件。
ls –h:配合–l以人性化的方式显示文件大小。一般写作:ls –lh ,即显示单位为kb
ls –a:显示指定目录下所有子目录与文件,包含隐藏文件。
ls ../:列出当前路径的上一级文件夹里面的文件和文件夹
ls *.c:显示相同后缀为.c的文件
ls h*:显示1开头的文件
ls h*.c:显示h开头.c的文件,*可代表多位
ls 1?3.py:?代表一位数字或者字母,?只代表一位
ls 1[0123456789]3.py:显示1开头,1234567890中任何一位为中间位置,3.py结尾的文件,即[]代表某一位的范围
ls \*a:如果*a命名的文件则需要加反斜杠,表示转义
(3)ls > ls.txt:重定向,将显示在屏幕上的当前目录的列表写入到ls.txt中,且一个’>’表示将ls.txt文档中的内容替换
ls –lha >> ls.txt:重定向,将显示在屏幕上的当前目录的详细信息列表继续写入到ls.txt中,两个’>>’表示继续将内容写入ls.txt文档中,不删除之前的内容。
(4)more ls.txt:分屏显示,即由于ls.txt文件内容太多,只显示其中一部分,如果需要继续浏览,则按空格键继续显示下一屏。
(5)ls –lha | more:管道’|’,将lha显示的内容放到管道’|’里面,more可用于取管道里面的信息。
(6)pwd:查看当前路径
(7)cd:跳转路径
cd ..:当前文件夹上一级目录
cd ./xyz/或者cd xyz/:跳转到当前文件夹的xyz文件夹,这是相对路径
cd /bin/:绝对路径,一般路径较长的使用绝对路径
cd +’xxx’+ tab键:自动补全命令,补全’xxx’后面没有写完的命令
cd ~:当前路径的家目录
cd -:快速回到上一次路径
(8)clear:清屏
(9)history:到当前为止的命令
(10)ls –help:列出ls的选项
(11)man ls:解释ls,空格更换一屏显示,上下更换每行显示,’h’ for help,’q’ for quite
(12)touch 1.py:创建文件1.py
(13)gedit 1.py:编辑1.py的内容
(14)cat 1.py:查看1.py内的东西
cat 1.py>2.py:用1的内容覆盖2的内容
cat 1.py>>2.py:将1.py的内容添加到2.py后面
cat 1.py 2.py >> 3.py:将1.py和2.py的文件放入到3.py,显示顺序为3.py然后1.py,最后2.py。可以添加无限个文件
(15)mkdir file:创建名为file的目录
(16)rmdir file:删除名为file的目录,但是只能删除空文件夹,一旦文件夹有东西就没法删除
(17)rm file:删除名为file文件。
rm fire –r:递归删除目录下的内容,即先删除文件再删除文件夹,在删除文件时一定要加-r
rm fire –rf:等价于rm fire –r –f,直接删除文件
(18)ln –s 1.py 1link.py:软链接,即建立一个链接1link.py指向1.py,当删除1.py之后,它的链接文件1link.py就找不到文件了,也没有内容。
ln 2.py 2link.py:硬链接,即建立一个链接2link.py指向2.py,当删除2.py之后,它的链接文件2link.py依旧表示2.py文件的内容。相当于给同一个文件有两个名字2.py和2link.py,当删除其中一个文件时,只是删除文件名,直到删除所有文件名则删除文件,可通过ls –l来查看有几个文件名。
(19)grep ‘000’ 1.py:在1.py中搜索000,结果红色显示
grep –n ‘000’ 1.py:在1.py中搜索000,结果红色显示且显示行数
grep –n ‘^22’ 1.py:在1中以22开头的,结果红色显示且显示行数
grep –n ‘[Hh]ello’ 1.py:在1中的hello和Hello,结果红色显示且显示行数
(20)find ./ -name 1.py:在当前目录下查找名为1.py的文件
find ./ -name 1.py:在当前目录下查找名为1.py的文件
find /home -name 1.py:在绝对路径下查找名为1.py的文件、
find / -name 1.py:在根目录下查找名为1.py的文件,ctrl c结束
find /home -name 1*:在根目录下查找名字带1的文件
(21)cp 1.py test:复制1.py到test文件夹下面
cp test1 test2 –r:复制文件夹,文件夹一定添加-r,表示依次拷贝test1中的文件
(22)tree:以树的形式显示该文件夹下面的文件
tree /home:以树的形式显示home文件夹下面的文件
(23)sudo apt install tree:如果提示’tree’未安装,可通过此命令进行安装
(24)mv 1.py test:剪切1.py到test文件夹下面
mv test1 test2:剪切文件夹,表示依次拷贝test1中的文件
mv 1.py 111.py:剪切文件夹,文件夹一定添加-r,表示依次拷贝test1中的文件
(25)tar –cvf test.tar 1.py 2.py 3.py:打包,’c’指定生成打包文件,’v’显示进度,’f’指定档案文件名称,后面一定跟文件名。这句话的作用是在当前文件夹下生成一个名为test.tar的打包文件,并且将1.py,2.py,3.py打包到里面,只打包不压缩。
(26)tar –xvf test.tar:解包,’x’指定解压文件,’v’显示进度,’f’指定档案文件名称,后面一定跟文件名。这句话的作用是在当前文件夹下解压一个名为test.tar的打包文件。
(27)gzip –r test.tar test.tar.gz:压缩,可直接写成gziptest.tar,’-r’表示压缩所有子目录。
(28)gzip –d test.tar.gz:解压,这句话的作用是在当前文件夹下解压一个名为test.tar的打包文件。
(29)tar –zcvf test.tar.gz *.py:打包和压缩带*.py的文件到test.tar.gz中。
(30)tar –zxvf test.tar.gz:解压缩test.tar.gz到当前文件夹中。
(31)tar –zxvf test.tar.gz –C ../mytest:解压缩到指定文件夹中,’-C’指定文件夹。
(32)tar –jcvf test.tar.bz2 *.py:打包和压缩带*.py的文件到test.tar.bz2中。
(33)tar –jxvf test.tar.bz2:解压缩test.tar.bz2到当前文件夹中。
(34)zip myzip.zip *.py:打包和压缩带*.py的文件到myzip.zip中。
(35)uzip –d test myzip.zip:解压缩文件到test文件夹中。
(36)which ls:找出ls的路径
1.4 Linux命令-系统相关命令
(1)cal:查看系统今天日历
cal 2015:查看系统2015年日历
(2)date:查看系统今天的相关信息
date 010203042016.05:修系统日期到2016年01月02日03点04分05秒
(3)ps –aux:当前与系统相关的运行进程
(4)top:动态显示进程,按’q’退出
(5)exit:退出超级管理员
sudo –s:获得超级管理员权限
(6)ctrl + shift + t:打开一个新的命令界面
(7)kill pidNumber:关闭一个运行的程序,其中pidNumber是指通过ps –aus显示的PID列的数字。
kill -9 pidNumber:强制关闭一个运行的顽固程序。
(8)python 1.py:通过python运行1.py这个程序
(9)reboot:重启(重要)
(10)shutdown:关机(重要)
shutdown –r now:重启,shutdown会给别的用户提示。
shutdown –h now:立马关机
shutdown –h 20:20:20:20关机
shutdown –h +10:10分钟后关机
(11)init 6:重启
init 0:关机
(12)df:查看占用空间
df -lh:带存储单位显示占用空间
(13)du -alh:检测目录所占磁盘空间。
1.5 Linux命令-管理和权限
(1)who:查看谁登录了电脑,tty7表示终端,可通过按ctrl+Alt+F1(或者F2-6任意一个)登录到终端字符界面,在字符界面通过按ctrl+Alt可拿出鼠标,按ctrl+Alt+F7返回终端图形界面。Linux可用多用户登录,当多个界面登录时会显示所有登录的用户和终端。
who –q:显示当前登录数
whoami:显示自己登录的名
(2)ifconfig:查看配置网卡,查看网址
(3)ping 192.168.153.128:测试远程主机连通性
ssh mei@192.168.153.128:远程控制ubuntu。
exit:退出登录。
(3)useradd xuan -m:新建用户。在home下添加以一个新的用户xuan,注意只能在超级管理员权限可用创建,并自动创建家目录xuan。
passwd xuan:添加新建的用户xuan的密码。
passwd:也用于修改目前登录的用户的密码。
su –xuan:在exit退出超级管理员权限后输入,可以切换到新用户xuan。
cat /etc/passwd:查看用户名。
userdel –r xuan:删除用户。’-r’表示同时删除文件夹。可通过查看用户名来检查是否删除成功。
(4)cat /etc/group:查看当前有哪些用户组。
groupmod +三次tab键:查看用户组。
groupadd www:创建用户组www。
groupdel www:删除用户组www。
groups mei:查看用户mei在哪些组,可以查看相关权限。
cat /etc/group | grep ‘sudo’:查看sudo用户组有哪些用户。
usermod –g xuan xuanzi:将xuan用户加入xuanzi用户组,注意一般’-g’表示修改用户的默认用户组。
usermod -a–G xuan xuanzi:将xuan用户加入xuanzi用户组,注意’-a’和’-G’配合使用表示给用户添加用户组。
(5)修改权限
①字母法
chmod u+w 1.py:表示1.py的拥有者增加w权限 。
chmod g-r 1.py:表示1.py的拥有者的同组者减少r权限。
chmod o=rw 1.py:表示修改其他人对1.py的权限为rw。
chmod u=rwx,g=rw,o=r:表示对于1.py,拥有者的权限为rwx,同组者的权限为rw,其他人的权限为r。
chmod u=,g=,o=:表示对于1.py,拥有者,同组者,其他人都没有任何权限。
chmod a=rw 1.py:表示修改所有人对1.py的权限为rw,’a’表示all。
②数字法:r=4,w=2,x=1
chmod 751 1.py:表示拥有者对1.py的权限为4+2+1,即rwx,同组者。
(6)chown xuan 1.py:修改文件拥有者为用户xuan。
(7)chgrp xuanzi 1.py:修改文件所属的用户组为用户组xuanzi。
(8)sublime:一个编辑软件,便于写代码。
1.6 Linux软件下载安装
(1)ping www.baidu.com:检查是否可以联网,网络适配设置成NET)
(2)gedit /etc/apt/sources.list:更新源,打开之后全选剪切,然后粘贴(3)中复制的东西,最后复制回去。
(3)此处给出清华大学开源软件镜像站网址:
https://mirrors.tuna.tsinghua.edu.cn
在网址下找出ubuntu并且复制对应版本。
(3)sudo apt-get update:更新资源库
(4)sudo apt-get install sl:安装sl软件。
(5)sl:在用户状态输入,观察运行结果,显示一个跑火车。
(6)在需要超级管理员权限又不想切换到超级管理员,可以直接在命令前面添加sudo。
(7)sudo apt-get remove sl:删除软件al。
sudo apt-get remove package --purge:删除软件包以及配置文件。
(8)sudo apt-get install sl --reinstall:重安装sl软件。
(9)sudo apt-cache search package:重安装安装包。
(10)sudo apt-cache show package:显示安装包信息。
(11)sudo apt-get -f install:修复安装。
(12)sudo apt-get build-dep packge:安装相关的编译环境。
(13)sudo apt-get packge:更新已安装的安装包。
(14)sudo apt-get dist-packge:升级系统。
(15)sudo apt-cache depends package:了解使用该安装包依赖哪些包。
(16)sudo apt-cache repends package:查看被哪些安装包依赖。
(17)sudo apt-get source packge:下载该包的源代码。
(18)sudo apt-get clean & sudo apt-get autoclean:清除无用的包。
(19)sudo apt-get check:检查是否有损坏的包。
1.7 Linux常用服务器构建-ftp服务器(文件传输协议)
(1)sudo apt-get install vsftpd:安装vsftpd服务器。
(2)sudo gedit /etc/vsftpd.conf:配置vsftpd服务器。
(3)sudo gedit /etc/vsftpd.chroot_list:在里面放置登录vsftpd服务器的用户名。
(4)chmod u-w ftp:去掉文献拥有者的权限。
(5)sudo mkdir share:在ftp文件夹新建一个文件夹用于存放用户分享的东西。
(6)sudo /etc/init.d/vsftpd restart:重启fpt服务器以完成配置。
(7)ftp 192.168.153.128:测试。
(9) putsomefile:上传文件。
(10)get somefile:下载文件。
1.8 Linux常用服务器构建-ssh和scp服务器
①ssh服务器搭建
(1)sudo apt-get openssh-server:安装ssh服务器。
(2)ssh mei@192.168.153.128:远程登录用户mei,IP为192.168.153.128。
②scp
(1)sudo apt-get openssh-server:在使用之前要求安装openssh-server。
(2)scp本地文件名 远程用户@远程IP:远程的路径:将本地文件传输到远程用户的指定路径。如:scp 1.py mei@192.168.153.128: /home/mei/file
(3)scp -r当前本地文件名 远程用户@远程IP:路径:加-r表示传输文件夹。
(4)scp 远程用户@远程IP:远程的路径本地文件名 ./:将远程用户指定路径的文件传输到本地。如:scp mei@192.168.153.128:/home/mei/file/1.py ./
(5)scp –r远程用户@远程IP:路径 ./:加-r表示传输文件夹。
1.9 Linux里面的vi使用细则
vi hello.py:若当前路径有hello.py则直接打开,如果没有则建立。
(1)命令模式进入编辑模式,在命令模式可以按’i’,’a’或者’o’进行切换,其中:
i:插入,从目前光标所在之处插入所输入的字,即光标左边。
a:增加,目前光标所在的下一个字开始输入文字,即光标右边。
o:向下插入新的一行,从行首开始输入文字。
I:跳到行首。
A:跳到行尾。
O:向上插入新的一行,从行首开始输入文字。
(2)编辑模式下需要切换到命令下,按ESC键。如需离开vi及存文件则在末行模式下,在命令模式下可按冒号“:”进入末行模式,其中:
:w 保存
:wq 保存和退出,也可写:x。
:q! 强制离开并放弃编辑的文件
(3)在命令模式下可按上下左右键移动光,标,也可用字母移动,注意只是移动,不进入编辑,其中:
j:表示下移
k:表示上移
h:表示左移
l:表示右移。
L:光标移到最后一行行首
G:快速定位到行,如9G表示快速定位到第9行。
gg:光标移到文件开头。
M:光标移到中间行
w:向后移动一个字
b:向前移动一个字
{:按段上移
}:按段下移
ctrl –d:向下翻半屏
ctrl –u:向上翻半屏
ctrl –f:向下翻一屏
ctrl –b:向上翻一屏
(4)删除,在命令模式下进行
x:删除光标右边一个字符,即光标所在。
X:删除光标左边一个字符。
d0:删除本行光标以前的所有字符。
D:删除本行光标以后的所有字符。
(5)撤销
u:表示撤销上一个操作。
ctrl –r:反撤销。
(6)缩进
>>:向右缩进
<<:向左缩进
:1,5>:表示1-5行向右缩进
:1,5<:表示1-5行向左缩进
(7)复制粘贴
yy:复制光标所在行
p:在光标所在行的下一行粘贴
(8)剪切
dd:剪切光标所在那一行,3dd表示剪切光标所在行在内的3行。
(9)选中
v:选中光标所在行,可以按上下扩展选中行,一般用在整体缩进时的选中。
(10)替换,在末行模式下进行
%s/待替换字符/替换后字符/g:将整篇文章中的某个字符替换成其他字符。如:%s/h/HEELO/g,即将h替换成HELLO。
1,10s/待替换字符/替换后字符/g:将1-10行中的某个字符替换成其他字符。如:1,23s/h/HEELO/g,即将1-23行h替换成HELLO。
(11)查找:输入/,进入末行模式,在斜杠后面输入需要查找的内容,可以通过n往下依次查找,N往上依次查找。