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等于--allllls -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 命令保存目录(普通用户就可以读取的命令) /boot 启动目录,启动相关文件 /dev 设备文件保存目录 /etc 配置文件保存目录 /home 普通用户的家目录 /lib 系统库保存目录 /mnt 系统挂载目录 /media 挂载目录 /root 超级用户的家目录 /tmp 临时目录 /sbin 命令保存目录(超级用户才能使用的目录) /proc 直接写入内存的 /sys /usr 系统软件资源目录 /var 系统相关文档内容

注意:根目录下的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中保存的是原文件的相关信息。
若要建立软链接,则源文件一定要写绝对路径,否则就不能正确执行。
硬链接与软链接的区别图,bs为硬链接,csb为软链接

三、文件搜索命令

文件搜索命令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的级别

级别 类型 1 查看命令的帮助 2 查看可被内核调用的函数的帮助 3 查看函数和函数库的帮助 4 查看特殊文件的帮助(主要是/dev目录下的文件) 5 查看配置文件的帮助 6 查看游戏的帮助 7 查看其它杂项的帮助 8 查看系统管理员可用命令的帮助 9 查看和内核相关文件的帮助

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个。

七、其他常用命令

原创粉丝点击