wwwlyjustcom看完这篇,你就会Linux基本操作了,请耐看完199O8836661

只有光头才能变强
这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~
本文章主要是总结Linux的基础操作以及一些简单的概念,对于开发者来说,能使用Linux做一些基本的操作是必要的!
那么接下来就开始吧,当然了我的Linux仅仅是入门水平,如果有错的地方还需请大家多多包涵,并不吝在评论区指出错误~
一、为什么我们要学习Linux
相信大部分人的PC端都是用Windows系统的,那我们为什么要学习Linux这个操作系统呢???Windows图形化界面做得这么好,日常基本使用的话,学习成本几乎为零。
而Linux不一样,可能刚接触Linux的人会认为:Linux好麻烦哦,不好玩,都是字符界面。不直观、这个破系统是用来干嘛的

日常用的话Windows是比较顺手的,但是我们要知道的是:我们开发出来的程序一般都是放在Linux下运行的。
那可能就会有人提出疑问了:Windows同样是操作系统,为啥要放在Linux下,而不放在Windows下呢??相信Windows也是可以运行我们写出来的程序的。
我总结了Linux的几个优点:
免费很多软件原生是在Linux下运行的,庞大的社区支持,生态环境好。开源,可被定制,开放,多用户的网络操作系统。相对安全稳定,所以开发者选择了Linux来跑我们自己写出来的程序。
二、Linux的基础知识
Linux系统的组成:
linux内核(linus 团队管理)shell:用户与内核交互的接口文件系统:ext3、ext4等。windows 有 fat32 、ntfs第三方应用软件
2.1Shell的基本知识
除了Shell、其他的都应该挺好懂的,那么Shell是什么东西呢???
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
Shell可以执行:
内部命令应用程序shell脚本
看完这篇,你就会Linux基本操作了,请耐心看完……
使用type命令可以区分内部命令和外部命令
于是乎,我们利用Shell就可以干下面这些事了:
命令行解释(这是用得最多的!)命令的多种执行顺序通配符( wild-card characters )命令补全、别名机制、命令历史I/O重定向( Input/output redirection )管道( pipes )命令替换( 或$( ) )Shell编程语言( Shell Script )
Shell的主要版本有以下这么多:
我们常用(默认)的就是bash(bourne again shell)
看完这篇,你就会Linux基本操作了,请耐心看完……
使用ps命令观察正在执行的shell
看完这篇,你就会Linux基本操作了,请耐心看完……
2.2Linux基本目录结构
在Windows下,会有基本的目录结构的:
看完这篇,你就会Linux基本操作了,请耐心看完……
看完这篇,你就会Linux基本操作了,请耐心看完……
Linux下也不例外了,也是有基本的目录结构的:
看完这篇,你就会Linux基本操作了,请耐心看完……
Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录
/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
2.3命令基本格式

cmd [options] [arguments],options称为选项,arguments称为参数

选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开。

Linux是区分大小写的
一般来说,后面跟的选项如果单字符选项前使用一个减号-。单词选项前使用两个减号--

这是一般的情况,有些命令还是不归属这种规律的(相对较少)~~~例子:ls -a和ls -all,a 单个字符使用一个-,一个单词all 使用两个--
在Linux中,可执行的文件也进行了分类:

内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部。外置命令:存放在/bin、/sbin目录下的命令实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序用户程序:用户程序经过编译生成可执行文件后,可作为Shell命令运行Shell脚本:由Shell语言编写的批处理文件,可作为Shell命令运行
2.4通配符

学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)

