Linux

Linux

是基于Unix的开源免费,多用户,多任务的操作系统,
由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。

n.【计算机】 〈商标〉 Unix操作系统

Linux的分类
根据市场需求不同,分为两个方向
1.图形界面版:注重用户体验,但目前成熟度不够。

2.服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,
是我们架设服务器的最佳选择,类似于DOS界面。

根据原生程度不同,分为两个方向
1. 内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
2. 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。


内核版是唯一的
发行版可以很多,它封装了内核版,底层还是使用内核版操作机器的硬件设备。

根据发行不同,分为多个版本
1. ubuntu
2. redhat
3. centos
4. lubuntu
5. freeBSD
6. 等等

虚拟机简介

虚拟机是一个软件,它可以使你在一台真实PC机器上同时运行二个或更多window / Linux等操作系统。

它可以模拟一个标准PC环境。
这个环境和真实的计算机一样,
都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器。

目前市场上流行的虚拟机有两种:
1. VMware(威睿)公司的虚拟机软件,功能强大,收费产品,有30天试用期
2. VitrualBox (甲骨文)公司的虚拟机软件,免费商品

Linux的优点:

\1. 个人用户正版Linux不需要收费。

\2. 系统长时间运行后,还是比较稳定,比较快,不容易死机。

\3. 且Linux不常招到病毒攻击等。

做为一个后端JavaEE程序员,
通常在windows中开发完程序后,得部署到一个相对比较安全,稳定的电脑中运行,
这台电脑上安装的不是windows操作系统,而是Linux操作系统。

Linux 的目录结构

Linux不像windows那样有盘符的概念,它的最高目录为根目录(用/表示)。

常用的目录有:
1. root目录:超级管理员所在的目录,用~表示
2. home目录:普通用户所在的目录
3. usr目录:安装用户文件所在的目录
4. etc目录:Linux系统管理和配置文件所在的目录
//注意:普通用户所在的家位于home目录,不是usr目录。

目录操作命令

切换【cd】

语法:cd  目录
解释:由一个目录转换到另一个目录
命令:
cd   /       切换到根目录
pwd          查询当前目录
cd  usr      切换到根目录下usr目录
cd  ..       切换到上一层目录
cd  ~        切换到当前用户家所在的目录
cd  /usr/bin   切换到根目录下的usr下的bin目录
clear  表示清屏

增加/创建【mkdir】

语法:mkdir  目录 目录 目录
解释:增加/创建目录
命令:
cd  /           定位于根目录
mkdir aaa        在当前目录下创建aaa目录,这是相对路径
mkdir ./bbb       在当前目录下创建bbb目录,这是相对路径
mkdir /ccc        在根目录下创建ccc目录,这是绝对路径
mkdir aaa bbb ccc 在当前目录下创建aaa,bbb,ccc三个目录,这是相对路径

查看【ls -l】

语法:ls  [参数]
解释:查看目录下的内容,这个内容包括目录和文件
1.无   以精简形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
2. -l    以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
3. -a   以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
命令:
cd  /
ls        以精简形式查询当前目录下的内容
ls ‐l     以详细形式查询当前目录下的内容,d表示目录,‐表示文件
ls ‐a    以精简形式查询当前目录下的隐藏内容
ls ‐la    以详细形式查询当前目录下的隐藏内容,la和al都可
ls ‐l -a    以详细形式查询当前目录下的隐藏内容,la和al都可
clear      清屏

d表示目录,文件夹
-表示文件

搜索【find】

语法:find  目录  -name  '条件'
解释:根据条件,搜索目录下的内容,这个内容包括目录和文件
其中条件支持通配符*号,表示任意
命令:
cd   /
find  / ‐name  'b'    查询根目录下(包括子目录),名为b的目录和文件
find  / ‐name  'b*'   查询根目录下(包括子目录),名以b开头的目录和文件
在Linux中,按ctrl+c 强行终止程序执行

修改【mv】


语法:mv  旧目录  新目录
解释:对目录进行重命名
命令:
cd  /
mv  aaa   aaaa     将当前目录下的aaa目录修改为aaaa

剪切/移动【mv】

语法:mv  原目录位置  新目录的位置
解释:对目录进行剪切/移动
命令:
cd   /
mv  /aaaa  /bbb        将根目录下的aaaa目录,移动到根目录下的bbb目录下 
                       最终是/bbb/aaaa
                       
注意:
mv  aaaa(100%有)  bbbb(可有可无)
如果当前目录下无bbbb,那么这条命令表示目录修改,最终是:当前目录/bbbb
如果当前目录下有bbbb,那么这条命令表示目录剪切/移动,最终是:当前目录/bbbb/aaaa

拷贝/复制【cp -r】

语法:cp  [参数]   目录  目录的新位置
解释:对目录进行拷贝/复制
1.-r 递归处理,将指定目录下的文件与子目录一起拷贝/复制
命令:
cd  / 
cp  -r  /aaa  /bbb    将根目录下的aaa目录复制到根目录下bbb目录下,
最终效果:/bbb/aaa。

删除【rm -r】

