终端:文件操作

1 文件操作

  linux的命令是在终端窗口中执行的,这些在终端中执行的命令被称之为shell命令,将多个shell命令按照一定的格式放入文本中被称之为shell脚本;

  1.1 查看当前目录的文件:ls

# 格式:ls -[参数]
# 作用:list,列出当前目录的所有文件,按照参数的格式;
ls -l        #-list:附带文件的详细信息;      
ls -t        #-time:按照时间顺序列出,但是不会显示时间;
ls -i        #-inode:列出当前文件的节点信息;
ls -R        #-recursion:递归列出当前目录的所有文件;
ls -a        #-all:包括以“.”开头的隐藏文件;   

    1.1.1 文件信息的详细说明

d rwx r-x r-x 2 cae cae 4096 3月19 14:16 桌面

#d:表示"桌面"的文件类型为目录文件;
#rwx:表示文件用户的权限;read write execute;进制表示为0b111,即0x7;
#r-x:表示所在用户组其他用户的权限;read - execute;进制表示为0b101,0x6;
#r-x:表示其他用户组用户的权限;read - execute;进制表示为0b101,0x6;
#cae:表示文件用户;
#cae:表示所在用户组;

# x: 可执行权限,可以看做一个软件

    1.1.2 文件类型的说明

ls -l #返回列表的第一个字符表示文件类型;

#- :普通文件,一些应用程序创建的,比如文档、图片、音乐等;
#d : directory 目录文件
#c : char device字符设备文件
#b : block device块设备文件
#l : link 符号连接文件,相当于 Windwos 下的快捷方式
#s : 套接字文件
#p : pipe 管道文件,主要指 FIFO 文件

    1.1.3 查看文件属性

file filename        #显示文件filename的文件属性;

  1.2 更改当前目录

# 格式:cd [路径]
# 作用:change directory,改变当前目录;
cd ..        #改变目录为父目录;
cd ~         #改变目录为当前用户目录;
cd /usr      #改变目录为/usr目录;
pwd             #print work directory,打印当前工作目录的绝对路径;

  1.3 查找文件    

find -name vim*          #查找当前目录下以vim开头的文件
find -name vim*  /etc/   #查找/etc/目录下以vim开头的文件
grep -r "ubuntu"  /usr   #递归查找/usr目录下文本内容包含"ubuntu"的文件;global regular expresstion print;

  1.4 创建文件

touch test        #创建文本文件test
mkdir dirtest     #创建文件夹dirtest

  1.5 打开文件

# 格式:cat -[参数] [路径]
# 作用:catenate,打开路径位置所在的文本文档
cat -n test      #打开当前目录下的test文本,并对文本行数进行标号

  1.6 复制文件(copy from...to...)

cp test1.c  test2.c        #复制test1.c的内容到test2.c中;
cp *.c   ../dirtest        #复制当前目录下的所有.c文件到../dirtest文件夹下;

  1.7 移动文件(move from...to...)

mv test1.c      test2.c        #将test1.c移动到test2.c,相当于重命名成test2.c;
mv test.c    ../dirtest        #将test.c移动到../dirtest文件夹下;

  1.8 删除文件

rm test           #删除文本文件test
rm -r dirtest     #递归删除文本文件test 
rmdir dirtest     #删除文件夹dirtest

  1.9 修改文件权限

#格式: sudo chown  [用户名.组名]   [文件]
#作用:change owner 修改文件的所属用户,所属用户组;
sudo chown root.root  hello     #修改hello文件的用户为root,用户组为root;
#格式:sudo chmod  [权限]  [文件]
#作用:change mode;修改文件的创建用户、所在用户组的用户、其他用户组的用户、的权限;
sudo chmod 666 test        #修改当前路径的test文件的权限为所有用户都可读写;
#格式:sudo [shell命令]
#作用:super user do,以root用户的权限来执行命名;
sudo adduser usertest        #以root用户的权限来创建新的用户usertest;
sudo su cae    #super user do switch user ,切换root用户为cae用户;
sudo -l        #list , 列出当前用户可执行与不可执行的命令;
sudo -h        #help ,显示帮助信息;
#创建新用户时,linux会默认为新用户在/home/下创建一个用户目录,该用户只拥有当前目录的所有权限;

   1.10 开关机

man cd        #查看终端命令手册man,关于cd的用法部分;man [命令]:查看[命令]的使用说明
poweroff      #关闭系统
reboot        #重启系统
uname -rso    #查看当前系统的内核信息;

  1.11 连接文件:(link from...to...)

    1.11.1 硬连接:hard link,具有相同inode的多个文件互为硬连接文件;文件类型不是连接文件;

#格式:ln [原文件]  [硬连接文件]
#作用:硬连接修改后将会同步到其他硬连接文件中,可用来作为备份文件;
#特点:硬连接文件不能连接到目录,也不能连接到ubuntu之外的设备上;
ln hello hello1  #为可执行文件创建一个硬连接hello1;

    1.11.2 软连接:symbolic link,类似于快捷方式的连接文件,文件类型是连接文件;

#格式: ln -s [被连接文件的绝对路径]  [软连接文件]
#作用:创建一个快捷方式,连接到原文件;
#特点:如果原文件不使用绝对路径,那么拷贝连接文件到其他目录下,连接文件会链接不到原文件;
ln -s /home/cae/Program/hello  hellolink    #为hello文件创建了一个快捷方式hellolink;
cp -d hellolink /home/cae/dirtest           #如果不用-d拷贝link文件,则拷贝的将不是link文件,而是hellolink的硬连接;

  1.12 退出

#  ctrl+z    表示退出当前命令
#  ctrl+d    表示退出git账户

2 shell脚本

  将shell命令依次执行的文本文档称之为shell脚本,后缀名为.sh

#!/bin/bash
#shell脚本的第一行固定如上所示,#!是固定的用法
echo "please enter one fruit : "          #echo用来输出"..."字符串
read fruit                                #read将键盘端输入的字符串读取至后面的变量名内
echo "the fruit you enter is $fruit "     #$变量名,用来输出$后面变量名的值;

 ps 零散补充

  绝对路径:从盘符开始直到所需文件目录的路径;

原文地址:https://www.cnblogs.com/caesura-k/p/12519521.html