linux注意点
linux和window的区别
linux严格区分大小写,注意和doc是不一样的
linux的所有内容都以文件的形式保存,包括硬件
linux没有扩展名的这种名称的
- 压缩包:.gz .bz2 .tar.baz2 .tgz等
- 二进制: .rpm
- 网页 html .php
- 脚本 .sh
- 配置文件 .conf
以上就是约定俗称的的名称但是如果没有
window的程序不能直接在linux下运行
字符界面的优势
占用的系统资源更少
减少了出错,减少了被攻击的可能性
linux的安装
ide 硬盘”、: /dev/hd*
scsi usb sata : /dev/sd*
linux的常用命令
[root@loclalhost ~]#
root 当前登录用户
localhost 主机名
~当前所在的目录
#
超级用户的提示符
$
如果是普通用户的话,就显示$
一、命令基本格式
命令 [选择] [参数]
注意
- 个别不支持上述的命令格式
- 多个选项是后,可以写在一起
- 简化 -a 完整的选项 --a 有两个刚
权限;
-rw-r--r--
文件类型:看第一位:如果是-文件 d目录 l软连接文件
rw- (u所有者)r--(g所属组)r--(o其他人): rwk r:red w:write写 x:执行
ls
ls [选项] [file/dir]
选项:-a 所有的文件包括隐藏的 -l详细信息
-d查看目录属性 -h人性化显示文件大小 -i显示inode
linux的隐藏文件:以.
开头的文件
二、文件处理命令
目录处理命令:
mkdir -p [目录名称]
-p 递归创建 (目录名称是一串多个目录的时候)
cd (change directive)
cd [目录]
简化操作
cd ~ 当前用户的家目录
cd 同上
cd - 进入上次目录
cd .. 进入上一级目录
cd. 进入当前目录
绝对路径:
cd /etc/这个就是从根目录开始的
cd ../etc/这个就是相对路径的
pwd显示当前文件路径
rmdir (remove empey directive )
只能删除非空目录 这里删除的比较少
rm 删除不管是不是非空文件
rm -rf /japan/
参数 -rf
r 表示删除目录
f 强制删除(不再疑问)
cp (copy)
cp 【选项】 【源文件/目录】 【目标文件/目录】
-r 复制目录
-p 连带文件属性复制
-d 源文件是链接文件,就复制链接属性
-a 相当与 -pdr
ll 就是ls -l两个命令完全一样
mv (move)
mv [源文件或目录] [目标目录]
剪切 ,没有-r
如果源文件和目标文件在同一个文件下,就是改名
如果源文件和目标文件不在同一个文件下,就是剪切
常用的目录
/bin
/sbin 命令保存目录 超级用户才能使用
/usr/bin/系统命令 普通用户
/usr/sbin /系统命令超级用户才能使用
以上都是用来保存系统命令的,区别在于普通权限还是超级用户权限
/boot 启动目录
/dev 特殊文件保存目录
/etc系统的配置文件
/lib 函数库的保存位置
以下三个是空目录,用来挂载外接的设备的
/media
/mnt
/misc
以下两个是挂在内存的盘符:
/sys
/proc
临时目录:/tmp
系统软件资源目录 /usr/
系统相关的文档内容/var
链接命令
ln -s [源文件] [目标文件]
link
生成链接文件
选项 -s 创建软链接
硬链接特征:
- 拥有相同的i节点和储存block块 可看成是同一个文件
- 同过i节点识别
- 不能夸分区
- 不能针对目录使用
软连接的特点:
- 类似于window的快捷方式
- 有自己的i节点和block块,但是只保存源文件的文件名和I节点号,没有实际的文件数据
- lrwxrwxrwxx 权限全放开
- 修改任意文件,另一个都改变
- 删除源文件,软连接不能使用
三、文件搜索命令
1、 文件搜索命令 locate
速度最快
localte 文件名
在后台数据库中按文件名搜索,速度更快
/var/lib/mlocate
会在这个里边进行搜索,而不会搜索实际的文件,这个数据库一天一更新,所以找不到新建的文件
updatedb
这个命令强制更新数据库
locate locate
这个查看locate的文件命令
eg:
locate changls//只能根据文件名来查看
在文件/etc/updatedb.com
配置文件中
prune_bind_mounts = "yes"开启搜索x限制
prunefs = 不搜索的文件系统
prunenames= 不搜索的文件类型
prunepaths 不搜索的路径
2、 命令的搜索命令whereis 与which
whereis 命令名
搜索命令所在的位置:
whereis ls
这个就是查看命令文件的
选项:-b 只查找可执行文件
-m 只查找帮助文件
which命令:
搜索文件所在的路径一及别名能够看到文件的别名
which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
3、 文件搜索命令find
完全匹配
find [范围] [文件名]
find / -name install.log
#根据名字搜索
find / -iname install.log
# iname名字不区分大小写
find /root -user root
#根据所有者查询
find /root -nouser
#没有所有者的文件
find /var/log/ -mtime +10
#查找十天前修改的文件
find . -size 25k
# 注意:这里的k是小写,然后M是大写
# 查找文件大小是25k的文件
find . -inum 262422
# 查找inum结点是26422的文件
按照时间 find /var/log/ -mtime +10
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问的时间
ctime 改变文件属性
mtime 修改文件内容
find在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符,通配符是完全匹配的
find的复杂操作
find /etc -size +20k -a -size -50k
# -a表示 and 逻辑与
# -o 表示 or 逻辑或
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
查找 并且显示详细的信息
# -exec/-ok 命令{} \对搜索结果执行操作
-exec/ (这里填写执行情况) {} \ ;这是一个固定的命令格式
通配符:
*
?表示任意一个字符
[ab]表示匹配a或者是b
4、字符串搜索命令 grep
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
-i 忽略大小写
-v 排除指定字符串
其实就是在后头的文件中找到关键字对应的信息
5、find与 gerp的区别
find:
系统当中搜索符合条件的文件名,需要完全匹配
grep 文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式也是包含匹配
四、帮助命令
man
查看文件说明
man -f 相当于 whatis命令 查看有哪些对应的帮助等级
举例:
man -5 passwd
man -4 null
man -8 ifconfig
man的级别
- 查看命令的帮助
- 可被内核调用的函数的帮助
- 函数和函数库的帮助
- 查看特殊文件的帮助,主要是/dev下的文件
- 查看配置文件按的帮助
- 游戏的帮助
- 其他杂项的帮助
- 系统管理员可用命令的帮助
- 和内核相关文件的帮助
查看和命令相关的所有的帮助:
man -k 命令
相当与 apropos命令
命令--help
shell内部命令
- help 内部命令
help cd
如和判断是不是内部命令 如果通过whereis 找不到对应的文件,只能找到帮助文档就知道是内部命令了
help 和man分别获取前后的命令 - info
-回车 进入子帮助界面,带有* 标记
-u 进入上层页面
-n 进入下一个帮助小节
-p 进入上一个帮助小节
-q 退出
五、 压缩与解压缩命令
常见的五种压缩格式: .zip/ .gz/ .bz2 /.tar.gz/ .tar.bz2
zip
zip 压缩文件名 源文件(压缩文件)
zip -r 压缩文件名 源文件 (压缩目录)加个-r就是目录
gzip
.gz 类型的文件
gzip 源文件 (源文件会丢失)
gzip -c 源文件 > 压缩文件
尖括号>用来输出文件,就比如 ls > abc 就把ls下所有输出的东西写到了abc文件中
压缩为.gz格式的文件,但是源文件保留
gzip -r 目录
压缩目录下的所有的子文件,但是不能压缩目录
解压文件 gzip -d 压缩文件
以上为解压缩文件
gunzip 压缩文件
解压缩文件
gzip压缩目录有问题
bzip 源文件
.bz2格式,但是不保留源文件
-k 无论在压缩还是解压缩的是后,都保留了原来的文件
bzip2 -k 源文件 压缩后保留源文件
注意;bzip2命令不能压缩目录
解压缩: bzip2 -d 压缩文件/bunzip2 压缩文件
打包命令tar
tar -cvf 打包文件 源文件
-c 打包 -v 显示过程 -f 指定打包后的文件名
tar -xvf 打包文件名
-x 解打包
如果打包加压缩成gz
tar -zcvf 压缩包名.tar.gz 源文件
解压缩加解包
tar -zxvf 压缩包名.tar.gz 源文件
如果打包加压缩成bz2
tar -jcvf 压缩包名.tar.bz2 源文件
解压加解打包
tar -jxvf 压缩包名.tar.bz2
六、关机和重启命令
shutdown命令
shutdown [选项] 时间
-c 取消前一个关机命令 -h关机 -r 重启
shutdown -r 05:30 &
这个&的作用是在后台执行,倒时候会自动执行
时间可以是now
other 关机命令
halt /poweroff /init 0
都不会很安全
other 重启命令
reboot /init6
系统的运行级别:
0 关机
1 单用户
2 不完全多用户,不含nfs服务
3 完全多用户
4 未分配
5 图形界面
6 重启
退出登录
logout 推出登陆
七、其他常用命令
挂载命令
用户登陆查看和用户交互命令
mount 挂载命令
mount -a 依据配置文件,/etc/fstab的内容,自动挂载
挂载命令格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
选项:
-t 文件系统,制定挂载的类型,可以是ext3 ext4 iso9660等文件系统
-o特殊选项:可制定挂载的额外选项
赋予执行权限:
chmod 755 [filename]
vi
#!/bin/bash
#第一行必须是上边的那句话,不可省略
echo "helloworld "
用户登陆查看命令
- w 用户/显示用户的信息
- who 用户名
- last 查看所有用户的登陆信息/系统的重启时间
- lastlog 默认读取var/log/lastlog文件内容
命令输出
-用户名 登陆终端 ip最后一次登陆时间
shell基础
脚本的执行方式
1、 echo输出命令
echo [选项] [输出内容]
选项:
\a 警告 \n换行 \b 退格,左删除\r回车\t制表\v垂直制表\Onnn 按八进制输出字符\xhh十六进制输出字符
第一个脚本
[root@localhost filegz]# vi testsh
然后执行
#!/bin/bash
# The first programe
echo -e "hello world"
调用的时候,两种方式:
./test.sh
或者是bash test.sh
别名与快捷键
bash 的基本功能:
1、命令别名与快捷键
查看所有的别名:alias
设值别名:注意自己别随便添加空格
alias ls='ls --color =never'
写入环境变量配置文件
vi ~/.bashrc
删除别名unalias 别名
命令生效的顺序:
1、 第一顺位执行用绝对路径或者是相对路径执行的命令
2、执行别名
3、执行bash的内部命令
4、执行按照$path环境变量定义的目录查找顺序找到的第一个命令
快捷键
- 强制终止 ctrl+c
- 清屏 ctrl+u
- 光标移动到命令行首 ctrl+a
- 光标移动到命令行尾 ctrl+e
- 光标删除到行首 ctrl+u
- 命令放入到后台 ctrl+z
- 历史命令中搜索 ctrl + r
2、历史命令
上下箭头来调用
使用 !n
重复执行第n条历史命令
使用 !!
上一条历史命令
使用 !字符串
重复执行最后一条以该字串开头的命令
history [选项] [历史命令的保存文件]
-c 清空历史命令 -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
历史命令中默认保存1000条,如果不满意可改变/etc/profile/
HISTSIZE=10000
命令文件的补全:Tab键盘
命令补全以来Path目录 echo $PATH
3、输出重定向
标准输出重定向(只有正确的是后)
命令 > 文件 命令的内容写到文件中
命令 >> 文件 命令的内容追加到file中
标准错误输出
命令 2>> file 追加的是错误的信息
命令 2>file 覆盖的是错误的信息
如果是错误输出,大于号左边是不能有空格的
如果一个文件错误不错误的信息都输入到这个文件中:
ifconfig longzls >> test2.log 2>&1
同时保存:
命令 > 文件 2>&1 # 覆盖的形式
命令 >> 文件 2>&1 # 追加的形式
命令 &>文件 #覆盖的方式
命令 &>>文件 #追加的方式
命令>>文件1 2>>文件2 #正确的输出追加到文件1中,错误的输出追加到文件2中
输入重定向:
wc [选项][file]
-c 统计直接数
-w t统计单词数
-l 统计行数
之后ctrl +d 就能看了
4、多命令顺序执行
; 多个命令顺序执行,命令之间没有任何逻辑联系
&& 逻辑与前边执行,后头才会执行,1不对,短路
|| 逻辑或,命令1执行不正确,命令2才会执行
管道符
命令1 | 命令2 命令1的正确输出作为命令2的操作对象
5、shell中的特殊符号
通配符:
- ? 只能匹配一个支付
- 只能匹配多个字符
- [] 只能匹配中括号内的东西【abv】就指有a 或是b或是c
- [-] [1-9]表示匹配1-9
- [^] [^1-9] 不是数字所有的单个字符
正则表达式:
其他的特殊符号:
- "
- '
- ``括起来的内容就是系统命令,bash中会先执行类似于$()
- $()
-
#
注释 - $ 调用变量的值
- \ 转义字符