*:匹配任何字符和任何数目的字符?:匹配单一数目的任何字符[ ]:匹配[ ]之内的任意一个字符[! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思
2.5文件的类型

在Linux下文件的类型有这么多:

普通文件-目录d符号链接l硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径(简单地理解为 Windows 中常见的快捷方式)。字符设备文件 c块设备文件b套接字s命名管道p
2.5.1用户主目录

可能在网上查阅资料的时候会出现用户主目录这么一个名词,那他是什么呢???

前面已经说了,我们的Linux是多用户的网络系统!所以,我们可以在Linux下创建多个用户,每个用户都会有自己专属的空间。

所以,在创建用户时,系统管理员会给每个用户建立一个主目录,通常在/home/目录下比如:用户osmond的主目录为:/home/osmond
用户对自己主目录的文件拥有所有权,可以在自己的主目录下进行相关操作。

三、常用的命令
上面说了一堆的基础概念,这是给我们敲命令之前打了一点基础,在敲命令的同时也会遇到一些比较重要的知识点的。那就到时候再说说了~~~

3.1常用的文件、目录操作命令

这是我们使用得最多的命令了,Linux最基础的命令!

可用 pwd命令查看用户的当前目录可用
cd 命令来切换目录 .表示当前目录 .. 表示当前目录的上一级目录(父目录) -表示用 cd 命令切换目录前所在的目录 ~ 表示用户主目录的绝对路径名
绝对路径:

以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用
相对路径 :

不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式
tips:输入命令的时候要常用tab键来补全

ls:显示文件或目录信息
mkdir:当前目录下创建一个空目录
rmdir:要求目录为空
touch:生成一个空文件或更改文件的时间
cp:复制文件或目录
mv:移动文件或目录、文件或目录改名
rm:删除文件或目录
ln:建立链接文件
find:查找文件
file/stat:查看文件类型或文件属性信息
cat:查看文本文件内容
more:可以分页看
less:不仅可以分页,还可以方便地搜索,回翻等操作
tail -10: 查看文件的尾部的10行
head -20:查看文件的头部20行
echo:把内容重定向到指定的文件中 ,有则打开,无则创建管道命令
| :将前面的结果给后面的命令,例如:ls -la | wc,将ls的结果加油wc命令来统计字数重定向 > 是覆盖模式,>> 是追加模式,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt把左边的输出放到右边的文件里去
学了这些命令我们能干嘛?其实就是在Windows下复制文件、粘贴文件、创建文件、查看文件这几种~~~

3.1.1常用的文件、目录操作练习题

进入/tmp目录,建立一个文件,goldXX(XX为学号的末两位),查看文件的时间

看完这篇,你就会Linux基本操作了,请耐心看完……
在账户的主目录中,建立一个dog目录,进入dog目录后,建立一个catXX(XX为学号的末两位)目录,进入catXX目录,显示当前目录;然后返回上一级目录,删除catXX目录;

看完这篇,你就会Linux基本操作了,请耐心看完……
复制/etc/passwd文件到账户主目录,修改账户主目录下passwd为passwdXX(XX为学号的末两位)

看完这篇,你就会Linux基本操作了,请耐心看完……
查找文件名叫做zcat的文件;复制该文件到/tmp目录;用长格式列出该文件;然后删除/tmp目录下的所有文件,并检查文件是否已被删除

看完这篇,你就会Linux基本操作了,请耐心看完……
复制/etc/hosts文件到账户主目录下;在账户主目录中建立一个硬链接文件(文件名为hostsYYY(YYY为学生姓名拼音缩写)),链接到主目录下的hosts文件;分别查看hosts和hostsYYY的文件的inode信息

看完这篇,你就会Linux基本操作了,请耐心看完……
复制/usr/bin/vdir文件到账户主目录下;在账户主目录中建立一个软链接文件(文件名为newdir),链接到主目录下的vdir文件;分别查看vdir和newdir的文件的inode信息

看完这篇,你就会Linux基本操作了,请耐心看完……
用长格式列出目录/usr/bin目录下的所有文件,输出重新定向到文件outXX(XX为学生学号末两位),检查结果;用长格式列出目录/etc目录下的所有文件,输出结果补充到文件outXX末尾

用长格式列出/usr/bin目录下的所有文件,通过管道与more命令连接,实现对文件列表的浏览

答:>是覆盖方式重定向到新的文件;>>是以补充方式,添加到原文件的末尾。

通过管道和more命令,浏览文件列表方便在哪里?

答:对于文件列表超出一个屏幕显示的情况,这种方式可以分屏浏览,比较方便。

3.2文件打包和压缩命令

在Windows操作系统下,我们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压。

在Linux下当然也存在压缩或解压的操作咯,下面我们就来学习一下在Linux下是怎么压缩和解压的!

压缩的方式也是有好几种,我们常用的有下面这三种:

gzipbzip2tar
常用的压缩的命令就有:

gzip filenamebzip2 filenametar -czvf filename
常用的解压命令有:

gzip -d filename.gzbzip2 -d filename.bz2tar -xzvf filename.tar.gz
3.3正则表达式+grep

上面我们已经学过了cat、more、less、tail这些查看文本文件的命令了,但是我想快速查看这个文本文件下的某些关键字是否存在,那怎么办???

在Windows下就比较简单的,几乎所有的文本编辑器(记事本)都支持CTRL+F,往里面输入关键字就可查找出来:

看完这篇,你就会Linux基本操作了,请耐心看完……
那在Linux下,没有图形界面,没有CTRL+F的情况下,如果不懂一些命令的话,那还真是难找对应的字符出来。下面我就来说说如何快速查找一个文本文件下的某些字符。

3.3.1正则表达式

首先我们就来说说正则表达式,如果接触过的同学就知道:这玩意并不好记。一旦不用就很容易就忘记了,所以只能在用的时候查查了~~~所以下面我就直接给出一些规则了,不多说啦。

看完这篇,你就会Linux基本操作了,请耐心看完……
看完这篇,你就会Linux基本操作了,请耐心看完……
3.3.2grep命令

grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。

格式:grep [options] PATTERN [FILE...]

PATTERN 是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号将RE括起来。FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件
例子:

在文件 myfile 中查找包含字符串 mystr的行grep -n mystr myfile显示 myfile 中第一个字符为字母的所有行grep ‘^[a-zA-Z]‘ myfile在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行)grep -v ‘^#‘ myfile列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名grep -lr root /etc/*
用grep查找/etc/passwd文件中以a开头的行,要求显示行号;查找/etc/passwd文件中以login结束的行;

