linux基础知识学习笔记
1、Linux介绍
Linux版本:
内核版本:最基本的核心程序,只要用于企业和个人在此基础自行开发所需功能。
发行版本:在内核基础上增加了一些常用软件,满足企业和用户直接使用的基本需求。
Linux应用领域:
个人桌面:图形桌面开发
服务器领域:整个系统就像dos命令行一样,全部命令操作。
嵌入式领域(智能硬件):在Linux基础上开发自己所需的功能然后将程序烧到硬盘中去执行。
后两个实用最广泛;
2、Linux目录和文件操作
Linux目录:
Linux的四种文件类型:
1.可分享的
可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目录;
2.不可分享的
自己机器上面运作的装置文件或者是与程序有关的socket文件等, 由于仅与自身机器有关,所以当然就不适合分享给其他主机了。
3.不变的
有些数据是不会经常变动的,跟随着distribution而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
4.可变动的
经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。
事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
/ (root, 根目录):与开机系统有关;
/usr (unix software resource):与软件安装/执行有关;
/var (variable):与系统运作过程有关。
/:根目录,Linux文件系统的入口.也是最高一级的目录.
/etc:系统配置文件目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d等,修改配置文件之前记得备份。
/usr:应用程序存放目录,软件的安装路径
/usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
/usr/bin:存放应用程序;
/usr/share:存放共享数据;
/usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
/usr/local:存放软件升级包。
/usr/share/doc:系统说明文件存放目录。
/usr/share/man:程序说明文件存放目录。
/var:放置系统执行过程中经常变化的文件;
/var/log:随时可能更改的日志文件;
/var/log/message:所有的登录文件存放目录;
/var/spool/mail:邮件存放的目录;
/var/run:程序或服务启动后,其PID(端口号)存放在该目录下。
/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。比较重要的目录为/lib/modules。
/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等;类似于/usr/bin
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。用户的个人文件都存放在此目录下。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
这里介绍了一些常用的目录,想要了解更多请前往:http://www.cnblogs.com/silence-hust/p/4319415.html
文件操作:
1、文件的显示
ls:显示当前目录下的文件和目录
ls -a:显示当前目录下的所有文件和目录,包括隐藏文件和目录。
ls -l:显示当前目录下文件盒目录的详细信息。
ls -h:以合适的单位显示当前目录下的文件和目录的大小
ls -alh 或 ls -a -l -h:三者不分前后顺序
例:ls /bin:查看根目录下,bin文件夹里的所有内容;
2、目录的跳转
cd:打开某个文件夹,后跟文件夹名或文件夹的路径
cd - :跳转到上一次操作,只在最后两步之间来回跳转。
cd ~:跳转到当前路径的家目录下,例如/home/hadoop
pwd:显示当前的绝对路径
cd ..:跳转到当前路径的上一层
.:表示当前路径
..:当前路径的上一层
../../..:当前路径上三层
3、正则表达式
*:通配符,匹配任意字符,*.txt所有以.txt结尾的文件名。
[abc]:中括号中的人一个匹配成功即可,相当于a,b,c的并集;可写成[a-c]。
?:表示此处有一个字符,未知的,不能是空;
‘^a’:以a开头的内容
‘a$’:以a结尾的内容
4、文件创建和删除
gedit:打开要编辑的文件。
mkdir:创建文件夹
mkdir a :当前目录创建文件夹a
mkdir A/B/C -p:创建三级文件夹
tree:显示文件树
rm:删除文件(不进回收站)
rm a/* -r:删除文件夹内的内容
rm a -r:删除文件夹
rmdir:删除空文件夹
-i:交互式询问删除
-f:不交互直接删除
ln:给原文件创建快捷方式,分软连接和硬链接
ln 原文件名 快捷键名
软连接:删除快捷方式对原文件没影响,删除原文件快捷方式打不开
ln -s 原文件名 快捷键名
硬链接:删除原文件,快捷方式不影响查看,相当于一个文件的多个名字备份,直到删到最后一个才能删除原文件。
5、文件搜索
grep:从文件中搜索内容。
grep -n 't':显示所有带‘t’的内容,不区分大小写,显示行号
grep -i 't':忽略大小写
grep -v 't':显示除带‘t’以外的内容
‘t’:可以用正则表达式来代替
find:查找当前路径下的文件
find 路径名 + ……
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-size -2M #按文件大小查找,小于2兆
6、文件的复制和移动
cp 想要复制的文件名 复制到的文件名 :文件的复制
-v:显示复制进度条
-i:交互式复制
-f:强制性复制
-a:同事复制文件的隐性信息,比如权限,软连接本身
-r:复制文件夹 例cp b a/ -r :将b文件夹复制到a文件夹下
cp b/* a/ -r :将b文件夹下的内容复制到a文件夹下
mv:移动就是剪切
mv 05.tmt 05.tot:将第一个名字重命名为第二个名字
7、文件的压缩
tar -cvf xxx.tar *:打包当前路径所有文件为xxx.tar
tar -zcvf xxx.tar.gz * :压缩当前文件夹所有文件
gzip xxx.tar:压缩打包好的文件夹xxx.tar得到文件名为:xxx.tar.gz
gzip test.tar:同上,gzip xxx.tar
tar -xvf xxx.tar:解压文件
gzip -d xxx.tar.gz:解压文件
tar -zxvf xxx.tar.gz (-C路径):解压当前压缩文件到指定路径
上述中的‘z’可改成‘j’是一种算法压缩,xxx.tar.bz2就是一种bz2算法压缩
zip(-r) myzip.zip *:直接压缩文件夹所有内容
unzip -d .test/AA myzip.zip:解压文件到指定文件夹
8、文件的权限
-,+,=:减少,增加,设置权限
chomd u-w 文件名:给用户减少写操作权限
u:拥有用户,o:其他人,g:同组人,a:所有
r,w,x:读,写,执行 数字赋值分别为:4,2,1,u=rwx,o=rwx,g=rwx等价于a=rwx
a= :等于空表示什么权限都没有
chomd 777 文件名:文件夹的权限
chomd 777 文件名 -R:文件夹内所有文件的权限
chown:修改文件的拥有者
chgrp:修改文件所属组
常用快捷键操作
1、实用操作命令
clear:清空当前的屏幕,只是将当前页面内容上移,并没有删除。
Tab:用来自动补全输入
touch:在当前文件夹中创建文件,Linux没有文件名后缀的形式,例test.txt只是一个文件名。
\:反斜杠,转义字符。例 ls \*a 显示*a文件夹里的文件和目录
>:输出重定向,将内容输出到此文件中,没有此文件就创造文件,有此文件就删除原文件内容,将此内容输出到文件中。
>>:同上,只是在存在同名文件时,将此内容追加到文件后,并不删除原文件内容。
例:ls > test.txt:将想要显示的内容保存到test.txt文件中去。
more:文件内容大于一屛时,将文件里的内容滚屏显示。
| (管道):连接两个命令。例 ls -alh|more
cat:查看文件内容,如果文件内容较多,可用鼠标滚珠查看,一扫而过。
cat 文件名 > 文件名:实现将文件的内容复制到另一个文件
cat 多个文件名 > 文件名:实现多个文件的合并。
2、帮助文档
history:历史输入命令
--help:帮助文档
ls -help :查看ls命令的帮助
manual:Linux手册。比help好用很多,显示格式也比较好看。
man ls :查看ls命令解释
man 2或3 ls :以不同语言形式展现命令帮助,(2代表C语言,3代表……)
which:查看命令的位置,例 which ls:查看ls命令所在的位置
bin 文件夹下都是执行程序,/bin,/usr/bin都是
mount :挂载命令
3、查看日期
cal:查看当前日历
cal -y 2018 :显示2018年的日历
date:显示当前时间(ntp:网络时间协议)
date [MMDDhhmm[[yy]ss]]:格式化输出
date ‘+%Y-%m’ :格式化输出
4、进程控制
ps:查看进程信息,相当于任务管理器
ps -aux:显示所有正在运行的程序
-a:显示终端上的所有进程
-u:显示进程的详细状态
-x:显示没有控制终端的进程
-w:显示加宽以便显示更多信息
-r:只显示正在进行的进程
top:动态显示进程
m:内存,c:CPU等可按照属性的首字母排序
kill:杀死正在进行的进程
kill pid 或 kill -9 pid(杀不死用这个)
5、关机与重启
reboot:重启
shutdown -r now :立刻重启
shutdown -h now :立刻关机
shutdown -h 20:35 :八点三十五关机
shutdown -h +10 :十小时后关机
init 0 :关机
init 6 :重启
df :检查当前磁盘情况
du :显示当前路径下的所有文件的大小及路径
du -h :显示文件大小的单位
编辑器及其常用操作操作
1、编辑器选择和模式
编辑器:sublime,vim:命令模式,编辑模式,末行模式
sublime的安装和使用技巧:
subl:打开快捷键
gedit:打开文本编辑器
vim是vi的升级版本……
vim 1.py +23:直接打开跳转到23 行
v:进入可视模式,按字符移动选取
r:替换当前字符
R:替换光标后的字符
/+内容:找想要的内容
N,n :向上或向下跳转
vi 1.py :直接进入命令模式
进入编辑模式的三种方式:
i:当前光标位置的前面插入
o:在下一行插入
a:当前光标后插入
esc:编辑模式回到命令模式
I:行首 A:行末 O:上一行
命令模式下:
shift+zz:保存并退出
:+x:保存并退出
命令模式-->末行模式的转变用:冒号
末行模式下:
X 加密文件
冒号+w:保存
冒号+q:退出
冒号+wq:保存并退出
!:强制执行
2、编辑模式常用快捷键
ctrl + n :自动提示补全
、 h,j,k,l,M:左,下,上,右,中
L:当前屏幕最后一行
yy:复制,例:8yy从光标当前所在行复制8行
p:粘贴
dd:剪切,例:8dd从当前行剪切8行
u:撤销
ctrl + r:反撤销
G: 跳到最后一行
15G:跳到15行
1G:跳到第一行
gg:跳到第一行
w:往右跳一个字
d:往左跳一个字
ctrl + d:向下半屏
ctrl + u:向上半屏
ctrl + f:向下一屏
ctrl + b:向上一屏
3、编辑模式下的删除操作
X:删除左边的字符
x:删除当前字符
D:删除光标这一行的行末内容
d0:删除光标前的内容
dw:删除光标后的所有内容
>> << :文本的左右移动或Tab键
.:上一步执行的命令
4、末行模式
:%s/123/abc/g :将当前文本中所有的123都替换成abc。
:1,10s/123/abc/g:将当前文本1到10行的替换
vim例可实现shell命令操作
:!+终端的shell命令
vim 的分屏操作,Linux安装软件等:有待补充