Linux下的文件类型和操作命令

0.写一个shell脚本:

1.简单的写一个shell脚本

创建脚本文件时,首行必须加上#!/bin/bash
  * #虽然是注释行,但在shell脚本文件中,会被执行
  * !表示使用哪个shell执行脚本

#!/bin/bash
# 执行test.exe
test

如何成功执行shell脚本
  * 将shell脚本所在目录添加到$PATH中PATH = $PATH:/home/dvp/test/bin
  * 或者直接使用单点操作符(指向当前路径),引用这个脚本./test
注意给脚本文件添加权限:

ls -l test :查看权限
chmod -R 777 test;

2.shell脚本中引用变量:使用$引用

#!/bin/bash
str = "hello world"
nums =5
echo "say $str $nums time"

3. shell脚本引用命令:使用反引号``引用

#!/bin/bash
str = `which BDSJJS`
echo "BDSJJS find in $str"

4.shell脚本执行数学计算:$[math] bash shell只支持整数运算

#!/bin/bash
var1 = 100
var2 = $[$var1 +100]
echo the final  result is $var2

5.退出脚本(查看退出码)$?exit

退出码结果为0,正常;为正数,异常。

#!/bin/bash
var1 = 100
var2 = $[$var1 +100]
echo $? 
#!/bin/bash
var1 = 100
var2 = $[$var1 +100]
exit = 5也可以是$var1

1.Linux下文件的类型:

  1. 普通文件(用[-]表示)
    纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件
  2. 目录文件 ([d])
  3. 块设备文件 (说白了就是硬盘,/dev/hda1,[b])
  4. 字符设备 (串口,比如键鼠之类的, [c])
  5. 套接字
    常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型
  6. 管道文件
    FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]
  7. 链接文件 [i]
    例如文件权限中:[lrwxrwxrwx]

2. "drwxr-x---" 解释一下:

第一个d:表示文件类型,就是上述写的那些。
rwxr-x---:分别表示文件所有者、文件所有组、其他用户的权限。
另外补充一下:(可读、可写、可执行:4、2、1;4+2+1=7)

chomd -R 777 /home/a.txt
//改变三个用户对a文件的权限为可读可写可执行

3. Linux一些文件放置的位置:

  • home:存放普通用户的相关文件
  • bin :存放常用(普通的)的命令的文件
  • sbin:存放具有一定权限才可以使用的命令的文件
  • mnt:mnt默认光驱盒软驱的目录的文件
  • boot:存放引导相关的文件
  • etc:存放配置相关的文件(如mysql,Eclipse...)
  • var :存放经常变化的文件
  • usr :安装软件时的默认存放的文件

4. Linux下对文件的操作命令:

1.cat命令:查看内容较少的文件,concatenate连续文本,-n显示行数

cat -n /etc/file 
、、

2.more命令:查看内容较多的文件,实时显示百分比,已经阅读了多少内容

more -n /etc/file 

3.less命令:查看内容较多的文件(less is more),但是可以上下翻页

4.head命令:查看文件的部分内容,用于查看文件的前n行

head -n 20 /etc/file 

5.tail命令:查看文件的部分内容,与head命令相反,查看文件后n行

tail -n 20 /etc/file 

6.grep :在文件中搜素内容

常用选项
  -i :忽略大小写(ignore case)
  -n :显示行号
  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

grep -n "root" /etc/file 
grep [tf]  /etc/file :正则表达式搜索,搜索关键字e或者f

7.find命令

find  原目录  -name ‘*.txt’

8.ls命令

ls- F : 区分文件和目录

9.软链接和硬链接(cp或者ln)

cp -l test1 test2 : 硬链接,可用ln代替
cp -s tset1 test2 : 软链接

10.创建文件和目录:

touch test1 :创建文件
mkdir File1 :创建目录

5.Linux下对进程的shell命令

1.ps命令(查看进程)-e:全部进程;-f:显示完整的输出

ps -ef 

2.top命令(实时监控进程)

  显示:
    时间,系统运行时间,用户数,平均负载(最近1min,5min,15min)

3.结束进程命令

kill -9 进程号
killall  进程名

4.使用alias给进程添加别名

alias -p:查看所有别名
alias lf = 'ls -F'

6.Linux下关于磁盘的shell指令

1.挂载指令

由于Linux将所有磁盘都挂载在一个虚拟目录之下,使用

mount :查看所有挂载磁盘
mount -t type device directory :挂载磁盘(文件类型,设备名,挂载位置)
mount -t vfat /dev/sdb1 /root/ :将u盘的sdb1挂载在root下
umount dirctory|device :移除挂载

2.查看磁盘空间指令

df -h

7.文件的压缩归档

包括:zip,gzip,tar(相对最常用,用于多个目录打包)

tar -cvf home_backup.tar /home1 /home2 :将home1和home2下所有文件打包至于home_backup.tar中
tar -tf home_backup.tar :不解包,只是列出包含文件
tar -xvf home_backup.tar :解包
tar -zxvf file1.tgz :解压使用gzip压缩过的tar文件,后缀.tgz

8.设置环境变量shell指令

1.查看显示全局/局部环境变量

printenv :查看全局环境变量
echo $java :显示单个环境变量
set: 查看除了所有全局环境变量以外的局部环境变量(局部环境变量与单独进程挂钩)

2.设置局部环境变量

假设有一个进程test,对其设置环境变量

test = /home/dvp/bin
echo $test :显示路径 /home/dvp/bin
test = 'test a string'  :对于包含空格的环境变量,需加单引号 
echo $test :显示路径 test a string

2.设置全局环境变量(全局环境变量在所有子进程中均可见)

test = /home/dvp/bin
echo $test
export test :创建局部变量后导入全局环境变量,使之成为全局环境变量

3.删除环境变量(unset)

unset test :注意不要在子进程中删除全局环境变量,无效

4.给PATH设置环境变量(PATH定义了命令行输入指令后,去哪里搜索)

echo $PATH
PATH = $PATH:/home/usr/test :PATH各个路径之间是用:分隔的
echo $PATH
echo $PATH
PATH = $PATH:. :将单点符加入PATH,表示当前路径
cd test
test :去执行文件的路径底下就可以直接执行

5.登陆shell

四个启动文件:

  • /etc/profile ----->系统默认的bash shell启动文件,每个用户都会登录shell都会启动
  • $HOME/.bash_profile :下面三个选用一个即可,注意bash_profile会先访问HOME目录下./bashrc里的路径,先启用改文件下的路径
  • $HOME/.bash_login
  • $HOME/.profile
posted @ 2022-03-29 15:00  周小鱼丶  阅读(83)  评论(0)    收藏  举报