Linux一切皆文件
命令 [选项] [文件或目录]
ls [选项] [文件或目录]
#-超级用户;$-普通用户
-a 显示隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
ls -查询目录中内容
ls -l -查看详细信息
-rw-r--r-- -权限,默认10位,
1:文件类型(-:文件,d:目录,l:软连接文件)
2-4:u所有者 5-7:g所属组 8-10:o其他人
用户基本权限:r-读; w-写;x-执行
1:引用计数
ls -lh -文件大小,人类可读
ll===ls -l
1、目录处理命令
2、文件处理命令
建立目录:mkdir(make directories)
mkdir -p[目录名]
mkdir -p father/children 递归创建
切换目录:cd(change directory)
cd [目录]
cd ~ 进入当前用户的家目录
cd 同上
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
查询所在目录位置:pwd(print working directory)
删除空目录:rmdir(remove empty directories)
rmdir [目录名]
删除文件或目录:rm(remove)
rm -rf [文件或目录]
选项: -r 删除目录 -f 强制
***注意*** rm -rf / -删除根目录下所有文件
复制命令:cp(copy)
cp [选项] [原文件或目录] [目标目录]
选项: -r:复制目录 -p:连带文件属性复制
-d:若源文件是 链接文件,则复制链接属性
-a:相当于 -pdr
剪切或改名命令:mv(move)
mv [原文件或目标] [目标目录]
原文件和目标文件在同一目录-改名;
原文件和目标文件不在同一目录-剪切
mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
===常用一级目录的作用===
/根目录
/bin命令保存目录(普通用户可以读取的命令)
/boot启动目录,启动相关文件
/dev设备文件保存目录
/etc配置文件保存目录
/home普通用户的家目录
/lib系统库保存目录
/mnt系统挂载目录
/media挂载目录
/root超级用户的家目录
/tmp临时目录
/sbin命令保护目录(超级用户才能使用的目录)
/proc直接写入内存的
/sys保存内存的过载点,不能直接操作
/usr系统软件资源目录
/usr/bin(普通用户)
/usr/sbin系统命令(超级用户)
/var系统相关文档内容(系统可变文档)
3、链接命令
链接命令:ln(link)---生成链接文件
ln -s [原文件] [目标文件]
选项 -s 创建软链接 (soft)
硬链接特征:(hard)
拥有相同的i节点和存储block块,可以看做是同一个文件
可以通过i节点识别
不能跨分区
不能针对目录使用
软连接特征:(soft)
类似Windows快捷方式
软链接拥有自己的I节点和Block块,但数据中只保存原文件的文件名和I节点,并没有实际的文件数据
Irwxrwxrwx ---I软链接,软链接文件的权限都为rwxrwxrwx
修改任意文件,另一个都改变
删除原文件,软链接不能使用
软链接 原文件 写绝对路径
文件搜索命令 locate ---搜索速度快,只能搜索文件名
命令搜索命令 whereis 与 which
文件搜索命令 find ---系统中找文件,遍历搜索,耗时,耗资源(完全匹配-通配符)
字符串搜索命令 grep---文件中找字符串,包含匹配(正则)
find命令与grep命令的区别
locate命令格式---受 /etc/updatedb.conf配置文件 约束
locate 文件名---在后台数据库中按文件名搜索,搜索速度快
/var/lib/mlocate--- #locate命令所搜索的后台数据库
updatedb---更新数据库
搜索命令的命令 whereis(系统命令)
where 命令名 ---搜索命令所在路径及帮助文档所在位置
-b 查找可执行文件
-m只查找帮助文件
which(系统命令+别名)
环境变量 $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
find命令
find [搜索范围] [搜索条件] ---搜索文件
find / -name install.log
避免大范围搜索,非常耗资源。
find是在系统当中搜索符合条件的文件名。
如果需要匹配使用通配符匹配,通配符是完全匹配。
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号
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的文件(-25k;25k;+25k)
find . -inum 262422 ---查找i节点262422的文件
搜索字符串命令grep
grep [选项] 字符串 文件名 ---在文件中匹配符合条件的字符串
选项: -i 忽略大小写; -v 排除指定字符串(取反)
1.帮助命令man (manual-手册)
man 命令 ---获取指定命令的帮助
eg:man man
man ls ---查看ls的帮助
man的级别:1~8
1.查看命令帮助
2.查看可被内核调用的函数的帮助
3.查看函数和函数库的帮助
4.特殊文件(dev目录下)
5.配置文件
6.游戏
7.其他杂项
8.系统管理员可用命令
查看命令拥有帮助级别: man -f 命令 == whatis 命令 || whereis 命令
eg: man -5 passwd;man -4 null;man -8 ifconfig
查看和命令相关的所有帮助: man -k 命令 == apropos 命令
eg:apropos passwd
2.其他帮助命令
命令 --help ---获取命令选项的帮助
eg:ls --help
help shell内部命令 ---获取shell内部命令
eg:whereis cd ---确定是否是shell内部命令
help cd ---获取内部命令帮助
详细命令帮助info
info 命令
-回车 进入子帮助页面(带*标记)
-u 进入上层页面
-n 进入下一个帮助小节
-p 进入上一个帮助小节
-q 退出
常用压缩格式:.zip .gz .bz2 .tar.gz .tar.bz2
.zip格式压缩 ---与windows通用
zip 压缩文件名 源文件 ---压缩文件
zip -r 压缩文件名 源目录 ---压缩目录
.zip格式解压缩
unzip 压缩文件 ---解压缩.zip文件
.gz格式压缩
gzip 源文件 ---压缩为.gz格式的压缩文件,源文件消失
gzip -c 源文件 > 压缩文件名 ---压缩为.gz格式的压缩文件,源文件保留
gzip -r 目录 ---压缩目录下所有子文件,但不能压缩目录
.gz格式解压缩
gzip -d 压缩文件 ---解压缩.gz文件
gunzip 压缩文件 ---解压缩.gz文件
gunzip -r 压缩目录 ---解压缩目录
.bz2格式压缩
bzip2 源文件 ---压缩为.bz2格式的压缩文件,不保留源文件
bzip2 -k 源文件 ---压缩后保留源文件
bzip2命令不能压缩目录
.bz2格式解压缩
bzip2 -d 压缩文件 ---解压缩,-k保留压缩文件
bunzip2 压缩文件 ---解压缩,-k保留压缩文件
打包命令tar
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
eg:tar -cvf test.tar test
解打包命令
tar -xvf 打包文件名
-x 接打包
eg:tar -xvf test.tar
.tar.gz压缩格式
tar -zcvf 压缩包名.tar.gz 源文件
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
-x:解压缩.tar.gz格式
.tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
-z:压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
-x:解压缩.tar.bz2格式
tar -ztvf test.tar.gz ---查看压缩包里的内容
1.shutdown命令
[root@localhost ~]#shutdown [选项] 时间
选项 -c 取消前一个关机命令
-h 关机
-r 重启
eg:shutdown -r now ---立即重启
*** 服务器不建议远程关机
2.其他关机命令 ---安全性没shutdown高
[root@localhost ~]#half
[root@localhost ~]#poweroff
[root@localhost ~]#init 0
2.其他重启命令 ---安全性没shutdown高
[root@localhost ~]#reboot ---相对安全
[root@localhost ~]#init 6 ---不建议
4.系统运行级别
0 关机
1 单用户 ---系统修复时
2 不完全多用户,不含NFS服务 ---NFS-文件共享服务
3 完全多用户 ---字符界面
4 未分配
5 图形界面
6 重启
init 级别数 ---调用系统运行级别
[root@localhost ~]#cat /etc/inittab
#修改 系统默认 运行级别
id:3:initdefault ---定义系统默认运行级别 3-字符界面
[root@localhost ~]#runlevel
#查询系统运行级别
5.退出登录命令
[root@localhost ~]#logout
NO1.挂载命令 ---Linux中所有存储设备必须挂载后才能正常使用(分配盘符)
1.查询与自动挂载
[root@localhost ~]#mount
#查询系统中已经挂载的设备
[root@localhost ~]#mount -a
#依据配置稳健 /etc/fstab 的内容,自动挂载
2.挂载命令格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点(盘符)
-t 文件系统:加入文件系统来指定挂载类型,eg:ext3、ext4、iso9660
-o 特殊选项:可以指定挂载的额外选项
3.挂载光盘
mkdir /mnt/cdrom ---建立挂载点
mount -t iso9660 /dev/sr0 /mnt/cdrom ---挂载光盘
mount /dev/sr0 /mnt/cdrom ---简写
4.卸载命令
umount 设备文件名或挂载点
umount /mnt/cdrom
5.挂载U盘
fdisk -l ---查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb
***Linux默认不支持NTFS文件系统 ---解决:安装ntfs-3g
NO2.用户登录查看命令 和 用户交互命令
1.查看登录用户信息
w 用户名
命令输出:
USER:登录的用户名
TTY:登录终端
FROM:从哪个IP地址登录
LOGIN@:登录时间
IDLE:用户闲置时间
JCPU:和该终端连接的所有进程占用的时间
PCPU:当前进程占用的时间
WHAT:当前正在运行的命令
who 用户名
命令输出:用户名 登录终端 登录时间(登录IP地址来源)
last ---查看当前登录和过去登录的用户信息
last命令默认读取/var/log/wtmp文件数据
命令输出: 用户名 登录终端 登录IP 登录时间 退出时间(在线时间)
lastlog ---查看所用用户的最后一次登录时间,默认读取/var/log/lastlog文件数据
Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序,
用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell是一个功能强大的编程语言,易编写,易调试,灵活性强。
Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
ASCII字符 <---> 二进制
|
用户<--->Shell<--->内核
Shell分类
Bourne Shell:sh ksh Bash psh zsh
C Shell:csh tcsh
eg:echo $SHELL ---/bin/bash(exit:退出)
Bash兼容--->vi /etc/shells
1.echo 输出命令
echo [选项] [输出内容]
选项: -e 支持反斜线控制的字符转换
\a b \n \r \t \v \0nnn \xhh
echo可以识别颜色 输出颜色
2.第一个Shell脚步
[root@localhost sh]vi hello.sh
#!/bin/bash ---Linux的基本Shell类型bash
#the first program ---注释
echo -e "\e[1;34m the first program! \e[0m" ---代码
3.脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
1.命名别名与快捷键
查看与设定别名
alias ---查看系统中所有的命令别名
alias 别名='原命令' ---设定命令别名
eg:alias ls='ls --color=never'
名永久生效与删除别名
vi ~/.bashrc ---写入环境变量配置文件
unalias 别名 ---删除别名
命令优先级:
第一位:用绝对路径或相对路劲径行的命令
第二位:别名
第三位:Bash内部命令
第四位:按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷键:
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
2.历史命令
history [选项] [历史命令保存文件]
选项:-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
3.输出重定向 ---定时任务
eg:ifconfig > test.log ---覆盖
ifconfig >> test.log ---追加
错误命令 2>>test.log ---追加记录错误信息
***命令 &>>test2.log ---同时输出正确和错误信息
***ls &>/dev/null ---垃圾站
***cat xdy >> acess.log 2>>error.log ---true:access.log;false:error.log
输入重定向:(应用=软件安装+补丁)
[root@localhost ~]#wc [选项][文件名]
选项:-c 字节数;-w 单词数;-l 行数
eg: wc < access.log
wc << bigflag
4.多命令顺序执行
; 多命令顺序执行
&& 逻辑与
|| 逻辑或
eg:ls && echo yes || echo no
管道符:
命令1 | 命令2 ---命令1的正确结果传给命令2操作
eg:ls -l /etc | more
eg:netstat -an ---网络连接查看
netstat -an | grep ESTABLISHED | wc -l ---服务器连接人数
5.Shell中特殊符号
通配符:
? 任意一个
* 任意多个
[] 中括号中任意一个
Bash中特殊符号:
''
""
`` 引用系统命令
$() 引用系统命令
# 注释
$ 调用变量
\ 转义符
*快捷键
Ctrl+l:清屏
Tab:命令补全,目录补全(once,double)