看完这篇,你就会Linux基本操作了,请耐心看完……
3.4几种提高工作效率的方法

自动补全命令TAB键历史命令上下箭头键别名alias
这里感觉要说说的就只有别名alias了,我们下面看看例子就懂了!

显示shell当前已经定义的别名;执行其中的两个定义别名的命令;定义一个别名grep,要求其采用彩色方式显示结果

看完这篇,你就会Linux基本操作了,请耐心看完……
看完这篇,你就会Linux基本操作了,请耐心看完……
3.5Shell变量 和 Shell环境

在Windows下有用户的环境变量,系统的环境变量。在Linux一样也是有的。

看完这篇,你就会Linux基本操作了,请耐心看完……
Shell 变量大致可以分为三类:

内部变量:由系统提供,用户只能使用不能修改。?GROUPS环境变量:这些变量决定了用户工作的环境,它们不需要用户去定义,可以直接在 shell 中使用,其中某些变量用户可以修改。用户变量:由用户建立和修改,在 shell 脚本编写中会经常用到。变量赋值(定义变量)varName=Valueexport varName=Value引用变量$varName
Shell变量的作用域:

局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中;全局变量的作用范围则包括本Shell进程及其所有子进程。局部变量与全局变量互换:可以使用 export 内置命令将局部变量设置为全局变量。 可以使用 export 内置命令将全局变量设置为局部变量。
export命令:

显示当前Shell可见的全局变量export [-p]定义变量值的同时声明为全局变量。export <变量名1=值1> [<变量名2=值2> ...]声明已经赋值的某个(些)局部变量为全局变量。export <变量名1> [<变量名2> ...]声明已经赋值的某个(些)全局变量为局部变量。export -n <变量名1> [<变量名2> ...]
Shell环境变量:

环境变量定义 Shell 的运行环境,保证 Shell 命令的正确执行。Shell用环境变量来确定查找路径、注册目录、终端类型、终端名称、用户名等。所有环境变量都是全局变量(即可以传递给 Shell 的子进程),并可以由用户重新设置。

Shell变量:查询、显示和取消:

显示当前已经定义的所有变量所有环境变量:env所有变量和函数(包括环境变量) :set显示某(些)个变量的值echo $NAME1 [$NAME2 ……]取消变量的声明或赋值unset <NAME>
3.5.1Shell变量 和 Shell环境练习题

