您的位置:首页 > 运维架构 > Linux

Linux学习笔记(一)

2016-03-02 14:12 477 查看

Linux学习笔记(一)

基础概念:

1. 分区:把大的硬盘分为小的逻辑分区(把大柜子分成几个小柜子)
2. 格式化:写入文件系统(分成小柜子之后,在各个小柜子中打格)
3. 分区设备文件名:给每个分区定义设备文件名(Linux没有图形操作界面,因此每一个分区都需要有一个名字来指代它,这就是设备文件名)
3. 挂载:给每个分区分配挂载点(相当于将分区与盘符联系起来)


Linux命令格式:

[root@localhost ~]#

root代表当前登录用户,Linux中管理员账号是root

localhost主机名

~当前所在目录(家目录)

#超级用户提示符

$普通用户提示符


一般命令格式:

命令 [选项] [参数]

1. 个别命令使用不遵从此格式

2.  当有多个选项时,可以写在一起

3.  简化选项与完整选项   -a等于--all


1.查询目录中的内容:ls

ls [选项] [文件或目录]
选项:
-a  显示所有的文件,包括隐藏文件
-l  显示详细信息
-d  查看目录属性
-h  人性化显示文件大小
-i  显示inode

在显示详细信息的时候,界面上显示如下:
-rw-------. 1 root root  1208 2月  25 03:02 anaconda-ks.cfg

-rw-------. 表示什么呢?
第一个-表示文件的类型(常用的三种类型为:-文件、d目录、l软链接文件)

后面9位每3位为一组

第一组为所有者u、第二组为所属组g、第三组为其他人o

r读、w写、x执行

.表示ACL权限

1代表引用次数,前一个root代表所有者,后一个root代表所属组

1208是文件大小


2.建立目录:mkdir

格式:mkdir [-p] 目录名
-p是递归创建,一次性创建多层路径时调用


3.切换目录cd

格式:cd 目录

cd ~   进入当前用户的家目录
cd      进入当前用户的家目录
cd -    进入上次目录(window的后退)
cd ..   进入上级目录
cd .    进入当前目录

相对路径:参照当前所在目录进行查找

如:[root@localhost abc]# cd ../def   ../代表当前所在位置的上一次目录
如:[root@localhost abc]# cd ./def    ./代表当前所在目录

绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下都能进入指定位置

[root@localhost ~]# cd ect
[root@localhost ~]# cd ect/    两者效果都一样(上一个是文件、下一个是目录,其实都一样,Linux中所有的东西都是文件)


4.打印当前目录位置:pwd

print working directory 输出当前所在目录


5.删除空目录:rmdir

rmdir 目录名

只能删除空的文件夹


6.删除文件或目录:rm

rm -rf 文件或目录

-r删除目录  -f强制


7.复制命令:cp

cp [选项] 源文件或者目录 目标目录
选项:
-r  复制目录

-p  连带文件属性复制

-d若源文件是链接文件,则复制链接属性

-a 相当于 -pdf 完全复制


8.剪切或改名命令:mv

mv 原文件或目录 目标目录


常见目录的作用:

/根目录
/bin    存放必要的命令
/boot   存放内核以及启动所需的文件等
/dev    存放设备文件,硬盘或挂载的移动设备都会显示在这
/etc    存放系统的配置文件
/home   用户文件的主目录,用户数据存放在其主目录中
/lib    存放必要的运行库
/mnt    存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下
/proc   存放存储进程和系统信息
/root   超级用户的主目录
/sbin   存放系统管理程序
/tmp    存放临时文件的目录
/usr    包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其他文档
/usr/bin/系统命令(普通用户)
/usr/sbin/系统命令(超级用户)
/var    包含系统产生的经常变化的文件


9.链接命令(较难理解)

软链接:ln -s
1.可简单理解为快捷方式,可修改,但原文件删除后不可使用
2.它的权限取决于原文件
3.记录的是原文件的存储位置
4.使用绝对路径

硬链接:ln
1.针对同一文件,不适用于目录
2.是真实记录原文件,包括i节点,存储位置block等。修改原文件或硬链接对方也会改变。
3.相当于一间教室的两个门(其中一个文件被删除另一个文件还能用,就如:一个门被关了,另一个门还能进入)
4.对于文件路径无限制,相对绝对都可


10.文件搜索:locate

locate 文件名
//在后台数据库中按文件名搜索,搜索速度更快

/var/lib/mlocate
#locate命令所搜索的后台数据库

[root@localhost ~]# updatedb   //更新数据库

[root@localhost ~]# vi /ect/updatedb.conf  这是搜索的配置文件

PRUNE_BIND_MOUNTS="yes" 开启搜索限制
PRUNEFS=    搜索时,不搜索的文件系统
PRUNENAMES= 搜索时,不搜索的文件类型
PRUNEPATHS= 搜索时,不搜索的路径


11.搜索命令的命令whereis