语法:rm  [参数]  目录
解释:对目录进行删除

1.-r 递归处理,将指定目录下的所有文件及子目录一起处理,

处理原则是,先删除最里层的目录,再删除最外层的目录,
它会询问你,是否进入下一层目录,是否删除目录
y表示是删除,n表示不删除
删除目录,得位于目录直接上一层目录

2.-f 强制删除目录,它不会询问你

命令:
cd  /
rm  -r   /aaa  询问式删除根目录下的aaa目录,y表示确认,n表示取消
如果aaa目录中还有子目录,则进入aaa目录下的所有子目录,依次询问

rm  -rf   /bbb 强行式删除/目录下的bbb目录
如果bbb目录中还有子目录,也会被强行式删除

文件操作命令

增加/创建【touch】

语法:touch  文件 文件 文件
解释:在指定的目录中,增加/创建文件
命令:
cd       /aaaa         定位于/aaaa目录
touch    a.java         在当前目录中创建a.java文件
touch    b.txt          在当前目录中创建b.txt文件
touch    c.xml          在当前目录中创建c.xml文件
touch   a.java  b.txt  c.xml          在当前目录中创建3个文件

查看【more】

语法:cat/more/head/tail   文件
解释:以只读方式查看文件的内容
命令:
cd    /aaaa             定位于/aaaa目录
cat    a.java             查看当前目录下a.java文件的最后一页内容

more  a.java             
从第一页开始查看当前目录下a.java文件内容,
按回车键一行一行的看,
按空格健一页一页的看

head   a.java            查看当前目录下a.java文件的前10行内容
tail    a.java             查看当前目录下a.java文件的后10行内容

head  -n  7   a.java      查看当前目录下a.java文件的前7行内容
tail   -n   7   a.java      查看当前目录下a.java文件的后7行内容

删除【rm -r】

语法:rm  [参数]   文件
解释:从目录中删除文件
1.-r 递归处理,对于文件删除,这个参数可带,也可不带,
它会询问你,y表示是删除,n表示不删除
删除文件,得位于文件所在的目录
2.-f 强制删除文件,它不会询问你