定义Shell变量stuXX(XX为学生学号末两位),初值为学生姓名全拼,用echo命令显示stuXX变量的值;用unset命令取消stuXX变量,检查结果;用env命令观察当前有哪些已经定义好的shell环境变量

Shell环境变量的值是否可以修改?为什么?

答:环境变量的值一般情况下,可以修改。但一定要慎重修改,因为一旦修改错误,对shell正常运行造成严重影响,甚至导致shell无法运行。

四、VI编辑器
相信没有用过Linux的同学在看一些段子的时候都会看到过两个编辑器:

vimemacs
下面我们学习如何简单使用vi。vi 是 “Visual interface” 的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

vi可以看做成我们Windows下的记事本vim 即 Vi IMproved,vi 克隆版本之一
使用Vi来编辑文件:

Vi有三种模式:

4.1普通模式
G用于直接跳转到文件尾ZZ用于存盘退出ViZQ用于不存盘退出Vi/和?用于查找字符串n继续查找下一个yy复制一行p粘帖在下一行,P粘贴在前一行dd删除一行文本x删除光标所在的字符u取消上一次编辑操作(undo)
4.2插入模式
在Normal 模式下输入插入命令 i、 a 、 o进入insert模式。用户输入的任何字符都被vim当做文件内容保存起来,并将其显示在屏幕上。
在文本输入过程中,若想回到Normal模式下,按 Esc 键即可。
4.3命令行模式
Normal 模式下,用户按冒号 :即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。
:w 保存当前编辑文件,但并不退出:w newfile 存为另外一个名为 “newfile” 的文件:wq 用于存盘退出Vi:q! 用于不存盘退出Vi:q用于直接退出Vi (未做修改)
设置Vi环境:
:set autoindent 缩进,常用于程序的编写:set noautoindent 取消缩进:set number 在编辑文件时显示行号:set nonumber 不显示行号:set tabstop=value 设置显示制表符的空格字符个数:set 显示设置的所有选项:set all 显示所有可以设置的选项
4.4Vi练习题
在用户主目录下,执行vi程序,编辑文件install.log;移动光标到第10行,第五个字符;按大写字母G,达到文件末尾;不存盘退出;

在用户主目录下,执行vi程序,编辑文件install.log;用/命令查找字符串sudo,复制包含字符串sudo的行

看完这篇,你就会Linux基本操作了,请耐心看完……
在用户主目录下,执行vi程序,编辑文件install.log;进入命令模式,设置显示行号;用?命令查找字符串openssh,用命令n查找下一个

四、总结
本文主要讲解了Linux的最基础的知识,可以简单地操作Linux了。命令可以说是学不完的,只能是记住Linux是有这个功能,到时候去网上查查也很方便。

原文地址:http://blog.51cto.com/14074381/2317003

时间: 2024-12-16 12:52:31

wwwlyjustcom看完这篇,你就会Linux基本操作了,请耐看完199O8836661的相关文章

web开发中的长度单位(px,em,ex,rem),如何运用,看完这篇就够了!

原创 2017-03-08 web小二 web前端开发 作为一名前端开发人员,css中的长度单位,都是我们在工作中非常熟悉的名词,因为没有它们,我们就不能声明某个字符应该多大,或者某些图像周围应该留白多少,甚至有时候能导致css不能进行正常工作,所以在很多css属性中,它们都是依赖于长度单位来显示各种页面元素. 1.长度单位包括哪些? 长度单位,其实在我们的生活中,也非常常见,例如,厘米.毫米.英寸,还有经常接触到的像素(px),元素的字体高度(em).字母x的高度(ex).百分比(%)等等这些

(原创)BFS广度优先算法,看完这篇就够了

BFS算法 上一篇文章讲解了DFS深度优先遍历的算法,我们说 DFS 顾名思义DEEPTH FIRET,以深度为第一标准来查找,以不撞南墙不回头的态度来发掘每一个点,这个算法思想get到了其实蛮简单.那么 BFS 和DFS有什么相同点和不同点呢? 我觉得有一种比喻对于 DFS 和 BFS 从方法论的角度解释很到位,DFS 就像是小明要在家里找到钥匙,因为对位置的不确定,所以一间一间的来找,深度遍历能确保小明走过所有的屋子.而 BFS 像是近视的小明的眼镜掉在了地上,小明肯定是先摸索离手比较近的位

