首页 > 代码库 > Linux基础一
Linux基础一
:
Linux中所有内容都是以“文件”形式存储的;
压缩包:.gz/bz2/.tar.bz2/.tgz
二进制软件包:.rpm
网页文件:.html/.php
脚本文件:.sh
配置文件:.conf
linux中是不靠扩展名区分文件类型的、是靠权限来区分文件的;
windows下的程序是无法直接安装在linux中的、除非在linux中安装模拟器之后才可以安装windows程序/软件;
:
linux字符界面的优势:
1.字符界面占用系统资源少(节省系统资源)
2.字符界面减少了出错、被攻击的可能性(容错性高)
:
1.分区类型:
①主分区:最多只能有4个;
②扩展分区:
最多只能有一个;
主分区加扩展分区最多有4个;
不能写入数据,只能包含逻辑分区;
③逻辑分区:
逻辑分区盘符一定从5开始;
2.格式化:
格式化的根本目的是为了写入文件系统、把分区划分为等大小的数据块;
划分分区列表(分区列表包含了多个数据块):
分区列表包含:ID号、修改时间、权限
文件系统:
FAT16\最大分区支持2G
FAT32\最大分区空间16TB,单个文件不能超过4G;
NTFS\
EXT2\
EXT3\
EXT4\centos6.3默认支持的文件系统;
:
Linux硬盘分区完整过程:
1分区:为硬盘划分逻辑分区;
2格式化:写入文件系统;
3分区设备文件名:给每个分区定义设备文件名;
4分配盘符:给每个分区分配挂载点;
硬件设备文件名:/dev/目录
IED硬盘
/dev/hd[a-d]
SCSI/SATA/USB硬盘 /dev/sd[a-p]
光驱 /dev/cdrom&/dev/hdc
软盘 /dev/fd[0-1]
打印机(25针) /dev/lp[0-2]
打印机(USB) /dev/usb/lp[0-15]
鼠标 /dev/mouse
键盘 /dev/stdin
3.分区设备文件名:
设备文件名:
/dev/hda1(IDE硬盘接口)
"a"代表第一块IDE硬盘、"1"代表第一个分区;
IDE硬盘已逐渐被淘汰
/dev/sda1(SCSI硬盘接口、SATA硬盘接口)
"a"代表第一块SCSI/SATA硬盘、"1"代表第一个分区;
SCSI硬盘
SATA硬盘/串口硬盘
4.分配盘符:
主分区:1-4;
逻辑分区:从5开始;
Linux中是用“目录”作为盘符,且称之为“挂载点”
必须分区:
1. /(根分区)
2.swap分区/交换分区/虚拟内存
分配大小:内存≤4GB,swap分区为内存的2倍,当内存>4GB,则swap分区则和内存大小一致即可)
推荐分区:
1./boot(启动分区,200MB)
:
Linux中的管理员账户为"root",不是"administrator"
在创建用户时,会自动生成一个家目录,超级用户root的家目录就在"/root",其他普通用户的家目录都在"/home"下的二级目录,目录名就是用户名;
命令格式:命令 [选项] [参数] / 个别命令使用不遵循此格式,当有多个选项时,可以写在一起;
Linux中以"."开头的文件是隐藏文件;ls -a可查看隐藏文件;
:
1.目录/文件处理命令:
a.建立目录:
mkdir (make directories)
mkdir -p
[目录名]
-p 递归创建
b.删除目录:
删除空目录:
rmdir(remove empty directories)
rmdir [目录名]
删除文件/目录:
rm (remove0
rm -rf [目录名/文件名]
-r :删除目录
-f(force):强制删除
c.切换目录:
cd(change
directory)
①cd [目录]
②cd ~ :进入当前用户的家目录
③cd
:进入当前用户的家目录
④cd - :进入上次目录
⑤cd .. :进入上一级目录
⑥cd . :进入当前目录
d.相对路径和绝对路径:
①相对路径:参照当前所在目录,进行查找
②绝对路径:从根目录开始指定,一级一级递归查找。
pwd(print working directory):显示当前目录所在位置;
e.复制
cp(copy)
cp [选项] [原文件或目录] [目标目录]
-r复制目录
-p连带文件属性复制
-d若原文件是链接文件,则复制链接属性
-a相当于-pdr
f.剪切/改名
mv(move)
mv [原文件或目录] [目标目录]
g.常见目录作用
①/:根目录;
②/bin:命令保存目录(普通用户就可以读取的命令);
③/sbin:命令保存目录(超级用户才能使用的目录);
④/usr:系统软件资源目录;
/usr/bin/系统命令(普通用户);
/usr/sbin/系统命令(超级用户);
⑤/boot:启动目录,系统启动相关文件;
⑥/dev:设备文件保存目录;
⑦/etc:系统配置文件保存目录;
⑧/root:超级用户的家目录;
⑨/home:普通用户的家目录;
⑩/lib:系统库保存目录;
/mnt:系统挂载目录;
/media:挂载目录;
/tmp:临时目录;
/proc:直接写入内存的;
/sys:直接写入内存的;
/proc&/sys目录不能直接操作,该目录保存的是内存过载点
/var:系统相关文档内容;
2.链接:
ln(link):生成链接文件;
ln -s [原文件]
[目标文件]
-s(soft):创建软链接
不加-s创建的是硬链接
硬链接和软链接
硬链接:
1、拥有相同的i(inode)节点和存储block块,可看做同一个文件;
2、可通过i节点识别;
3、不能跨分区;
4、不能针对目录使用;
软链接:
1、类似windows快捷方式;
2、软件拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;
3、lrwxrwxrwx l 软链接;
软链接文件权限都为rwxrwxrwx;
4、修改任意文件,另一个文件都改变;
5、删除原文件,软链接将不能使用;
6、创建软链接的时,必须使用绝对路径;
:
文件搜索命令 locate
locate
文件名
在locate数据库中按“文件名”搜索,搜索速度快;
/var/lib/mlocate
#locate命令所搜索的后台数据库,每天更新一次;不同版本的linux中的locate数据库名称有差异;
updatedb
强制/手动更新locate数据库
locate/whereis/which遵守updatedb.conf文件中的各项条件限制;
/etc/updatedb.conf配置文件;
PRUNE_BIND_MOUNTS="yes/no" //开启/关闭搜索限制
PRUNEFS="*" //搜索时,不搜索的文件系统;
PRUNENAMES="*" //搜索时,不搜索的文件类型;
PRUNEPATHS="*" //搜索时,不搜索的路径;
:
命令搜索命令 whereis/which
whereis 命令名 //搜索系统命令所在路径及帮助文档所在位置;
选项:
-b:只查找可执行文件;
-m:只查找帮助文件;
which 文件名 //搜索系统命令所在位置及别名;
PATH环境变量:定义的是系统搜索命令的路径;
:
find [搜索范围] [搜索条件]
#搜索文件
#避免大范围搜索,会非常耗费系统资源;
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配;
linux中主要的通配符:
* :匹配任意多个内容
? :匹配任意一个字符
[] :匹配任意一个中括号内的字符
find选项
-name:根据文件名进行查找;
-iname:不区分大小写;
-user:根据所有者进行查找;
-nouser:查找没有所有者的文件;
-atime:文件访问时间;
-ctime:改变文件属性;
-mtime:修改文件内容;
-10/10/+10:十天内/十天当天/10天前
-size:按照文件大小查找;
-25k/25k/+25k:小于25k/等于25k/大于25k; k必须是小写,M必须是大写;
-inum:根据文件的i节点进行查找;
-a(and):逻辑与,多个条件同时满足;
-o(or):逻辑或,多个条件满足其中一个即可;
-exec命令{}\; :对搜索接口执行第二次操作;
:
grep [选项] "字符串" 文件名
#子文件当中匹配符合条件的字符串;
选项:
-i 忽略大小写;
-v 排除指定字符串/反向查找;
find与grep的区别
find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配;
:
帮助命令:man
man
[命令] :#即可查询某个命令的详细信息
[命令]
--help :#获取命令选项的帮助;
shell内部命令帮助:
help
shell :#只能获取shell内部命令的帮助;
确认是否为shell内部命令的方式:
whereis
[命令] //#查询结果如若没有执行文件则为内部命令;
help
[命令] //#只能获取内部命令的帮助;
详细命令帮助info:
info
[命令]
- 回车://进入子帮助页面(带有*号标记)
- u ://进入上层页面;
- n ://进入下一个帮助小节;
- p ://进入上一个帮助小节;
- q ://退出;
:
压缩与解压缩命令:
1、常用压缩格式: .zip/.gz/.bz2
(1).zip:
.zip格式压缩:
①zip 压缩文件名.zip 源文件 //压缩文件;
②zip -r 压缩文件名 源目录 //压缩目录;
.zip格式解压缩:
①unzip 压缩文件 //解压缩.zip文件;
(2).gz:
.gz格式压缩:
①gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失;
②gzip -c 源文件 > 压缩文件名.gz
//压缩为.gz格式,源文件保留;
③gzip -r 目录 //压缩目录下所有的子文件,但不能压缩目录;
.gz格式解压缩:
①gzip -d 压缩文件
//解压缩文件;
②gzip -r 压缩文件 //解压目录;
③gunzip 压缩文件 //解压缩文件;
(3)
.bz2:
.bz2格式压缩:
!!bzip2命令不能压缩目录
①bzip2 源文件 //压缩为.bz2格式,不保留源文件;
②bzip2 -k 源文件 //压缩之后保留源文件;
.bz2格式解压缩:
①bzip2 -d 压缩文件 //解压缩,-k保留压缩文件;
②bunzip2 压缩文件
//解压缩,-k保留压缩文件;
2、常用压缩格式: .tar.gz/.tar.bz2
tar //解/打包命令
tar -cvf 打包文件名.tar 源文件
-c:打包;
-v:显示过程;
-f:指定打包后的文件名;
tar -xvf 打包文件名
-x:解包
tar [参数] 打包文件名.tar.* 源文件 -C
[路径] //指定解压存储路径;
如果需将多个文件打包,则直接在源文件后用空格连接即可;
例: tar -zcvf
打包文件名 源文件1 源文件2 源文件3
若只查看不解压.tar/.tar.*文件,则使用-t选项即可;
-t:显示.tar/.tar*文件,不进行解压操作;
其实.tar.gz/.tar.bz2格式是先打包为.tar格式,再压缩为.gz/.bz2格式;
.tar.gz:
tar -zcvf 压缩包名.tar.gz 源文件
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
-x:解压缩.tar.gz格式
.tar.bz2:
tar -jcvf 压缩包名.tar.bz2 源文件
-j:压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
-x:解压缩.tar.bz2格式
linux最常用的压缩格式:.tar.gz/.tar.bz2
:
推荐关机使用shutdown!!!!!!!
shutdown [选项] 时间
选项:
①-c:取消前一个关机命令;
②-h:关机
③-r:重启
时间:
①now //现在
②时:分
其他关机命令:
①halt
②poweroff
③init
0
以上三个关机命令不建议使用,相对shutdown,shutdown更为安全;
其他重启命令:
①reboot
②init
6
系统运行级别:
0 //关机
1 //单用户(类似windows安全模式)
2 //不完全多用户,不含NFS服务(字符界面,不包含文件共享服务)
3 //完全多用户(字符界面)
4 //未分配
5 //图形界面
6 //重启
runlevel //查询上次及当前的系统级别;
vim /etc/inittab //系统级别配置文件;
id:3:initdefault: //修改系统默认运行级别(id后的数字则为系统级别)
logout //退出登录命令(每次使用后,建议退出当前用户,避免他人因账户占用无法使用!与windows中的注销相似!)
:
挂载命令:
mount //查询系统中已挂载的设备;
mount
-a //根据配置文件/etc/fstab内容,自动重新再挂载;
外接设备不建议设为自动挂载;
挂载命令格式:
mount [-t
文件系统] [-o 特殊选项] 设备文件名 挂载点;
/dev/sr0是linux中光盘的设备文件名,而/dev/cdrom则是/dev/sr0的软链接,建议挂载时使用/dev/sr0;
-t 文件系统 //加入文件系统该类型来指定挂载的类型,可以为ext3、ext4、iso9660等文件系统;
linux标准文件系统ext3/ext4,centos6.0以后默认文件系统都是ext4、光盘的默认文件系统为:iso9660;
-o 特殊选项 //可以指定挂载的额外选项;
umount
设备文件名或挂载点 //取消挂载/卸载 命令;
当在linux中,挂载U盘/光盘/移动硬盘类似的外接设备后,当不使用时、需要将挂载点卸载掉!
挂载U盘:
fdisk
-l //查看系统当前已识别的硬盘;
mount -t
vfat 设备文件名 挂载点 //文件系统vfat其实就是windows中的FAT32(此种文件系统类型几乎已经淘汰,因为该文件系统最多识别4G;linux默认是
支持NTFS文件系统的(如果需要linux系统识别NTFS,要么重新编译系统内核,要么下载安装“NTFS-3G”该软件安装之后系统则可识别
NTFS文件系统;
:
用户登录查看:
1、查看登录信息:
w [用户名]
命令输出:
①USER //登陆的用户名;
②TTY //登录终端;tty1是本地登陆,不会有登录的IP地址;pts/0则是第一个远程登陆,会存在登录的IP地址;
③FROM //从哪个IP地址登录;
④LOGIN@ //登陆时间;
⑤IDLE //用户闲置时间;
⑥JCPU //指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
⑦PCPU //是指当前进程所占用的时间;
⑧WHAT //当前正在运行的命令;
who [用户名]
命令输出:
①- 用户名;
②- 登陆终端;
③-登录时间(登录来源IP地址);
2、查询当前登录和过去登录的用户信息:
last
last命令默认是读取/var/log/wtmp文件数据;
命令输出:
①- 用户名;
②- 登录终端;
③- 登录IP;
④- 登录时间;
⑤- 退出时间(在线时间);
3、查看所有所有用户的最后一次登录时间:
lastlog
lastlog命令默认是读取/var/log/lastlog文件内容;
命令输出:
①- 用户名;
②- 登陆终端;
③- 登录IP;
④- 最后一次登录时间;
bandicam
:
Shell概述:
echo
$shell
/etc/shells //shell配置文件;
:
echo输出命令
echo [选项]
[输出内容]
-e //支持反斜线控制的字符转换;
控制字符:
\a //输出警告音;
\b //退格键,也就是向左删除键;
\n //换行符;
\r //回车键;
\t //制表符,也就是Tab键;
\v //垂直制表符;
\0nnn //按照八进制ASCLL码表输出字符。其中0位数字零,nnn是三位八进制数;
\xhh //按照十六进制ASCLL码表输出字符。其中nn是两位十六进制数;
\e[1;31m //开启颜色显示;
30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色;
\e[0m //结束颜色显示;
shell脚本执行:
赋予执行权限,直接运行:
chmod 755 *.sh
./*.sh
通过Bash调用执行脚本
bash *.sh
:
Bash的基本功能:
1、别名:
①alias //查看系统中所有的命令别名;
②alias 别名 =
‘原命令‘ //设定命令别名(临时生效,一旦重启则失效;
③vim
~/.bashrc //将别名写入环境变量配置文件(永久生效)
④source
~/.bashrc //立即调用该文件,使其立即生效;
⑤unalias 别名 //删除别名;
2、常用快捷键:
①ctrl+c //强制终止当前命令
②ctrl+l //清屏
③ctrl+a //光标移动到命令行首
④ctrl+e //光标移动到命令行尾
⑤ctrl+u //从光标所在位置删除到行首
⑥ctrl+z //把命令放入后台
⑦ctrl+r //在历史命令中搜索
:
历史命令:
history
[选项] [历史命令保存文件]
①-c //清空历史命令;
②-w //把缓存中的历史命令写入历史命令保存文件~/.bash_history
③历史命令默认会保存1000条,可在环境变量配置文件/etc/profile内HISTSIZE=1000处进行修改;
历史命令的调用:
①使用 ↑↓ 调用以前的历史命令;
②使用 !n 重复执行第n条历史命令;
③使用 !! 重复执行上一条命令;
④使用 !字 串 重复执行最后一条以该字串开头的命令;
:
1、输出重定向:
标准输出重定向:
①[命令] >
[文件] //以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中;
②[命令] >>
[文件] //以追加的方式,把命令的正确输出 输出到指定的文件或设备当中;
标准错误输出重定向:
①[错误命令]
2>[文件] //以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中;(>后没有空格)
②[错误命令]
2>>[文件] //以追加的方式,把命令的错误输出
输出到指定的文件或设备当中;(>>后没有空格)
正确输出和错误输出同时保存:
①[命令] > [文件]
2>&1 //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;
②[命令] >> [文件]
2>&1 //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;
③[命令]
&>[文件] //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;(>后没有空格)
④[命令]
&>>[文件] //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;(>>后没有空格)
⑤[命令] >> [文件1]
2>>[文件2] //把正确的输出追加到文件1中,把错误的输出追加到文件2中;(2>>后没有空格)
2、输入重定向:
[命令]<[文件] //把文件作为命令的输入;
[命令]<<[标识符] //标识符把标识符质检内容作为命令的输入;
wc [选项]
[文件名]
选项:
①-c //统计字节数;
②-w //统计单词数;
③-l //统计行数;
:
1、多命令顺序执行:
;(命令1
;命令2) //多个命令顺序执行,命令之间没有任何逻辑联系;
&&(命令1&&命令2) //逻辑与;当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行;
||(命令1||命令2) //逻辑或;当命令1执行不正确,则命令2才会执行。当命令1正确执行,则命令2不会执行;
2、管道符:
|(命令1 |
命令2) //命令1的正确输出作为命令2的操作对象;
:
1、通配符:
? //匹配一个任意字符;
* //匹配0个或任意多个任意字符,也就是可以匹配任何内容;
[] //匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c;
[-] //匹配中括号中任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字符。
[^] //逻辑非;表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。
2、Bash中其他特殊符号:
‘‘ //单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
"" //双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令
”和“转义符”的特殊含义。
`` //反引号。反引号括起来的内容是系统命令,在Bash中会先运行它、和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
$() //和反引号作用一样,用来引用系统命令;
# //在Shell脚本中,#开头的行代表注释;
$ //用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\ //转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量使用;
:
Linux中所有内容都是以“文件”形式存储的;
压缩包:.gz/bz2/.tar.bz2/.tgz
二进制软件包:.rpm
网页文件:.html/.php
脚本文件:.sh
配置文件:.conf
linux中是不靠扩展名区分文件类型的、是靠权限来区分文件的;
windows下的程序是无法直接安装在linux中的、除非在linux中安装模拟器之后才可以安装windows程序/软件;
:
linux字符界面的优势:
1.字符界面占用系统资源少(节省系统资源)
2.字符界面减少了出错、被攻击的可能性(容错性高)
:
1.分区类型:
①主分区:最多只能有4个;
②扩展分区:
最多只能有一个;
主分区加扩展分区最多有4个;
不能写入数据,只能包含逻辑分区;
③逻辑分区:
逻辑分区盘符一定从5开始;
2.格式化:
格式化的根本目的是为了写入文件系统、把分区划分为等大小的数据块;
划分分区列表(分区列表包含了多个数据块):
分区列表包含:ID号、修改时间、权限
文件系统:
FAT16\最大分区支持2G
FAT32\最大分区空间16TB,单个文件不能超过4G;
NTFS\
EXT2\
EXT3\
EXT4\centos6.3默认支持的文件系统;
:
Linux硬盘分区完整过程:
1分区:为硬盘划分逻辑分区;
2格式化:写入文件系统;
3分区设备文件名:给每个分区定义设备文件名;
4分配盘符:给每个分区分配挂载点;
硬件设备文件名:/dev/目录
IED硬盘
/dev/hd[a-d]
SCSI/SATA/USB硬盘 /dev/sd[a-p]
光驱 /dev/cdrom&/dev/hdc
软盘 /dev/fd[0-1]
打印机(25针) /dev/lp[0-2]
打印机(USB) /dev/usb/lp[0-15]
鼠标 /dev/mouse
键盘 /dev/stdin
3.分区设备文件名:
设备文件名:
/dev/hda1(IDE硬盘接口)
"a"代表第一块IDE硬盘、"1"代表第一个分区;
IDE硬盘已逐渐被淘汰
/dev/sda1(SCSI硬盘接口、SATA硬盘接口)
"a"代表第一块SCSI/SATA硬盘、"1"代表第一个分区;
SCSI硬盘
SATA硬盘/串口硬盘
4.分配盘符:
主分区:1-4;
逻辑分区:从5开始;
Linux中是用“目录”作为盘符,且称之为“挂载点”
必须分区:
1. /(根分区)
2.swap分区/交换分区/虚拟内存
分配大小:内存≤4GB,swap分区为内存的2倍,当内存>4GB,则swap分区则和内存大小一致即可)
推荐分区:
1./boot(启动分区,200MB)
:
Linux中的管理员账户为"root",不是"administrator"
在创建用户时,会自动生成一个家目录,超级用户root的家目录就在"/root",其他普通用户的家目录都在"/home"下的二级目录,目录名就是用户名;
命令格式:命令 [选项] [参数] / 个别命令使用不遵循此格式,当有多个选项时,可以写在一起;
Linux中以"."开头的文件是隐藏文件;ls -a可查看隐藏文件;
:
1.目录/文件处理命令:
a.建立目录:
mkdir (make directories)
mkdir -p
[目录名]
-p 递归创建
b.删除目录:
删除空目录:
rmdir(remove empty directories)
rmdir [目录名]
删除文件/目录:
rm (remove0
rm -rf [目录名/文件名]
-r :删除目录
-f(force):强制删除
c.切换目录:
cd(change
directory)
①cd [目录]
②cd ~ :进入当前用户的家目录
③cd
:进入当前用户的家目录
④cd - :进入上次目录
⑤cd .. :进入上一级目录
⑥cd . :进入当前目录
d.相对路径和绝对路径:
①相对路径:参照当前所在目录,进行查找
②绝对路径:从根目录开始指定,一级一级递归查找。
pwd(print working directory):显示当前目录所在位置;
e.复制
cp(copy)
cp [选项] [原文件或目录] [目标目录]
-r复制目录
-p连带文件属性复制
-d若原文件是链接文件,则复制链接属性
-a相当于-pdr
f.剪切/改名
mv(move)
mv [原文件或目录] [目标目录]
g.常见目录作用
①/:根目录;
②/bin:命令保存目录(普通用户就可以读取的命令);
③/sbin:命令保存目录(超级用户才能使用的目录);
④/usr:系统软件资源目录;
/usr/bin/系统命令(普通用户);
/usr/sbin/系统命令(超级用户);
⑤/boot:启动目录,系统启动相关文件;
⑥/dev:设备文件保存目录;
⑦/etc:系统配置文件保存目录;
⑧/root:超级用户的家目录;
⑨/home:普通用户的家目录;
⑩/lib:系统库保存目录;
/mnt:系统挂载目录;
/media:挂载目录;
/tmp:临时目录;
/proc:直接写入内存的;
/sys:直接写入内存的;
/proc&/sys目录不能直接操作,该目录保存的是内存过载点
/var:系统相关文档内容;
2.链接:
ln(link):生成链接文件;
ln -s [原文件]
[目标文件]
-s(soft):创建软链接
不加-s创建的是硬链接
硬链接和软链接
硬链接:
1、拥有相同的i(inode)节点和存储block块,可看做同一个文件;
2、可通过i节点识别;
3、不能跨分区;
4、不能针对目录使用;
软链接:
1、类似windows快捷方式;
2、软件拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;
3、lrwxrwxrwx l 软链接;
软链接文件权限都为rwxrwxrwx;
4、修改任意文件,另一个文件都改变;
5、删除原文件,软链接将不能使用;
6、创建软链接的时,必须使用绝对路径;
:
文件搜索命令 locate
locate
文件名
在locate数据库中按“文件名”搜索,搜索速度快;
/var/lib/mlocate
#locate命令所搜索的后台数据库,每天更新一次;不同版本的linux中的locate数据库名称有差异;
updatedb
强制/手动更新locate数据库
locate/whereis/which遵守updatedb.conf文件中的各项条件限制;
/etc/updatedb.conf配置文件;
PRUNE_BIND_MOUNTS="yes/no" //开启/关闭搜索限制
PRUNEFS="*" //搜索时,不搜索的文件系统;
PRUNENAMES="*" //搜索时,不搜索的文件类型;
PRUNEPATHS="*" //搜索时,不搜索的路径;
:
命令搜索命令 whereis/which
whereis 命令名 //搜索系统命令所在路径及帮助文档所在位置;
选项:
-b:只查找可执行文件;
-m:只查找帮助文件;
which 文件名 //搜索系统命令所在位置及别名;
PATH环境变量:定义的是系统搜索命令的路径;
:
find [搜索范围] [搜索条件]
#搜索文件
#避免大范围搜索,会非常耗费系统资源;
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配;
linux中主要的通配符:
* :匹配任意多个内容
? :匹配任意一个字符
[] :匹配任意一个中括号内的字符
find选项
-name:根据文件名进行查找;
-iname:不区分大小写;
-user:根据所有者进行查找;
-nouser:查找没有所有者的文件;
-atime:文件访问时间;
-ctime:改变文件属性;
-mtime:修改文件内容;
-10/10/+10:十天内/十天当天/10天前
-size:按照文件大小查找;
-25k/25k/+25k:小于25k/等于25k/大于25k; k必须是小写,M必须是大写;
-inum:根据文件的i节点进行查找;
-a(and):逻辑与,多个条件同时满足;
-o(or):逻辑或,多个条件满足其中一个即可;
-exec命令{}\; :对搜索接口执行第二次操作;
:
grep [选项] "字符串" 文件名
#子文件当中匹配符合条件的字符串;
选项:
-i 忽略大小写;
-v 排除指定字符串/反向查找;
find与grep的区别
find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配;
:
帮助命令:man
man
[命令] :#即可查询某个命令的详细信息
[命令]
--help :#获取命令选项的帮助;
shell内部命令帮助:
help
shell :#只能获取shell内部命令的帮助;
确认是否为shell内部命令的方式:
whereis
[命令] //#查询结果如若没有执行文件则为内部命令;
help
[命令] //#只能获取内部命令的帮助;
详细命令帮助info:
info
[命令]
- 回车://进入子帮助页面(带有*号标记)
- u ://进入上层页面;
- n ://进入下一个帮助小节;
- p ://进入上一个帮助小节;
- q ://退出;
:
压缩与解压缩命令:
1、常用压缩格式: .zip/.gz/.bz2
(1).zip:
.zip格式压缩:
①zip 压缩文件名.zip 源文件 //压缩文件;
②zip -r 压缩文件名 源目录 //压缩目录;
.zip格式解压缩:
①unzip 压缩文件 //解压缩.zip文件;
(2).gz:
.gz格式压缩:
①gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失;
②gzip -c 源文件 > 压缩文件名.gz
//压缩为.gz格式,源文件保留;
③gzip -r 目录 //压缩目录下所有的子文件,但不能压缩目录;
.gz格式解压缩:
①gzip -d 压缩文件
//解压缩文件;
②gzip -r 压缩文件 //解压目录;
③gunzip 压缩文件 //解压缩文件;
(3)
.bz2:
.bz2格式压缩:
!!bzip2命令不能压缩目录
①bzip2 源文件 //压缩为.bz2格式,不保留源文件;
②bzip2 -k 源文件 //压缩之后保留源文件;
.bz2格式解压缩:
①bzip2 -d 压缩文件 //解压缩,-k保留压缩文件;
②bunzip2 压缩文件
//解压缩,-k保留压缩文件;
2、常用压缩格式: .tar.gz/.tar.bz2
tar //解/打包命令
tar -cvf 打包文件名.tar 源文件
-c:打包;
-v:显示过程;
-f:指定打包后的文件名;
tar -xvf 打包文件名
-x:解包
tar [参数] 打包文件名.tar.* 源文件 -C
[路径] //指定解压存储路径;
如果需将多个文件打包,则直接在源文件后用空格连接即可;
例: tar -zcvf
打包文件名 源文件1 源文件2 源文件3
若只查看不解压.tar/.tar.*文件,则使用-t选项即可;
-t:显示.tar/.tar*文件,不进行解压操作;
其实.tar.gz/.tar.bz2格式是先打包为.tar格式,再压缩为.gz/.bz2格式;
.tar.gz:
tar -zcvf 压缩包名.tar.gz 源文件
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
-x:解压缩.tar.gz格式
.tar.bz2:
tar -jcvf 压缩包名.tar.bz2 源文件
-j:压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
-x:解压缩.tar.bz2格式
linux最常用的压缩格式:.tar.gz/.tar.bz2
:
推荐关机使用shutdown!!!!!!!
shutdown [选项] 时间
选项:
①-c:取消前一个关机命令;
②-h:关机
③-r:重启
时间:
①now //现在
②时:分
其他关机命令:
①halt
②poweroff
③init
0
以上三个关机命令不建议使用,相对shutdown,shutdown更为安全;
其他重启命令:
①reboot
②init
6
系统运行级别:
0 //关机
1 //单用户(类似windows安全模式)
2 //不完全多用户,不含NFS服务(字符界面,不包含文件共享服务)
3 //完全多用户(字符界面)
4 //未分配
5 //图形界面
6 //重启
runlevel //查询上次及当前的系统级别;
vim /etc/inittab //系统级别配置文件;
id:3:initdefault: //修改系统默认运行级别(id后的数字则为系统级别)
logout //退出登录命令(每次使用后,建议退出当前用户,避免他人因账户占用无法使用!与windows中的注销相似!)
:
挂载命令:
mount //查询系统中已挂载的设备;
mount
-a //根据配置文件/etc/fstab内容,自动重新再挂载;
外接设备不建议设为自动挂载;
挂载命令格式:
mount [-t
文件系统] [-o 特殊选项] 设备文件名 挂载点;
/dev/sr0是linux中光盘的设备文件名,而/dev/cdrom则是/dev/sr0的软链接,建议挂载时使用/dev/sr0;
-t 文件系统 //加入文件系统该类型来指定挂载的类型,可以为ext3、ext4、iso9660等文件系统;
linux标准文件系统ext3/ext4,centos6.0以后默认文件系统都是ext4、光盘的默认文件系统为:iso9660;
-o 特殊选项 //可以指定挂载的额外选项;
umount
设备文件名或挂载点 //取消挂载/卸载 命令;
当在linux中,挂载U盘/光盘/移动硬盘类似的外接设备后,当不使用时、需要将挂载点卸载掉!
挂载U盘:
fdisk
-l //查看系统当前已识别的硬盘;
mount -t
vfat 设备文件名 挂载点 //文件系统vfat其实就是windows中的FAT32(此种文件系统类型几乎已经淘汰,因为该文件系统最多识别4G;linux默认是
支持NTFS文件系统的(如果需要linux系统识别NTFS,要么重新编译系统内核,要么下载安装“NTFS-3G”该软件安装之后系统则可识别
NTFS文件系统;
:
用户登录查看:
1、查看登录信息:
w [用户名]
命令输出:
①USER //登陆的用户名;
②TTY //登录终端;tty1是本地登陆,不会有登录的IP地址;pts/0则是第一个远程登陆,会存在登录的IP地址;
③FROM //从哪个IP地址登录;
④LOGIN@ //登陆时间;
⑤IDLE //用户闲置时间;
⑥JCPU //指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
⑦PCPU //是指当前进程所占用的时间;
⑧WHAT //当前正在运行的命令;
who [用户名]
命令输出:
①- 用户名;
②- 登陆终端;
③-登录时间(登录来源IP地址);
2、查询当前登录和过去登录的用户信息:
last
last命令默认是读取/var/log/wtmp文件数据;
命令输出:
①- 用户名;
②- 登录终端;
③- 登录IP;
④- 登录时间;
⑤- 退出时间(在线时间);
3、查看所有所有用户的最后一次登录时间:
lastlog
lastlog命令默认是读取/var/log/lastlog文件内容;
命令输出:
①- 用户名;
②- 登陆终端;
③- 登录IP;
④- 最后一次登录时间;
bandicam
:
Shell概述:
echo
$shell
/etc/shells //shell配置文件;
:
echo输出命令
echo [选项]
[输出内容]
-e //支持反斜线控制的字符转换;
控制字符:
\a //输出警告音;
\b //退格键,也就是向左删除键;
\n //换行符;
\r //回车键;
\t //制表符,也就是Tab键;
\v //垂直制表符;
\0nnn //按照八进制ASCLL码表输出字符。其中0位数字零,nnn是三位八进制数;
\xhh //按照十六进制ASCLL码表输出字符。其中nn是两位十六进制数;
\e[1;31m //开启颜色显示;
30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色;
\e[0m //结束颜色显示;
shell脚本执行:
赋予执行权限,直接运行:
chmod 755 *.sh
./*.sh
通过Bash调用执行脚本
bash *.sh
:
Bash的基本功能:
1、别名:
①alias //查看系统中所有的命令别名;
②alias 别名 =
‘原命令‘ //设定命令别名(临时生效,一旦重启则失效;
③vim
~/.bashrc //将别名写入环境变量配置文件(永久生效)
④source
~/.bashrc //立即调用该文件,使其立即生效;
⑤unalias 别名 //删除别名;
2、常用快捷键:
①ctrl+c //强制终止当前命令
②ctrl+l //清屏
③ctrl+a //光标移动到命令行首
④ctrl+e //光标移动到命令行尾
⑤ctrl+u //从光标所在位置删除到行首
⑥ctrl+z //把命令放入后台
⑦ctrl+r //在历史命令中搜索
:
历史命令:
history
[选项] [历史命令保存文件]
①-c //清空历史命令;
②-w //把缓存中的历史命令写入历史命令保存文件~/.bash_history
③历史命令默认会保存1000条,可在环境变量配置文件/etc/profile内HISTSIZE=1000处进行修改;
历史命令的调用:
①使用 ↑↓ 调用以前的历史命令;
②使用 !n 重复执行第n条历史命令;
③使用 !! 重复执行上一条命令;
④使用 !字 串 重复执行最后一条以该字串开头的命令;
:
1、输出重定向:
标准输出重定向:
①[命令] >
[文件] //以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中;
②[命令] >>
[文件] //以追加的方式,把命令的正确输出 输出到指定的文件或设备当中;
标准错误输出重定向:
①[错误命令]
2>[文件] //以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中;(>后没有空格)
②[错误命令]
2>>[文件] //以追加的方式,把命令的错误输出
输出到指定的文件或设备当中;(>>后没有空格)
正确输出和错误输出同时保存:
①[命令] > [文件]
2>&1 //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;
②[命令] >> [文件]
2>&1 //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;
③[命令]
&>[文件] //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;(>后没有空格)
④[命令]
&>>[文件] //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;(>>后没有空格)
⑤[命令] >> [文件1]
2>>[文件2] //把正确的输出追加到文件1中,把错误的输出追加到文件2中;(2>>后没有空格)
2、输入重定向:
[命令]<[文件] //把文件作为命令的输入;
[命令]<<[标识符] //标识符把标识符质检内容作为命令的输入;
wc [选项]
[文件名]
选项:
①-c //统计字节数;
②-w //统计单词数;
③-l //统计行数;
:
1、多命令顺序执行:
;(命令1
;命令2) //多个命令顺序执行,命令之间没有任何逻辑联系;
&&(命令1&&命令2) //逻辑与;当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行;
||(命令1||命令2) //逻辑或;当命令1执行不正确,则命令2才会执行。当命令1正确执行,则命令2不会执行;
2、管道符:
|(命令1 |
命令2) //命令1的正确输出作为命令2的操作对象;
:
1、通配符:
? //匹配一个任意字符;
* //匹配0个或任意多个任意字符,也就是可以匹配任何内容;
[] //匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c;
[-] //匹配中括号中任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字符。
[^] //逻辑非;表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。
2、Bash中其他特殊符号:
‘‘ //单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
"" //双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令
”和“转义符”的特殊含义。
`` //反引号。反引号括起来的内容是系统命令,在Bash中会先运行它、和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
$() //和反引号作用一样,用来引用系统命令;
# //在Shell脚本中,#开头的行代表注释;
$ //用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\ //转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量使用;
本文出自 “IT_Boomer” 博客,请务必保留此出处http://liangjing.blog.51cto.com/8582041/1844420
Linux基础一