whereis 命令名
//搜索命令所在路径及帮助文档所在位置
如:
[root@localhost ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
选项:
-b  只查找可执行文件
-m  只查找帮助文件


12.搜索命令的命令which

which 命令名
//搜索命令所在路径,如果有别名会显示别名。


13.PATH环境变量

定义的是系统搜索命令的路径

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

我们之所以可以直接使用系统的命名,如:ls,而不必加路径,就是因为有环境变量。


14.find命令

一、find 搜索范围 [选项] 搜索条件
#搜索条件

如:
find / -name install.log    查找名字为install.log的文件
避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

find /root -iname install.log   不区分大小写
find /root -user root   按照所有者搜索
find /root -nouser  查找没有所有者的文件

二、Linux中的通配符

*   匹配任意内容
?   匹配任意一个字符
[]  匹配任意一个中括号内的字符

[root@localhost ~]# find /root -name "ab*"

三、find /var/log/ -mtime +10 //查找10天前修改的文件

-10 10天内修改的文件
10  10天当天修改的文件
+10 10天前修改的文件

atime   文件访问时间啊
ctime   改变文件属性
mtime   修改文件内容

四、find 路径 -size 大小
[root@localhost ~]# find /root -size -25k  //查找文件大小是25KB的文件

-25k        小于25KB的文件
25k     等于25KB的文件
+25k    大于25KB的文件

k是小写,M是大写

五、find 路径 -inum i节点     //查找对应i节点的文件

[root@localhost ~]# find /root -inum 262170

六、find多条件查询:
-a  与操作
-o  或操作
find /ect -size +20k -a -size -50k  查找大于20KB小于50KB的文件
利用-a多条件查询,-o

-exec 操作 {} \;  对搜索结果执行后续操作
find /ect -size +20k -a -size -50k -exec ls-lh {} \;


15.grep命令

grep [选项] 字符串 文件名       //在文件中搜索符合条件的字符串

-i  忽略大小写
-v  排除指定字符串

[root@localhost ~]# grep "size" anaconda-ks.cfg    会输出文件中包含size的一行

#part /boot --fstype=ext4 --size=200
part /home --fstype=ext4 --size=2000
#part swap --size=1000
#part / --fstype=ext4 --grow --size=200

[root@localhost ~]# grep -v "size" anaconda-ks.cfg     会输出文件中不包含size的一行


16.帮助命令man

man 命令      //获取指定命令的帮助手册

man ls  //查看ls的帮助

man -f 命令   相当于 whatis 命令   //查看命令拥有那个级别的帮助

man -k 命令   相当于 apropos 命令  //查看和命令相关的所有帮助

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

[root@localhost ~]# man -5 password


17.选项帮助

命令 --help   //获取命令选项的帮助
如:
ls --help


18.shell内部命令帮助

help shell 内部命令 //获取shell内部命令帮助

如:
whereis cd  //确定是否是shell内部命令
help cd //获取内部命令帮助


19.详细命令帮助info

info 命令
-回车 //进入子帮助页面(带有*号标记)
-u  //进入上层页面
-n  //进入下一个帮助小节
-p  //进入上一个帮助小节
-q  //退出


20.zip格式压缩

zip 压缩文件名 源文件       //压缩文件
zip -r 压缩文件名 源目录    //压缩目录


21.zip格式解压缩

unzip 压缩文件  //解压缩.zip文件


22.gz格式压缩

gzip 源文件                    //压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件      //压缩为.gz格式,源文件保留
gzip -r 目录                  //压缩目录下所有的子文件,但是不能压缩目录
c19a


23.gz格式解压缩

gzip -d 压缩文件        //解压缩文件
gunzip  压缩文件        //解压缩文件


24.bz2格式压缩

bzip2 源文件       //压缩为.bz2格式,不保留源文件
bzip2 -k 源文件        //压缩之后保留源文件
注意:bzip2命令不能压缩目录


25.bz2格式解压缩

bzip2 -d 压缩文件       //解压缩,-k保留压缩文件
bunzip2 压缩文件        //解压缩,-k保留压缩文件


26.打包命令tar

因为上面的压缩有限制,因此将文件先打包
tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -cvf abc.tar abc


27.解打包命令

tar -xvf 打包文件名
选项:
-x 解打包
-v 显示过程
-f 指定打包后的文件名
tar -xvf abc.tar


28.tar.gz压缩格式

其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

tar -zcvf 压缩包名.tar.gz源文件
选项:
-z  //压缩为.tar.gz格式
tar -zxvf   压缩包名.tar.gz
选项:
-x  //解压缩.tar.gz格式

要解压到指定目录 在最后加 -C : tar -zxvf jp.tar.gz -C /tmp/

降压缩文件放到指定目录,在压缩文件前加绝对路径: tar -zcvf /tmp/jp.tar.gz jp

只查看压缩文件的内容 : tar -ztvf jp.tar.gz


29.tar.bz2压缩格式

tar -jcvf 压缩包名.tar.bz2 源文件
选项:
-z  //压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
选项:
-x  //解压缩.tar.bz2格式


30.关机命令shutdown命令

[root@localhost ~]# shutdown [选项] 时间

选项:
-c  //取消前一个关机命令
-h  //关机
-r  //重启

[root@localhost ~]# shutdown now   //直接关机

其他关机命令:
half
poweroff
init 0
其他重启命令
reboot
init 6


系统运行级别:
0   //关机
1   //单用户
2   //不完全多用户,不含NFS服务
3   //完全多用户
4   //未分配
5   //图形界面
6   //重启


31.退出登录命令

logout


32.查询与自动挂载

mount   //查询系统中已经挂载的设备
mount -a    //依赖配置文件/ect/fstab的内容,自动挂载

挂载命令格式
[root@localhost ~]#    mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-o  特殊选项:可以指定挂载的额外选项


33.挂载光盘

[root@localhost ~]# mkdir /mnt/cdrom/ //建立挂载点

[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/    //挂载光盘

[root@localhost ~]#mount /dev/sr0 /mnt/cdrom   //不加文件系统


34.卸载光盘/U盘命令

[root@localhost ~]# umount 设备文件名或挂载点

[root@localhost ~]# umount /mnt/cdrom


35.挂载U盘

[root@localhost ~]# fdisk -l   //查看U盘设备文件名
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/

注意:Linux默认是不支持NTFS文件系统的


36.查看登陆用户信息

[root@localhost ~]# w
命令输出:
USER:   登陆的用户名
TTY:    登陆终端
FROM:   从哪个IP地址登陆
LOGIN@: 登陆时间
IDLE:   用户闲置时间
JCPU:   指的是该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间
PCPU:   是指当前进程所占用的时间
WHAT:   当前正在运行的命令


37.查看当前登录和过去登陆的用户信息

last
last命令默认是读取/var/log/wtmp文件数据
命令输出
-用户名
-登陆终端
-登陆IP
-登陆时间
-退出时间(在线时间)


38.查看所有用户的最后一次登录时间

lastlog
lastlog命令默认是读取/var/log/lastlog文件内容
命令输出
-用户名
-登陆终端
-登陆IP
-最后一次登录时间


39.查看登陆用户信息

who
命令输出:
-用户名
-登陆终端
-登陆时间(登陆来源IP地址)


40.echo输出命令

echo [选项] 输出内容

选项:
-e:支持反斜杠控制的字符转换


Shell基础

一、Shell概述

二、脚本执行方式
脚本编写:
[root@localhost ~]# vi hello.sh
#/bin/bash
#第一个shell程序
echo -e "\e[1;34m 你好世界 \e[0m"

脚本执行:
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
或:
通过Bash调用执行脚本
bash hello.sh

三、Bash的基本功能
1、命名别名与快捷键
alias   //查看系统中所有的命令别名
alias 别名='原命令'  //设定命令别名

命令生效顺序:
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行Bash的内部命令
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。

快捷键:
Ctrl c 强制终止
Ctrl l 清屏
Ctrl u 删除到行首
Ctrl a 光标移动到行首
Ctrl e 移动到行尾
Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行)
Ctrl r 在历史记录中搜索

2、历史命令
history [选项] [历史命令保存文件]
选项:
-c  //清空历史命令
-w  //把缓存中的历史命令写入历史命令保存~/.bash_history
历史命令默认会保存1000条,可以在环境变量配置文件/ect/profile中进行修改

3、输出重定向
1.标准输入输出
设备      设备文件名   文件描述符       类型
键盘      /dev/stdin       0       标准输入
显示器     /dev/sdtout     1       标准输出
显示器     /dev/sdterr     2       标准错误输出

2.输出重定向
类型                      符合                      作用
标准输出重定向             命令 > 文件             以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。
命令 >> 文件           以追加的方式,把命令的正确输出输出到指定的文件或设备当中
标准错误输出重定向          错误命令 2>文件         以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中
错误命令 2>>文件      以追加的方式,把命令的错误输出输出到指定的文件或设备当中
正确输出和错误输出同时保存  命令 > 文件 2>&1         以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 >> 文件 2>&1       以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 &> 文件            以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
命令 &>> 文件           以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
命令>>文件1 2>>文件2      把正确的输出追加到文件1中,把错误的输出追加到文件2中

4、多命令顺序执行
多命令执行符          格式                  作用
;               命令;命令           多个命令顺序执行,命令之间没有任何逻辑联系
&&              命令1&&命令2        逻辑与,当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行
||              命令1||命令2        逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行

管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2  //命令1的正确输出作为命令2的操作对象

例子:
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
netstat -an //查找出当前所有的链接
grep "ESTABLISHED"  //查找出已建立的链接
wc -l   统计行数

5、Shell中特殊符号

通配符         作用
?           匹配一个任意字符
*           匹配0个或任意多个任意字符,即匹配任何内容
[]          匹配中括号中任意一个字符,例如[abc]
[-]         匹配中括号中任意一个字符,-代表一个范围。例如[a-z]
[^]         匹配不是中括号内的一个字符

其他特殊符号:

符号              作用
''          单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
""          双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
``          反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样。不过推荐使用$(),因为反引号非常容易看错
$()            用来引用系统命令
#           代表注释
$			用户调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\           转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当作是变量引用

例子:
[root@localhost ~]# echo $(ls -a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 学习笔记