PDF怎么拆分成多个PDF,看完这篇文章你就明白了

PDF文件对于每一个经常在职场上工作的人来说,是特别常见的一个文档格式,PDF格式深受人们的喜爱,因为是特别好用的,但同时也是比较难进行编辑和修改的,特别是遇到PDF文档过长,为了方便浏览和及时查找对我们有用的内容,这就需要将PDF文档拆分成多个PDF,那么PDF怎么拆分成多个PDF?通过今天的文章就来告诉大家PDF文档拆分的方法,看完这篇文章你就明白了,那么我们就一起来看看吧.?方法一:软件拆分法借助软件:如果想要将PDF文档拆分成多个PDF,那就需要借助迅捷PDF转换器来实现,这个软件有着丰

零基础如何开始学习 Python?看完这篇从小白变大牛!

1.选择Python版本 对于Python工程师来说,Python的版本则是你们的工作环境.所以在学习之前一定要考虑选择一个合适自己的版本,Python3对零基础的小白很友好,易上手.选好版本后就可以开始学习了.创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学python能够持之以恒python爱好群,如果你想要学好python最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你

关于 Docker 镜像的操作,看完这篇就够啦 !(下)

原文:关于 Docker 镜像的操作,看完这篇就够啦 !(下) 紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌握的.本文将带您一步一步,图文并重,上手操作来学习它. 目录: 一.Docker 删除镜像 1.1 通过标签删除镜像 1.2 通过 ID 删除镜像 1.3 删除镜像的限制 1.4 清理镜像 二.Docker 创建镜像 2.1 基于已有的镜像创建

如何更准确过滤信息?看完本篇你就知道

无论是使用Excel办公,还是浏览器搜寻关键字,都是需要通过条件过滤来实现.今天,手把手教你实现Java web项目--实现多条件过滤功能. 分页查询需求分析:在列表页面中,显示指定条数的数据,通过翻页按钮完成首页/上一页/下一页/尾页的查询数据分析:通过观察,页面上需要显示下面的几个数据:当前页:currentPage页面大小:pageSize总页数:totalPage首页:1上一页:prevPage下一页:nextPage尾页:endPage总条数:totalCount结果集:result

ae模板怎么套用?看完这篇ae模板套用教程你就懂了

首先我们要知道,模板,是什么?模板就是别人做好了的工程文件,所以东西都已经完成,不需要任何效果方面的修改了.那么ae模板怎么套用?就是你用的时候,替换.修改或者删去某些东西,变成自己的视频.比如片头LOGO模板,你肯定得要有自己的LOGO,去替换模板里的LOGO,然后渲染成片,才会成你的片头:看完这篇ae模板套用教程你就懂了. https://www.macdown.com 本站提供了海量AE模板,我们选择片头LOGO模板,做你自己的片头. 首先下载完后,打开这个模板. 然后看一眼项目栏 我用的

看完这篇你还敢说,不懂Spring中的IoC容器?

一. 什么是IoC 什么是耦合和内聚 耦合指的就是模块之间的依赖关系.模块间的依赖越多,则表示耦合度越高,相应的维护成本就越高.内聚指的是模块内功能之间的联系.模块内功能的联系越紧密,则表示内聚度越高,模块的职责也就越单一.所以在程序开发中应该尽量的降低耦合,提高内聚.也就是设计原则中的开闭原则和单一职责原则. 工厂模式 工厂模式就是用来解决程序间耦合的一种设计模式.可以把所有要创建的对象放在工厂的一个集合里,当需要使用这个对象的时候,直接从工厂里面取出来用就行. 工厂模式的优点: 一个调用者想

Java中的多线程你只要看这一篇就够了

Java中的多线程你只要看这一篇就够了 引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其实只有一半对,因为反应"多角色"的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的"生产者,消费者模型". 很多人都对其中的一些概念不够明确,如同步.并发等等,让我