zoukankan      html  css  js  c++  java
  • Linux学习笔记

    一、Linux历史

    • Unix 1970年1月1日,即1970年又称为Unix元年。
    • Linux 1990年诞生。
    • Linux 于1991年加入了GNU(革奴计划),所以Linux的全称是:GNU/Linux。
    • GCC 为C语言编译器。

    二、Linux目录

     目录 说明 
    /   正斜杠代表Linux的根目录。
    /bin (binaries) 这个目录存放二进制文件,但在Linux中二进制文件是可以被执行的。这个目录是给非root用户使用的。
    /boot 存放Linux引导启动的一些文件
    /dev (Device) 该目录存放Linux的外部设备文件,Linux中访问设备跟访问文件是相同的。
    /etc  存放系统配置文件,这是不指定目录情况下配置文件的默认目录。
    /home 存放所有非root用户的用户主目录集合。
    /root root用户的用户主目录
    /sbin (super bin) 同bin目录类似,只是这里存放的二进制文件只有超级管理员才能执行。
    /usr (unix shared resources) 存放系统应用程序,类似windows的Program Files目录。注:/usr/local/ 本地管理员程序安装目录。
    /var (variable) 存放可变的文件,如:系统运行文件(日志)或者是一些经常需要修改的文件。
    /lib (Library) 这个目录存放着系统最基本的动态链接库,几乎所有的应用程序都会用到这些库。
    /lose+found 系统非法关机(如:系统崩溃)把没有保存的文件就会放到该目录下。
    /proc (Processes) 虚拟文件系统,它是系统内存的映射,我们可以直接访问这个目录来获取系统信息。
    /temp 存放一些临时文件,是公用的临时文件存储点。
    /opt (optional) 这个给主机额外安装软件所摆放的目录,如:oracle、tomcat 等。

    三、命令行(Shell)

    • 常见的shell有:
    1. csh
    2. tcsh
    3. zsh
    4. bash (最常使用的)

    四、Linux常用命令

    1. 基本命令

    指令:ls

    作用:列出指定路径下的文档列表

    语法:#ls [选项] 路径

    常见选项:

    • -l  使用长格式列出文件及目录信息
    • -a  代表all,显示所有文件及目录(含隐藏文件,即以“.”开头的文件)

    常见用法:

    • #ls -l 路径
    • #ls -la 路径

    指令:clear

    作用:清空当前屏幕中的全部命令(本质是没有清空的只是把这些内容顶到上面去了)

    语法:#clear

    快捷键:快捷键:ctrl + L


    指令:su(switch user)

    作用:切换用户 

    语法:#su 用户名

    备注:不写用户名,则表示切换到root用户。

    • 高权限用户 切换到 低权限用户不用输入密码。
    • 低权限用户 切换到 高权限用户需要输入密码。

    指令:cd(change directory)

    作用:切换当前工作目录

    语法:#cd 路径

    常见用法:

    • #cd ~  切换到当前用户的用户主目录
    • #cd -   切换到上一次的工作目录
    • #cd ..  切换到上一级目录

    注意:路径可以是相对路径也可以是绝对路径;相对路径:只要不是以“/”开头的就是相对路径;绝对路径:只要是以“/”开头的就是绝对路径。


    指令:pwd(print work directory)

    作用:打印当前工作路径

    语法:#pwd


     

    2. 文档操作

    指令:touch

    作用:创建文件

    语法:#touch 文件名(创建到当前目录下就写文件名,若创建到其它目录下需要带上路径+文件名)

    例如:

    • #touch tem.txt    -- 当前工作目录下
    • #touch /var/tem.txt  -- /var/ 目录下

    指令:mkdir(make directory)

    作用:创建目录

    语法:#mkdir [选项] 路径

    常见选项:

    • -p  递归创建多级目录
    • -v  显示目录的创建过程

    指令:cp(copy)

    作用:复制文档

    语法:#cp  [选项]  被复制文件的路径  文件黏贴的路径

    常见选项:

    • -r  标识递归(recursion)

    备注:如果copy的是文件夹,则选项 -r 是必须的。


    指令:mv(move)

    作用:移动文档(剪切/重命名)

    语法:#mv  被剪切文档的路径  文档黏贴的路径


    指令:rm(remove)

    作用:删除文档

    语法:#rm [选项]  路径

    常见选项:

    • -r  标识递归(recursion)
    • -f  表示强制(force), 即没有删除提示

    例子:#rm -rf /var/test/  删除/var/test/目录


     

    3. 文档查看

    指令:head

    作用:查看文件头n行

    语法:#head [选项] 文档路径

    常见选项:

    • -n  为数字,表示看多少行,不写默认是10行。

    指令:tail

    作用:查看文件末n行

    语法:#tail [选项] 文档路径

    常见选项:

    • -n 为数字,表示看多少行,不写默认是10行。

    指令:cat

    作用:查看文档的全部内容(正序 - 从上至下)

    语法:#cat 路径1 路径2 ...


    指令:tac

    作用:查看文档全部内容(倒序 - 从下至上)

    语法:#tac 路径1 路径2 ...


    指令:vim

    作用:用vim编辑器打开文件(查看)

    语法:#vim [参数]  文档路径

    常见用法:

    • #vim +数字 文档路径   -- 表示打开文档并将光标定位到某行
    • #vim +/关键词  文档路径  -- 表示打开文档并高亮显示关键词(搜索)

    4. 关机&重启

    指令:reboot

    作用:重启计算机

    语法:#reboot


    指令:shutdown

    作用:关机

    语法:#shutdown [选项] 参数

    常见用法:

    • #shutdown -h now   -- 立即关机
    • #shutdown -h +m    -- m为minutes,为数字。如:+5 表示五分钟后关机

    指令:halt

    作用:关机(不切断电源)

    语法:#halt


     

    5. 进阶指令

    指令:du(Disk Usage)

    作用:显示指定目录或文件所占的磁盘空间

    语法:#du  [选项]  文档路径

    常见选项:

    • -s  summarize 总计(即统计)
    • -h  以易读方式显示文档大小

    例如:查看/var/test/目录所占磁盘空间大小。 #du -sh /var/test/


    指令:df(Disk Free)

    作用:显示系统磁盘使用情况的统计信息

    语法:#df  [选项]  参数

    常见选项:

    • -h  以易读方式显示
    • -m  以MB为单位显示

    指令:free

    作用:查看系统内存使用情况

    语法:#free [选项]

    常见选项:

    • -m  以MB为单位显示

    指令:find

    作用:查找和搜索文件

    语法:#find  查找范围  [选项]  选项值

    常见选项:

    • -name  按文件名查找,支持通配符(*)
    • -type    按文件类型查找,常见类型:d - 目录、f - 文件、s - socket、l - 连接文件、c - 字符设备文件、b - 块状设备文件
    • -size     按大小查找
    • -user    按所有者查找
    • -group  按用户组查找
    • -atime  按文件最后读取时间查找,单位是:天
    • -mtime 按文件最后变更时间查找(内容被修改)
    • -ctime  按文件最后修改时间查找(元数据或权限发生变化)

    示例说明:find  /var/test/  {-atime/-mtime/-ctime/-amin/-mmin/-cmin} [-+] num

    1)第二个参数(花括号内)分两部分:a、c、m 代表操作类型;time表示日期(单位:天),min 为分钟。

    2)第三个参数 [-+],- 代表 num 内(未超过),+ 代表 num 外(超过),未填 - 或 + 表示第 num(刚刚好)。如单位天(time), -2 表示两天内,+2 表示两天前,2 表第2天。


    指令:ps(process show)

    作用:查看进程

    语法:#ps  [选项]

    常见选项:

    • -e  等价于 -a(All),表示全部
    • -f  表示full,显示全部的列

    例如:#ps -ef


    指令:service

    作用:服务操作,如:重启服务、停止服务、启动服务

    语法:#service  服务名称  start/stop/restart

    备注:service指令对服务名的存在是有要求的,服务名必须存在/etc/init.d/目录下。

    扩展:由上可知服务的操作还可以是:#/etc/init.d/服务名称  start/stop/restart


    指令:grep

    作用:文本搜索

    语法:#grep 关键字 文件路径/文件内容

    常见选项:

    • -v  排除 

    扩展用法:

    • #grep   -E   "keyword1|keyword2..."   文件路径/文件内容。(备注:-E表示Extension,该语法表示多条件筛选,即使用正则表达式筛选)
    • #egrep  "keyword1|keyword2..."    文件路径/文件内容。(备注:跟上面作用相同)

    指令:wc

    作用:统计文档信息(行,单词数,字节数)

    语法:#wc -lwc 文档路径

    常见选项:

    • -l     行数(Lines)
    • -w   单词数(words)
    • -c    字节数(chars)

    备注:-lwc选项的顺序不影响结果输出的顺序,结果顺序一定是:行、单词、字节。


    指令:|(管道)

    作用:批处理命令连接执行

    语法:指令1 | 指令2...(备注:指令1要求在终端中有输出内容,指令2要求有内容输入的指令)

    管道的核心:管道前面指令的输出其实就是管道后面指令的输入


    指令:exec

    作用:调用并执行指定的命令

    语法:#exec [选项]  参数

    常见选项:

    • -c    在空环境中执行指定的命令

    指令:xargs(eXtended ARGuments)

    作用:过滤器,xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。

    语法:xargs  [参数]

    常见选项:

    • -n    多行输出
    • -d    自定义一个边界符
    • -I     指定一个替换字符串
    • -t    打印xargs执行的命令
    • -p   执行每一个命令时弹出确认

    五、Vim编辑器

    vi/vim中存在三种模式(大众认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)。

    • 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键(命令)进行一些操作,如:删除行、复制行、移动光标、粘贴等。这也是打开文件默认进入的模式。
    • 编辑模式:在该模式下可以对文件的内容进行编辑。
    • 末行模式:可以在末行输入命令来对文件进行操作,如:搜索、替换、保存、退出、撤销、高亮等。

    Vim打开文件的方式:

    • #vim  文件路径      作用:打开指定的文件,可以是不存在的,不存在即新建。
    • #vim  +数字  文件路径    作用:打开指定文件,并将光标移动到指定行。
    • #vim  +/关键字   文件路径    作用:打开指定文件 ,并高亮显示关键字(即搜索)。

    1)命令模式

    光标移动:

    • 光标移动到行数,快捷键:shift + ^(6)。
    • 光标移动到行尾,快捷键:shift + $(4)。
    • 光标移动到首行行数,按键:gg。
    • 光标移动到末行行数,按键:G。
    • 快速定位到指定行,按钮:数字 + G。

    翻屏:

    • 向上翻看,快捷键:ctrl + b  (before) 或 pgup
    • 向下翻看,快捷键:ctrl + f (after)或 pgdn

    复制:

    • 复制光标所在的行,按钮:yy
    • 以光标行为准向下复制指定行,按键:数字 + yy

    粘贴:

    • 按键 p ,将复制内容粘贴在光标所在行的下一行。
    • 按钮 P ,将复制内容粘贴在光标所在行的上一行。

    剪切/删除:

    • 剪切/删除光标所在行(下一行会上移),按键:dd。
    • 剪切/删除以光标所在行为准,向下剪切/删除指定行,按键:数字 + dd。
    • 剪切/删除光标所在行,但下一行不会上移,按键:D。(备注:不支持 数字 + D)

    撤销/恢复:

    • 撤销,按键:u(undo), 或进入末行模式输入(:u)。
    • 恢复,按键:ctrl + r(redo),恢复之前的撤销操作,即撤销多了。

    2)编辑模式

    进入方式:

    • i:  在光标所在的字符前开始插入。
    • a: 在光标所在的字符后开始插入。
    • o: 在光标所在行的下面另起新行插入。
    • I:  在光标所在行的行首插入,行首如果有空格则在空格之后插入。
    • A: 在光标所在行的行尾开始插入。
    • O: 在光标所在行的上面另起一行开始插入。
    • S: 删除光标所在行并开始插入。

      • 末行模式进入的特征:光标在最后一行上。
      • 编辑模式进入的特征:在最后一行有了类似 "---插入(INSERT)---"。
      • 末行模式和编辑模式之间无法直接切换,必须经过命令模式中转。

    3)末行模式

    保存(write):

    • 输入 :w ,保存文件
    • 输入 :w  路径,另存为

    退出(quit):

    • 输入 :q ,退出文件(注:默认情况下需对已修改的文件进行保存操作:w,才能退出)

    保存并退出:

    • 输入 :wq , 保存并且退出。

    强制(!):

    • 输入 :q! ,表示强制退出,刚才做的修改操作不做保存。

    搜索:

    • 输入 :/关键字 ,再按下回车。(备注:按键 / 也是进入末行模式的方式之一)
    • 在搜索结果中(上面操作),按键 n 切换到下一个结果;按键 N 切换到上一个结果。
    • 如果要取消搜索高亮,则输入 :nohl ,即 no  highlight。

    替换:

    • :s/搜索关键字/要替换的新内容            替换光标所在行的第一处符合条件的内容。
    • :s/搜索关键字/要替换的新内容/g         替换光标所在行的全部符合条件的内容。
    • :%s/搜索关键字/要替换的新内容         替换整个文档每一行第一处符合条件的内容。
    • :%s/搜索关键字/要替换的新内容/g      替换整个文档中符合条件的内容。

    备注:% ----- 表示整个文件;g ----- 表示全局(global)。

    行号:

    • 显示行号输入 :set nu ,代表 set number
    • 取消行号输入 :set nonu,代表 set no number

    备注:要想永久显示行号,则需要对Vim进行配置,其中建议创建文件:“~/.vimrc”,该文件内容为:set nu 然后保存即可。改配置是针对用户的,每个用户的主目录下可以自己配置一个独立的.vimrc文件。

    4)部分命令模式操作可使用末行模式实现

    复制:

    • 语法,: 开始行号,结束行号 y,例::1,10y。

    剪切/删除:

    • 语法,:开始行号,结束行号d,例::1,10d。

    复制粘贴:

    • 语法,:开始行号,结束行号 co 粘贴开始行号,例::1,10 co 15。

    剪切粘贴:

    • 语法,:开始行号,结果行号 m 粘贴开始行号,例::1,10 m 15。

    5)Vim异常退出

    什么是异常退出?即在编辑文件后最后没有正常保存退出,而是遇到突然关闭(关闭终端、断电等),再次进入到上次编辑的文件就会显示异常退出信息。

    解决方案:1. 按照提示操作进行;2. 删除 .文件名.swp 文件即可,这个文件相当于我们windows下操作word生成的临时文件一样,删掉就能恢复正常。

    六、用户与用户组

     

     

     

     


    如果您觉得阅读本文对您有帮助,请点下:"推荐"。^_^


    作者:VVStudyQQ群:469075305
    出处:http://www.cnblogs.com/VVStudy/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    静态链表的C语言实现
    struct和typedef struct彻底明白了
    线性表的链式存储结构的C语言实现
    线性表的顺序存储结构C语言的实现
    算法基础知识
    数据结构基础认识
    Storm入门学习随记
    【坑】执行Consumer的时候发生java.net.UnknownHostException错误
    Kafka入门学习随记(二)
    Maven学习随记
  • 原文地址:https://www.cnblogs.com/VVStudy/p/14225471.html
Copyright © 2011-2022 走看看