linux学习笔记
与windows的区别
(1)区分大小写
(2)所有内容以文件形式保存
(3)不靠扩展名区分文件类型,靠权限区分
常用命令
命令提示符
[root@localhost ~]#
注:
root:当前用户
localhost:主机名
~:当前所在目录(家目录)
#:超级用户的提示符
普通用户的提示符是$
(1)查询目录中的内容
ls [选项] [文件或目录]
-a 显示所有文件
-l 显示详细信息
-rw-r--r--
-文件类型(-文件 d目录 l软连接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r读 w写 x执行
-d查看目录属性
-h人性化显示文件大小
-i显示inode
(2)目录处理命令
A.创建目录
mkdir -p [目录名]
-p递归创建
B.切换目录
cd [目录]
C.查询所在目录
pwd
print working directory
D.删除目录
rmdir [目录名分]
remove empty directories删除空白文件
rm -rf [文件或目录]
-r 删除目录
-f 强制
E.复制
cp [选项] [源文件或目录] [目标目录]
-r 复制目录
-f 连带文件属性复制
-d 若源文件是连接文件,则复制链接属性
-a 相当于-pdr
F.剪切或改名
mv [源文件或目录] [目标目录]
常见目录的作用:
/ 根目录
/bin 命令保存(普通用户可以使用)
/sbin 命令保存(超级用户才能使用)
/usr/sbin
/boot 启动目录
/dev 设备文件
/etc 配置文件
/lib 系统库
/mnt 系统挂载目录
/media 挂载
/proc 与 /sys 内存挂载点
/tmp 临时目录
/usr 系统资源目录
/usr/bin 系统命令(普通用户)
/usr/sbin 系统命令(超级用户)
/home 家目录(普通用户)
/root 家目录(超级用户)
(3)连接命令
ln -s [原文件] [目标文件]
-s 软连接
(4)搜索
A.文件搜索
locate 文件名
注:
locate命令搜索快,所搜索的是后台数据库,在/var/lib/mlocate,每天更新一次,新建的会找不到,用updatedb更新数据库
/etc/updatedb.conf配置文件,搜索的限制
B.搜索命令
whereis 命令名
-b 只查找可执行文件
-m 只查找帮助文件
可查看帮助文件
whitch 命令名
可查看别名
C.find
find [搜索范围] [搜索条件]
eg:
find /root -name insatll.log
#按文件名完全匹配
匹配是完全匹配,模糊查询需要使用通配符 *匹配任意内容 ?匹配任意一个字符 []匹配任意一个中括号中的字符
find /root -iname install.log
#不区分大小写
find /root -user root
#按所有者搜索
find /root -nouser
#查找没有所有者的文件
find /var/log -mtime +10
#查找10天前修改的文件
-10 10天内
10 10天当天
+10 10天前
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
find . -size 25k
#查找当前目录等于25k的文件(千字节k,兆字节M)
-25k 小于25KB
25k 等于25KB
+25k 大于25KB
find . -inum 262422
#查找i结点是262422的文件
find /etc -size +20k -a -size -50k
#-a and 逻辑与 -o or 逻辑或
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#-exec 命令 {} \;对搜索结果进行操作
D.搜索字符串
grep [选项] 字符串 文件名
#在文件中匹配符合条件的字符串
-i 忽略大小写
-v 排除指定字符串
(5)帮助
A.man
man 命令
查看命令拥有哪个级别的帮助
man -f 命令 相当于whatis 命令
查看和命令相关的所有命令
man -k 命令
B.其他
命令 --help
help shell内部命令
eg:whereis cd
#确定是否是shell内部命令
help cd
info 命令
(6)压缩与解压
A. .zip
zip 压缩文件名 源文件
zip -r 压缩文件名 源目录
unzip 压缩文件
B. .gz
gzip 源文件
#压缩为.gz,源文件会消失
gzip -c 源文件>压缩文件
gzip -r 目录
#压缩目录下所有子文件,但不能压缩目录
gzip -d 压缩文件
gunzip 压缩文件
gzip -r 目录
C. .bz2
bzip2 源文件
#不保留原文件
bzip2 -k 源文件
#压缩后保留源文件
不能压缩目录
bzip2 -d 压缩文件
bunzip2 压缩文件
D.打包tar
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -xvf 打包文件名
-x解打包
tar -zcvf 压缩包名.tar.gz 源文件
#-z 压缩为gz
tar -zxvf 压缩包名.tar.gz
tar -jcvf 压缩包名.tar.bz2 源文件
#-j 压缩为bz2
tar -jxvf 压缩包名.tar.bz2 -C 位置
tar -ztvf 压缩包名.tar.gz
#-t 查看包,不解压
(6)关机与重启
shutdown [选项] 时间
-c 取消前一个关机命令
-h 关机
-r 重启
其他关机命令
halt
poweroff
init 0
其他重启命令
reboot
init 6
#init 数字 调用系统级别
0 关机
1 单用户
2 不完全多用户
3 完全多用户
4 未分配
5 图形界面
6 重启
查看系统运行级别 runlevel
/etc/initab 配置默认的运行级别
退出登录
logout
(7)挂载命令
A.查询已挂载的设备
mount
B.依据配置文件/etc/fstab的内容,自动挂载
mount -a
C.
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂在点
eg:
挂载光盘
mkdir /mnt/cdrom
#建立挂载点
mount /dev/sr0 /mnt/cdrom/
#挂载光盘
umount /mnt/cdrom/
#卸载
挂载U盘
fdisk -l
#查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
(8)用户登录查看命令
w 用户名
who 用户名
last 查看当前登录和过去登陆的用户信息
lastlog 查看所有用户的最后一次登录时间
Shell基础
shell是命令行解释器
echo $SHELL 查看linux的shell
脚本执行方式
echo [选项] [输出内容]
eg:
echo -e "\e[1m;31m嫁人就要嫁凤姐 \e[0m"
#红色显示
脚本
vi hello.sh
#!/bin/bash
#the first shell
echo -e "\e[1m;32m hello world \e[0m"
执行脚本 a.赋予执行权限
chomd 755 hello.sh
./hello.sh
b.通过Bash调用执行脚本
bash hello.sh
Bash基本功能
A.命令别名
alias
#查看别名
alias 别名='原命令'
#设定命令别名
这是临时设定的,重启后就失效了,若想永久生效,写入环境变量
vi ~/.bashrc
#写入环境变量配置文件
重启生效,若想立即生效
source .bashrc
删除别名
unalias 别名
命令生效顺序
1.执行用绝对路径或相对路径执行的命令
2.执行别名
3.执行Bash的内部命令
4.执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令(查看环境变量echo $PATH)
B.常用快捷键
ctrl+c 强制终止当前命令
ctrl+l clear 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
C.历史命令
history [选项] [历史命令保存文件]
-c 清空
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
按一下tab命令不全,按两下tab,会列出目录或命令
历史命令的调用
上、下箭头调用以前的历史命令
!n重复执行第n条历史命令 (用history查看会显示n)
!!重复执行上一条命令
!字符串 重复执行最后一条以字符串开头的命令
D.输出重定向
标准输入输出
设备文件名 | 文件描述 | |
键盘 | /dev/stdin | 0 |
显示器 | /dev/sdtout | 1 |
显示器 | /dev/sdterr | 2 |
标准输出重定向
命令>文件 覆盖
命令>>文件 追加
标准错误输出重定向
错误命令 2>文件 覆盖
错误命令 2>>文件 追加
正确、错误输出同时保存
命令 > 文件 2>&1
命令 >> 文件 2>&1
或
命令 &>文件
命令 &>>文件
(ls &>/dev/null 系统黑洞,相当于垃圾箱)
命令>>文件1 2>>文件2 正确的追加到文件1错误的追加到文件2
输入重定向
wc [ 选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
格式:
wc < 文件名
wc <<标识
……
<<标识
注:<<遇到相同的标识结束
E.管道符
多命令执行符
; 多个命令顺序执行
&& 前边命令正确,后边的才会执行
|| 前边的正确,后边的不执行;前边的错误,后边的执行
eg:
ls && echo yes || echo no
#检测命令是否正确
管道符
命令1 | 命令2
命令1的结果作为命令2的操作对象
F.通配符
? 单个字符
* 任意个字符
[]
``和$()括起来的内容是系统命令,会先执行命令
eg:a=123
echo $a
aa=`ls` 等价于 aa=$(ls)
echo $aa