命令:
cd   /aaaa         定位于/aaaa目录
rm  -rf   a.java     强行式删除当前目录下的a.java文件
rm  -rf   ./a*      强行式删除当前目录下以a开头的所有文件
rm  -rf   ./*       强行式删除当前目录下所有文件

编辑【vi】

编辑已存在文件的内容,我们在Linux中,通常使用vi/vim工具来修改文件内容。

vi编辑器
Linux 下的vi 是一种文字编辑器,后来的升级版本是vim。

vi 分为三种模式:一般模式、编辑模式、命令命令模式。

vi编辑器的使用
语法 :vi/vim  文件
解释:用vi编辑器创建/打开文件

命令:
cd  /
vi   a.java         用vi编辑器创建/打开a.java文件,这时是一般模式

按i键,进入编辑模式
输入Java代码
按esc键,进入一般模式

按 shift : 进入命令模式

输入wq回车,表示存盘退出,输入q!回车,表示不存盘强行退出
Writer  Quit

压缩与解压命令

windows的压缩文件的扩展名: .zip或.rar
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包并压缩文件扩展名:.tar.gz

打包压缩文件【tar -zcvf】

语法:tar  [参数]   打包并压缩后的文件名   要打包压缩的文件
解释:将多个文件打包且压缩成一个特定的文件,其中要打包压缩的文件支持通配符*号
1. -c 创建新的文件(必选项)
2. -x 取出文件中的内容(必选项)
3. -f 文件名由命令台设置(必选项)
4. -v 输出文件清单(可选项)
5. -z 自动识别压缩或解压(可选项)


命令:
cd /           定位于/目录
mkdir aaa      在当前目录下创建aaa目录
cd aaa         定位于aaa目录
touch a.java     在当前目录下创建a.java文件
touch b.java     在当前目录下创建b.java文件
touch c.java     在当前目录下创建c.java文件
tar  -zcvf  d.tar.gz   a.java   b.java   c.java 
将当前目录下的3个java文件打包并压缩成d.tar.gz文件

tar  -zcvf  d.tar.gz   ./* 
将当前目录下的所有文件打包并压缩成d.tar.gz文件

解压压缩文件【tar -xvf】

语法1:tar   [参数]   打包压缩文件
解释:解压后的文件在当前目录中

语法2:tar   [参数]   打包压缩文件   -C   /usr/locals
解释:解压后的文件放入/usr/local目录中,注意-C是大写字母C
1. -c 创建新的文件(必选项)
2. -x 取出文件中的内容(必选项)
3. -f 文件名由命令台设置(必选项)
4. -v 输出文件清单(可选项)
5. -z 自动识别压缩或解压(可选项)
命令:
cd   /aaa                      定位于/aaa目录
tar  -xvf  zhaojun.tar.gz      解压d.tar.gz这个压缩文件,里面的文件释放到当前目录下

tar  -xvf  d.tar.gz  -C   /usr/local
解压d.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下

查看当前工作路面/绝对路径【pwd】

语法:pwd
解释:显示当前工作路面/绝对路径

命令:
cd  /
pwd
cd  /usr/local
pwd

查看进程【ps -au】

语法:ps  [参数]
解释:进程,正在执行的一个应用程序
1. 无 显示当前用户通过终端启动的所有进程精简信息
2. -a  显示所有用户通过终端启动的所有进程精简信息
3. -u  显示所有用户通过终端启动的所有进程详细信息
4. -x  显示所有用户通过终端和非终端启动的所有进程详细信息,内容相当多,不常用

命令:
cd  /
ps    显示当前用户通过终端启动的所有进程
ps -a  显示所有用户通过终端启动的所有进程
ps -au 显示所有用户通过终端启动的所有进程详细信息,
包括进程号,作者,CPU占用率等,比较常用
ps -aux 显示所有用户通过终端和非终端启动的所有进程详细信息,比较少用

杀死进程【kill -9】

语法:kill  [参数]   进程号
解释:最好只删当前用户在终端中启动的进程,而不要删除其它用户的进程,尤其是root用户的进程。

先用ps -au来确认一下当前需要杀死进程号,再用kill 进程号将这个进程杀死
1. 无  普通方式删除进程号对应的进程
2. -9   强制方式删除进程号对应的进程


命令:
ps       -au      显示所有用户通过终端启动的所有进程详细信息
kill      1114     杀死1114进程号,如果这个1114的进程杀不死,用下面这个命令:
kill  -9   1114    强制方式杀死1114进程号

搜索文件内容【grep -n】

语法:grep  [参数]   搜索字符串  文件名
解释:在指定的文件内容中搜索特定的字符串。
1. -n  显示匹配行及行号,大小写敏感
2. -v  显示不匹配行及行号,大小写敏感
3. -i  搜索时不区分大小写,大小写不敏感
命令:
cd  /
grep  aaa  123.txt     在123.txt文件中搜索aaa字符串,大小写敏感,显示搜索到的行
grep  -n  aaa  123.txt  在123.txt文件中搜索aaa字符串,大小写敏感,显示行及行号
grep  -v  aaa  123.txt  在123.txt文件中搜索aaa字符串,大小写敏感,显示没搜索到行
grep  -i   aaa  123.txt  在123.txt文件中搜索aaa字符串,大小写不敏感,显示行
grep  -ni  "Q q"  123.txt  在123.txt文件中搜索Q q字符串,大小写不敏感,
显示行及行号,搜索内容有空格,要加引号。

管道【命令1 | 命令2 】

语法:命令1  | 命令2
解释:一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。
常用的需要使用管道命令有more,grep。

命令:
cd  /
ps  -aux  |  more             分屏显示Linux中所有用户通过端终和非终端启动的所有进程的详细信息
ps  -aux  |  grep  -i   a 
在ps -aux的结果中,搜索字符串a,大小写不敏感,显示对应的行

关机【halt】

语法:halt
解释:正常关机,虚拟机不要使用,一般会死机

重启【reboot】

语法:reboot
解释:正常重新启动

命令:
reboot  正常重新启动。

权限的简介

Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。

d r w x - - x - w x
1 2 3 4 5 6 7 8 9 10
第一个字母为文件类型  ,d为目录即文件夹 ,-为文件

2到4位 rwx 为属主权限 r为可读 即为4 w为可写 即为2 x为可执行 即为1 rwx可写为 7


5到7位 --x 为数组权限 -为不可读 即为0 -为不可写 即为0 x为可执行 即为1 --x可写为 1


8到10位 -wx 为属主权限 -为不可读 即为0 w为可写 即为2 x为可执行 即为1 rwx可写为 3

r w x - - x - w x   可写为713

添加权限

语法:chmod   [a]+[参数]   目录/文件
解释:
+:添加所有用户权限,+和[参数]之间无空格
1. u  作者
2. g  组员
3. o  它人
4. -r  只读
5. -w 只写
6. -x  只执行

命令:
chmod  +x  a.java        添加所有用户对a.java文件的执行权限
chmod  a+x  a.java        添加所有用户对a.java文件的执行权限
chmod  u+x  a.java        添加作者用户对a.java文件的执行权限

修改权限

语法:chmod   [参数]   目录/文件
解释:可以针对不同的用户修改权限
1. u  作者
2. g  组员
3. o  它人
4. -r  只读
5. -w 只写
6. -x  只执行

命令:
chmod  u=rwx , g=rx , o=x  a.java         修改a.java文件的权限信息如下:
                                          作者具有rwx权限,7
                                          组员具有rx权限, 5
                                          其它人具有x权限  1

chmod  751             a.java          功能同上

删除权限

语法:chmod   -[参数]    目录/文件
     change mode
      
解释:
-:删除所有用户权限,-和[参数]之间无空格
1. -r  只读
2. -w 只写
3. -x  只执行

命令:
chmod  -x   a.java         删除所有用户对a.java文件的执行权限

chmod  000             a.java          所有用户对a.java文件的权限都删除
                                       只有root可以修改

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页