linux基础语法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础语法相关的知识,希望对你有一定的参考价值。
1.文件详情
权限表示法。是用10位字符来表示:
第一位:是文件类型,有7种类型,常见的3种 -表示文件 d表示目录 l表示软连接(快捷方式)
后面9位,每3个字符为一组表示3种用户所拥有的权限,依次是文件所有者,所有者所在组,其他人
用户对文件的权限,这三位有每个字符依次是:
r读权限(read)
w写权限(write)
x执行权限
例如
-rw-r--r--.
第一位
2-4 3位,文件所有者权限
5-7所有者所在组权限
8-10其他人
.
-表示是文件类型
rw-可读可写
r--读权限
r--读权限
表示
文件详情数据列表意义:
文件权限
文件引用次数
文件所有者
文件所在组
文件大小
最后修改日期
文件名
-rw-r--r--.
1
root
root
1.2k
8月 21 06:23
install.log
2.环境变量
1.查看环境变量
echo $PATH
2.一旦设置为环境变量,这路径变成了当前路径一样,和window环境变量一致
如: bash /root/jzk/hello.sh ,如果把/root/jzk设置为环境变量,则直接bash hello.sh即可
3.设置环境变量方法
环境变量
(1)当前用户有效
文件在~.bash_profile文件里
vim .bash_profile
多个文件路径用:隔离开
保存退出,
执行命令,让环境变量生效
source .bash_profile
(2)所有用户有效
所有用户有效的环境变量在
/etc/profile文件里,增加
3.基础语法
语法
说明
示例
文件和文件夹操作
[[email protected] ~]#
root表示登录角色,jiangzengkui是电脑名 ~表示当前用户home目录,如root是/root目录,#表示超级管理员,$表示一般用户
命令 [选项] [参数]
常见的命令模式。多个参数可以合并;简化写和完整写
rm -rf 等于rm -r -f
ls -a -a等于--all
ls
查看目录或者文件信息
ls 选项[-alFR...]..... [文件或目录]
参数说明:
-a 显示所有文件,包含隐藏文件
-l 显示文件详细信息
-i 显示文件节点信息
-h 人性化显示文件大小,自动转换为kb或者m
ls -alh 显示所有文件详细信息并且人性化显示文件大小
文件和目录前面可以加路径(相对和绝对路径)
pwd
显示当前所在绝对路径
cd
切换目录路径
cd ~或者cd 回到当前用户的home目录
cd - 进入上一次命令是的目录
cd .. 进入当前目录的上一级目录
cd . 进入当前目录
mkdir
创建一个目录
mdir [选项] 目录
-p 递归 创建多级目录,不加此选项会报错
目录可以是相对路径或绝对路径
mkdir jzk 当前路径创建一个目录
mkdir -p /tmp/test/test1 创建temp和下面的test1子目录
相对路径/绝对路径
相对路径只参照当前所在路径,.表示当前目录,..表示上级目录
绝对路径从跟目录进行查找,不受当前目录影响,所有文件和目录都可以加相对或者绝对路径
rm
删除文件或目录
rm [-r -f] [ 删除文件或者目录]
-r 删除目录
-f 强制删除,如果不加这个参数,每个目录或者文件都会提问是否删除
rm jzk/a.log
rm -r /tmp/jzk
rm -rf /tmp/a
cp
copy文件或者目录
cp [选项] [原目录或者文件] [目标目录或者文件名]
选项:
-r copy目录
-p 复制文件属性,如最后修改日期
-d 链接文件(快捷方式)
-a等价于 -rpd
cp -r jzk jzk /tmp/aa 把jzk目录复制到/tmp/aa目录下,注意如果aa目录不存在,则自动创建aa
cp -a jzk jzk /tmp/aa 所有文件属性完全一致,如文件修改日期
cp -a t.log jzk/t.log 注意如何是copy文件,必须要写目标文件名
mv
剪切文件或者重命名
mv [原文件或者目录] [目标文件或者目录]
注意:没有选项
mv jzk /tmp/ 把
touch
创建文件
touch [选项] [参数]
touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间
touch /tmm/a.log 创建a.log的空文件
touch -m a.log 修改文件的变动时间
vi/vim
编辑文件
vim 文件名
1:进入编辑 touch a.cfg。进入的是 command mode模式
- i键进入编辑模式
3.Esc键退出编辑模式。
4.在:键退出格式,退出 q! 退出不保存 wq!退出保存
cat
查看文件内容
cat 文件名
cat /tmp/t.log 输出t.log文件内容
文件搜索
查找一个文件
locate
按文件名进行搜索
locate 文件名
模糊查询,查询包含输入文件名内容的文件,注意:会把与文件后缀隔离开
从数据库查询,在/var/lib/mlocate/mlocate.db,查询速度最快
数据一天自动更新一次,刚创建的文件查不到
updatedb 手动更新,则能查询到最新文件
注意:文件搜索不搜索/tmp/文件夹
局限:只能搜索文件名
locate a.cfg
updatedb
locate a.cfg
whereis
命令搜索命令
就是搜索linux系统命令
whereis [选项] 命令
-b 只搜索执行文件
-m 只搜索帮助文档
补充:whereis 我在哪 whois 我是谁 whatis 我是干什么的
whereis ls
whereis -b cat
which
命令搜索命令
which除看到文件位置,还可以看到这个命令的别名 whereis 加强版
which ls
which cat
find
多种参数的文件搜索模式
find [搜索范围] [搜索条件]
尽量避免搜索范围过大,如从/目录搜索
注意find是精确完全匹配,和locate不一样。find 如要用模糊查询,则要用到通配符
1.按照文件名搜索
-name 搜索文件名
-iname 不区分大小写
2.按照文件所有者搜索
-user 搜指定所有者的文件
-nouser 搜没有所有者的文件
3.按照文件变化时间搜索
-[时间选项]+[-] 天数
-mtime 文件内容发生改变
-ctime 改变文件属性
-atime 文件访问时间
默认为天数
4.按照文件大小来搜索
find 路径 -size +[-] 大小
5.按照文件节点来搜索
find 路径 -inum 文件inode节点
6.组合查询
-a 表示逻辑与 所有条件都满足
-o 表示逻辑或,之一条件满足即可
7、输出查询结果文件用于文件处理
用-exec 文件处理命令 {};
find /root -name install.log
locate install.log两者结果是有区别的
find /root -name install.log *等于locate install.log
find /root -iname test.log 不区分大小写
find /root -user root 搜索root拥有的所有文件
fint /root -nouser 搜索没有user的文件
find /root -mtime +10 10天前文件内容发生的改变的文件
find /root -mtime -10 10天内文件内容发生的改变的文件
find . -size -25k 搜索文件小于25k的文件
find /etc -size +2M 搜索大于2兆的文件,注意M大写
find . -inum 134277 查找i节点为 134277 的文件
find /etc -size +20k -a -size -50k 查找大于20k小于50k的文件
find /etc -size +20k -a -size -50k -exec ls -l {};
查询结构用ls-l来显示
find /etc -size +20k -a -size -50k -exec rm-rf {};
删除查询出来的结果
grep
搜索字符串命令
查询一个文件(不)包含指定搜索内容所在行展示
grep [选项] 搜索字符串 指定文件
-i 忽略大小写
-v 排除指定的搜索内容
显示的是字符所在的行
grep "size" anaconda-ks.cfg
显示anaconda-ks.cfg文件中包含size字符串的行
通配符
- 任意内容 长度不限
? 任意一个字符
[]括号里任何一个之一
find /root -name "ab*" ab开头的任意文件
find /root -name "ab?" ba开头的3个字符的文件
find /root -name "ab[c,d]" abc 和abd文件
压缩与解压
zip gz bz2
tar.gz tar.bz2 5种常见的linux压缩格式
zip
压缩文件或者文件夹
zip 压缩文件名 目标文件名
zip -r 压缩包名 目标文件目录
linux zip能在window系统通用
zip a.cfg.zip a.cfg 压缩文件
zip -r jzk.zip jzk 压缩文件目录
zip a.cfg ./jzk/a.cfg.zip 把a.cfg压缩到。./jzk目录下的a.cfg.zip中
unzip
解压zip文件
unzip 压缩文件/目录
注意:没有解压文件名或者目录,linux压缩时可以指定压缩文件名及存放目录.
但解压时,是解压到以前文件存放位置及文件名(恢复原状,没有目录则创建),和压缩文件所在目录及文件名无关
unzip jzk/a.cfg.zip
gzip
压缩gz格式的文件及目录
gzip 源文件
注意:不加压缩文件名,自动生成压缩文件名:原文件.gz,原文件消失
gzip -c 源文件名 > 压缩文件名
注意:源文件不消失
gzip -r 原文件目录
注意:压缩文件目录里的所有文件,文件目录不压缩
gzip aa.cfg
gzip -c aaa.cfg > aaa-1.cfg.gz 保留原文件
gzip -r jzk 压缩目录里所有文件,目录不压缩
gunzip
解压gz文件
gunzip 压缩文件
gunzip -r 压缩文件对应的目录
注意:gunzip解压后,就是压缩文件名对应的文件名,和zip不一样,压缩文件消失
解压目录 加-r
gunzip a.cfg.gz
gunzip -r jzk
bz2
压缩bz2文件
bzip2 源文件
压缩成bz2格式,源文件消失
bzip2 -k 源文件 保留原文件
注意:bzip2不能压缩文件夹
bzip2 a.cfg
bzip2 -k aa.cfg
bunzip2
解压bz2文件
bunzip2 压缩文件
bunzip2 -k 保留压缩文件
tar
文件打包命令
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -cvf a.cfg.tar a.cfg 文件打包
tar -cvf jzk.tar jzk 目录打包
tar解包
tar文件解包命令
tar -xvf tar文件名
-x 解包
-v 显示过程
解压到当前目录下,解压后的文件或者目录名就是tar的名称
tar -xvf a.tar
tar.gz打包
tar -zcvf 压缩包名.tar.gz 源文件
-z 把tar转成tar.gz包
以上是关于linux基础语法的主要内容,如果未能解决你的问题,请参考以下文章