Linux基础
来源:互联网 发布:知君本无邪 编辑:程序博客网 时间:2024/06/14 18:46
Linux发展
Linux起源:Minix 用于教学系统。
Linux分为内核版本和发行版本。
常用的发行版本有:
非图形界面:RedHat(基础功能免费,其他高级服务要收费), CentOS(免费的,现已被RedHat收购), fedaro(收费的,全功能型的)等。
图形界面:Ubantu, debian, KNOPPIX。
由于图形界面不能保证稳定安全性,因此现在常用的是CentOS。开源软件:
Apache:网站服务的搭建软件(你写了一个网页,如何让用户能够访问到你的网页呢,这就是Apache服务器做的事)。
NGINX:同Apache功能,后起之秀。
MySQL,PHP, Pyhon, MongoDB, samba, Ruby, Sphinx等等。
学习Linux,在使用Linux中遇到的问题要即时记下来并记录解决方案。
Linux与windows的区别:
(1)Linux是区分大小写的(字符界面),windows的dos界面不区分大小写;
(2)在Linux中一切内容皆文件,所有内容以文件形式保存,包括硬件;
(3)Windows中是以扩展名作文件类型区分的。而Linux中没有文件扩展名的概念。Linux中使用文件扩展名主要是为了方便管理员的使用。
(4)Windows下的程序是不能直接在Linux中直接安装和运行的。(可以通过在Linux中安装Windows模拟器来运行)格式化的概念
误解:格式化是清空数据的。
格式化的根本目的:写入文件系统。
格式化(高级格式化)又称逻辑格式化,它是根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
FAT16:限制最大只支持2G的文件分区。
FAT32:最大分区大小可达16T,但是限制单个文件最大支持4G的文件分区。
NTFS:windows中最先进的文件系统,支持更大的分区和更大的单个文件。
EXT2、EXT3、EXT4:在linux系统中的文件系统,linux中默认的文件系统为EXT4。
在每个分区中有默认的数据块大小,就是我们存储文件的最小空间,当一个文件的数据块有剩余时,不可以用来储存其他文件。(一般默认4KB数据块,可手动设置为1KB,2KB等)在分区列表中,记录了每个文件的ID(叫做i节点),修改时间,文件权限,文件的保存位置等信息。挂载(类似于windows的盘符)
必须分区:/(根分区)、swap分区(交换分区,又叫虚拟内存,当内存小于等于4G时,设置为2倍内存,当内存大于4G时,设置成和内存一样大。)
推荐分区:/boot(启动分区,要留一定的剩余空间以便操作系统启动,所以最好单独分区出来,并且最好不要随便写数据进去)。
Linux文件权限
-rw-r–r–:共10个字符。
其中第一个字符代表的是文件类型,Linux中共有7种文件类型,为-是代表类型是文件,d代表目录,l 代表软链接文件。其他四种为块设备文件、字符设备文件、套接字文件和管道文件。这四种文件为系统的特殊文件,不需要普通用户操作,因此较少使用。
第2-4个字符:代表所有者的权限;
第5-7个字符:代表所属组的用户的权限;
第8-10个字符:代表其他用户的权限。
u所有者,g所属组,o其他人。
r读, w写, x执行。
新的Linux中为11个字符,-rw-r–r–.,其中 . 代表ACL权限(特殊权限)。
Linux命令详解:
一、命令基本格式
1. 命令提示符
[root@localhost ~]#root 当前登录用户(Linux当中管理员账号是root,而不是Administrator)localhost 代表当前计算机的主机名:类似于windows的计算机名,但在局域网内,windows中不能有相同的计算机名,否则不能通信,而Linux没有此限制。~ 当前所在目录(家目录),对于管理员(超级用户)来说,家目录是/root,对于普通用户而言,家目录是/home/用户名/。# 超级用户的提示符$ 普通用户的提示符
2. 命令格式
命令 [选项] [参数]注意:[]代表可选。个别命令使用不遵循此格式(较少见),当有多个选项时,可以写在一起,简化选项为完整选项,如-a等于--all。ll:ls -l 命令的别名
查询目录中内容:ls
ls [选项] [文件或目录]选项:-a 显示所有文件,包括隐藏文件-l 显示详细信息-d 查看目录属性-h 人性化显示文件大小-i 显示inode
二、文件处理命令
1. 目录处理命令和文件处理命令
建立目录:mkdir
mkdir -p [目录名]-p 递归创建 命令英语愿意:make directories例如:mkdir humanmkdir -p human/boys
切换所在目录:cd
cd [目录] 命令英文愿意:change directory简化操作:cd ~ 进入当前用户的家目录cd cd - 进入上次目录cd .. 进入上一级目录cd . 进入当前目录
相对路径:参照当前所在目录,进行查找。
如: [root@localhost ~]#cd ../usr/local/src/
绝对路径:从根目录开始制定,一级一级递归查找。在任何目录下,都能进入指定位置。
如: [root@localhost ~]#cd /etc/
查询所在目录位置:pwd
pwd命令英文原意:print working directory
删除空目录: rmdir
rmdir [目录名]命令英文原意:remove empty directories(注意只能删除空目录,若目录下有内容,则无法删除)
删除文件或目录: rm
rm -rf [文件或目录]可选选项:-r 删除目录-f 强制,不提问,对于无图形界面的Linux,使用该选项删了后就是删了,很难找回。若只加选项-r,则对该目录下的所有文件都会进行提醒是否删除。一般情况下,不管后面是文件还是目录,都加-r选项。
注意:在windows下的Administrator是表面上的管理员,其权限是有极限的,而Linux的管理员权限是没有限制的,因此在执行删除命令时,一定要小心,在某些条件下,数据不可恢复。
复制命令: cp
cp [选项] [源文件或目录] [目标目录]选项:-r 复制目录-p 连带文件属性复制-d 若源文件是链接文件,则复制链接属性-a 相当于 -pdr(使目标文件与源文件完全一样,包括时间属性、隐藏属性等。)
注意:若目标目录后面不加文件名,则是原名复制;若加文件名,则是改名复制。新复制的文件时间是执行复制命令的时间,若要复制后时间与原来的文件一模一样,则添加-a即可。
剪切或改名命令: mv
mv [原文件或目录] [目标目录]注意:mv命令在剪切目录时和剪切文件时一样,不需要加-r。若原文件和目标文件不在同一个目录下就是剪切,若原文件和目标文件在同一个目录下则是改名。例:mv anaconda-ks.cfg test //将anaconda-ks.cfg改名为test
常用目录的作用
注意:根目录下的bin和sbin,usr目录下的bin和sbin这四个目录都是用来保存系统命令的。sbin目录只有超级用户可访问。Linux是严谨的操作系统,因此不要随便在某个目录下存放东西,可以放在家目录root或home,以及tmp目录下随便放内容。
2. 链接命令
链接命令: ln
ln -s [原文件] [目标文件]命令英文原意:link功能描述:生成链接文件选项: -s 创建软链接
硬链接特征:
(1)拥有相同的 i 节点和存储block块,可以看做是同一个文件;
(2)可通过 i 节点识别;
(3)不能跨分区;
(4)不能针对目录使用。
注意:硬链接指的是原文件和目标文件访问搜索的是同一个 i 节点,搜索的数据是同一个block,因此删除任意一个另外一个都能正常使用,修改任意一个另外一个文件也会跟着改变。
软链接特征:
(1)类似于Windows快捷方式;
(2)软链接拥有自己的 i 节点和block块,但是数据块中只保存原文件的文件名和 i 节点号,并没有实际的文件数据;
(3)lrwxrwxrwx l 软链接
软链接文件的权限都为rwxrwxrwx
(4)修改任意文件,另一个都改变;
(5)删除原文件,软链接不能使用。
注意:创建一个软链接时,会创建一个自己的 i 节点和自己block,但是它的block中保存的是原文件的相关信息。
若要建立软链接,则源文件一定要写绝对路径,否则就不能正确执行。
三、文件搜索命令
文件搜索命令locate
locate 文件名// 在后台数据库中按文件名搜索,搜索速度更快。locate命令搜索的后台数据库路// 径为(数据库默认为1天一次更新): var/lib/mlocate更新数据库命令:updatedb
优点:速度快;缺点:只可以按文件名来搜索。
Note: 在centOS中执行locate命令出现 locate : command not found 问题,解决方案见博客:
http://blog.csdn.net/vonzhoufz/article/details/8762865
/etc/updatedb.conf 中会指定不搜索某些目录,因此在默写路径下新增文件后,updatedb仍不能搜索到该文件。(该配置文件的筛选规则同样适用于whereis 和 which命令)
配置文件信息如下:PRUNE_BIND_MOUTS = "yes"(开启搜索限制)PRUNEFS = (搜索时,不搜索的文件系统)PRUNENAMES = (搜索时,不搜索的文件类型)PRUNEPATHS = (搜索时,不搜索的路径)
命令搜索命令whereis和which
whereis 命令名# 搜索(系统)命令所在路径及帮助文档所在位置选项:-b 只查找可执行文件-m 只查找帮助文件
which 命令名# 搜索命令所在路径及命令别名(不是所有命令都有别名)
注意:某些命令是不能通过whereis 和 which命令找到,如Linux Shell的内置命令 cd,它不需要独立的可执行文件。即通过whereis 和which命令能搜索的命令都是外部安装的外来命令,whereis和which搜索命令的路径是由PATH决定的。
PATH环境变量
PATH环境变量:定义系统搜索命令的路径,使用冒号进行分隔。Windows也通过PATH来设置环境变量,若在windows的DOS下执行命令,系统会在PATH中搜索命令的所在位置,若要使用的命令不使用绝对路径就能执行,则必须将命令的路径添加到环境变量中。
[root@localhost ~]# echo $PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/yh/.local/bin:/home/yh/bin
文件搜索命令find
find [搜索范围] [选项] [搜索条件]# 搜索文件find / -name install.log# 避免大范围搜索,会非常耗费系统资源# find是在系统当中搜索符合条件的文件名(完全匹配)。如果需要模糊匹配,则使用通配符匹配,通配符是完全匹配。Linux中的通配符(在使用通配符时,需要加""将字符串括起来):* 匹配任意内容? 匹配任意一个字符[] 匹配任意一个中括号内的字符例如:find /root -name "ab[cd]" :搜索文件名叫abc或abd的文件。
find /root -iname install.log# 文件名不区分大小写find /root -user root# 按照所有者搜索,上面的命令表示在/root目录下搜索所有者是root的文件。find /root -nouser# 查找没有所有者的文件,在Linux系统中没有所有者的文件是垃圾文件,应手工清楚。但有两种特殊情况:(1)由Linux内核产生的某些文件(proc、sys下的文件,不要去处理这些文件);(2)外来文件,例如从windows中拷贝到Linux系统的文件,windows忽略所有者的概念。
find /var/log/ -mtime +10# 查找/var/log/目录下10天前修改的文件-10 10天内修改文件10 10天当天修改的文件+10 10天前修改的文件atime 表示文件访问时间ctime 表示改变文件属性的时间mtime 表示修改文件内容的时间find . -size 25k# 表示查找当前目录(.)下文件大小时25KB的文件-25k 小于25KB的文件25k 等于25KB的文件+25k 大于25KB的文件若要搜索MB单位的文件,则为25M,注意M为大写,k为小写,搜索时必须带单位,若不带单位,则搜索时为数字大小乘以一个扇区的大小(512Bytes)。find . -inum 262422# 已知i节点号,在当前目录下查找i节点是262422的文件find /etc -size +20k -a -size -50k# 查找/etc目录下,大于20KB并且小于50KB的文件。(多条件查询)-a and 逻辑与,两个条件都满足-o or 逻辑或,两个条件满足一个即可find /etc -size +20k -a -size 50k -exec ls -lh {} \;# 查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息# -exec/ -ok 命令 {} \; 对搜索结果执行操作,即-exec前面的命令执行结果交给从-exec后面到{} \;(后面四个字符为使用-exec的标准格式) 之间的命令来操作。例如: find /root -inum 262421 -exec rm -rf {} \;# 查找节点号为262421的文化,找到后删除它。
字符串搜索命令grep
grep [选项] 字符串 文件名# 在文件当中匹配符合条件的字符串-i 忽略大小写-v 排除指定字符串例如:grep "size" anaconda-ks.cfg# 在anaconda-ks.cfg文件中搜索包含关键字size的行。
find命令与grep命令的区别:
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。
通用规则: 搜索文件的文件名时使用通配符,搜索文件中的数据时使用正则表达式。
四、帮助命令
帮助命令man
man 命令# 获取指定命令的帮助在manuals里面,可以像使用vim编辑器一样,使用“/字符串”进行字符串搜索,按n表示跳转到下一个符合条件的字符串,shift+n表示跳转到上一个符合条件的字符串。man -f 命令 相当于 whatis 命令# 查看命令拥有哪个级别的帮助man 级别 命令# 查看某个特定级别的命令,如: man 4 nullman -k 命令 相当于 apropos 命令# 查看和命令相关的所有帮助,如:apropos passwd
man的级别
man 命令打开帮助文档后,在左上角括号里有级别信息。
其他帮助命令
选项帮助
命令 --help# 获取命令选项的帮助例如: ls --help
shell内部命令帮助
help shell内部命令# 获取shell内部命令的帮助例如:whereis cd# 确定是否是shell内部命令,只要whereis找不到执行文件就是内部命令,否则就不是。help cd# 获取内部命令帮助
详细命令帮助info
info 命令进入详细的命令说明文档后按:回车: 进入子帮助页面(带有*号标记)u: 进入上层页面n: 进入下一个帮助小节p: 进入上一个帮助小节q: 退出
五、压缩与解压缩命令
Linux中常用的压缩格式:.zip .gz .bz2 .tar.gz .tar.bz2(这两个最常用)。
.zip格式压缩
zip 压缩文件名 源文件# 压缩文件zip -r 压缩文件名 源目录# 压缩目录unzip 压缩文件# 解压缩.zip文件
注意:压缩文件名不一定需要写压缩扩展名,但是为了便于识别,最好是写上对应的压缩格式扩展名。windows和linux中的.zip格式是通用的。windows中的.rar文件是不能在linux中解压缩的。
.gz格式压缩
gzip 源文件# 压缩为.gz格式的压缩文件,源文件会消失gzip -c 源文件 > 压缩文件# 压缩为.gz格式,源文件保留gzip -r 目录# 压缩目录下所有的子文件,但是不能压缩目录gzip -d 压缩文件# 解压缩文件gunzip 压缩文件# 解压缩文件
.bz2格式压缩
bzip2 源文件# 压缩为.bz2格式,不保留源文件bzip2 -k 源文件# 压缩之后保留源文件bzip2 -d 压缩文件# 解压缩,-k保留压缩文件bunzip2 压缩文件# 解压缩,-k保留压缩文件
注意:bzip2命令不能压缩目录。
打包命令tar
tar -cvf 打包文件名 源文件选项: -c: 打包 -v: 显示过程 -f: 指定打包后的文件名tar -xvf 打包文件名选项: -x: 解打包
注意:先使用tar命令将文件进行打包,然后再使用gzip或bzip2命令进行压缩。这样解决了gzip和bzip2不能直接压缩目录的问题。
.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式。tar -zcvf 压缩包名.tar.gz 源文件选项: -z: 压缩为.tar.gz格式需要压缩多个文件时,多个源文件以空格分隔。tar -zxcf 压缩包名.tar.gz选项: -x: 解压缩.tar.gz格式tar -zxcf 压缩包名.tar.gz -C 解压缩位置# 将压缩包解压到指定的解压缩位置
.tar.bz2压缩格式
tar -jcvf 压缩报名.tar.bz2 源文件选项: -j: 压缩为.tar.bz2格式tar -jxcf 压缩包名.tar.bz2选项: -x: 解压缩为.tar.bz2格式
六、关机和重启命令
1. shutdown命令
shutdown [选项] 时间选项:-c: 取消前一个关机命令-h: 关机-r: 重启shutdown -r now
注意:在服务器上做关机重启操作时一定要格外小心,先关闭服务器上的服务,再进行关机重启操作。(服务器一直高速运转,因此不当的关机重启会造成硬盘损坏,数据库丢失,系统崩溃等等)。使用shutdown命令即可,不要使用其他命令。(其他命令不安全)
2. 其他关机命令
haltpoweroff init 0
3. 其他重启命令
reboot (reboot命令相对安全,可以使用,但init 6命令不安全,不要使用。了解有这些命令即可。)init 6
4. 系统运行级别
0 关机(不能设为系统默认级别)1 单用户2 不完全多用户,不含NFS服务3 完全多用户4 未分配5 图形界面6 重启(不能设为系统默认级别)init 运行级别: 进入到对应的运行级别。如init 5 进入图形界面,前提是系统安装了图形界面。runlevel: 查询系统运行级别(N表示null)N 3表示从null进入3级别cat /etc/inittab: 修改系统默认运行级别id:3:initdefault:
cat命令
cat主要有三大功能:
1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $cat file1 file2 > file参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v 或 --show-nonprinting例:把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里cat -n textfile1 > textfile2把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。cat -b textfile1 textfile2 >> textfile3把test.txt文件扔进垃圾箱,赋空值test.txtcat /dev/null > /etc/test.txt
参考链接:https://www.cnblogs.com/perfy/archive/2012/07/23/2605550.html
5.退出登录命令(在windows中叫注销)
logout:管理服务器时每次管理完应该养成退出登录的习惯。
Linux默认同时能远程登录256个用户,最大可达20000个。
七、其他常用命令
- linux基础
- Linux基础
- Linux基础
- Linux 基础
- linux基础
- Linux 基础
- Linux基础
- Linux 基础
- linux基础
- Linux基础
- Linux 基础
- Linux 基础
- Linux基础
- linux基础
- Linux 基础
- linux基础
- linux基础
- linux基础
- 1074. 宇宙无敌加法器(20)
- 解析php中$_REQUEST的用法
- 二叉树专题-lintcode非递归遍历与总结
- git rebase 用法简介
- pygdal-基础操作
- Linux基础
- 多功能噪音消除器支持多种场景模式
- The servlets named [] and [] are both mapped to the url-pattern [/] which is not permitted
- 如何下载Spring各大版本?
- Python Requests实例,查询成绩
- Oracle某用户下的某个表如何恢复到过去某个时刻
- 查找算法之顺序搜索
- jquery学习笔记
- Python3 Anaconda3下import cv2错误解决方案