当前位置: 首页 > news >正文

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.基础语法

语法
说明
示例
文件和文件夹操作

[root@jiangzengkui ~]#
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模式

  1. 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包

转载于:https://blog.51cto.com/13932150/2163561

相关文章:

  • 谈谈如何通过linux系统RHCE考试
  • 漫谈计算机组成原理(八)原码、补码、反码
  • 【c】插入排序
  • 20180824Noip模拟赛10分总结
  • jquery 取id模糊查询
  • DBA:快速了解MySQL及语法
  • 回顾·数据分析的势道术
  • WPF中ListBox滚动时的缓动效果
  • MySQL事务
  • javaOOM该分析dump文件而不是看异常log日志原因
  • DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么
  • NOIP2011DAY1T3 Mayan游戏
  • 1109 Group Photo
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1...
  • 模仿 Go Sort 排序接口实现的自定义排序
  • [nginx文档翻译系列] 控制nginx
  • Android优雅地处理按钮重复点击
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HTML中设置input等文本框为不可操作
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue:响应原理
  • Vue2.0 实现互斥
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • WePY 在小程序性能调优上做出的探究
  • Xmanager 远程桌面 CentOS 7
  • 程序员该如何有效的找工作?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 简单实现一个textarea自适应高度
  • 如何合理的规划jvm性能调优
  • scrapy中间件源码分析及常用中间件大全
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何用纯 CSS 创作一个货车 loader
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • (70min)字节暑假实习二面(已挂)
  • (c语言)strcpy函数用法
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (LeetCode) T14. Longest Common Prefix
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (顺序)容器的好伴侣 --- 容器适配器
  • (学习日记)2024.01.19
  • (转)http-server应用
  • .NET CORE Aws S3 使用
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .netcore 获取appsettings
  • .NET微信公众号开发-2.0创建自定义菜单
  • .Net语言中的StringBuilder:入门到精通
  • .NET值类型变量“活”在哪?
  • .php文件都打不开,打不开php文件怎么办
  • @ResponseBody
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——