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安装软件等:有待补充

  

  

  

  

    

  

  

  

  

 

  

  

  

时间: 09-08

linux基础知识学习笔记的相关文章

〖前端开发〗HTML/CSS基础知识学习笔记

经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> <body>...</body> </html> html是根标签 head定义文档头部,包含: title, script, style, link, meta body是网页主要内容,包含:h1,h2-h6, p, a, img 2. 认识head标签: <head

Go语言基础知识学习笔记1

安装教程我就不写了,推荐大家下载msc的安装包,因为他会自动帮你配置一些环境变量,但是GOPATH这个工作目录的环境变量需要自己配置 右键我的电脑->属性->高级系统设置->环境变量->新建系统变量 变量名称大写 GOPATH 路径就你的工作目录,如我的是D:/go 如果有多个工作目录就使用";"分号分割 根据约定,GOPATH下需要建立3个目录: bin (存放编译后生成的可执行文件)pkg (存放编译后生成的包文件)src (存放项目源码) 查看环境变量与工

linux 基础知识学习(三)

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 2.取出最后登录到当前系统的用户的相关信息. 3.取出当前系统上被用户当作其默认shell的最多的那个shell. 4.将/etc/passwd 中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中. 5.取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分. 6.列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保

python之 前端HTML/CSS基础知识学习笔记

1. 文件结构: HTML文件的固定结构: <html> <head>...</head> <body>...</body> </html> html是根标签 head定义文档头部,包含: title, script, style, link, meta body是网页主要内容,包含:h1,h2-h6, p, a, img 2. 认识head标签: <head> <title>...</title>

Java基础知识学习笔记(一)

理解面向对象: Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承.封装.多态. Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可以生成系统中的多个对象,而这些对象直接映射成客观世界的各种事物,整个Java程序由一个一个的类组成. 结构化(主张按功能把软件逐步细分,面向功能)/面向对象程序设计:(分析>设计>编程)SA/OOA > SD/OOD > SP/OOP 结构化程序设计最小的程序单元是函数,每个函数都负责

汇编语言基础知识学习笔记(一)

汇编语言发展至今,由下列三类指令组成. 1.     汇编指令:机器码的助记符,有对应的机器码. 2.     伪指令:没有对应的机器码,由编译器执行,计算机并不执行. 3.     其他符号:如:+.-.*./等,由编译器识别,没有对应的机器码. 汇编语言的核心是汇编指令,它决定了汇编语言的特性. 一.     CPU对存储器的读写 CPU要想进行数据的读写,必须和芯片进行3类的信息交互: 1.     存储单元的地址(地址信息) 2.     芯片的选择,读或写的命令(控制信息) 3.   

汇编语言基础知识学习笔记(二)

一.寄存器(CPU工作原理) CPU由运算器.控制器.寄存器等器件构成.在CPU中,运算器进行信息处理:寄存器进行信息存储:控制器控制各种器件进行工作:内部总线连接各种器件,在它们之间进行数据传送. 不同的CPU寄存器的个数.结构是不一样的. 8086CPU有14个寄存器:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 8086CPU的AX.BX.CX.DX四个寄存器可分为两个8位寄存器来使用: AX:AH和AL: BX:BH和BL: CX:CH和CL:

JAVA 基础知识学习笔记 名称解释

Java ee:? IDE: ? itegrity   development environment 集成开发环境 JMS:? java Message Service java   信息服务 JMX? Java Management Extensions,即Java管理扩展 JNDI:(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司 提供的一种标准的Java命名系统接口,JNDI提供统一的客户端 API,通过不同的访问提供者接口J

CSS基础知识学习笔记

1.css基本样式讲解 1.1 css背景 background-attachment:背景图像是否固定或者随着页面的其余部分滚动 background-color:设置元素的背景颜色 background-image:把图片设置为背景 background-position:设置背景图片的起始位置 background-repeat:设置背景图片是否及如何重复 background-size:规定背景图片的尺寸 background-orgin:规定图片的定位区域 background-cli