linux学习笔记7

环境变量PATH

==(注意最好不要随便更改系统的命令路径,以免造成问题)==

  • 关于PATH的作用:

PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。

  • 查看命令所在的路径和别名
which ls         查看ls命令所在的绝对路径
  • 命令所在路径
echo $PATH                输入echo$PATH的到下面结果

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

which查找的路径是在下面这些目录下查找的,这些目录用冒号做了分割。
如果我们要使用的命令是在这其中的目录里,那使用的时候就不需要输入绝对路径,别名就可以。

如何添加环境变量
  1. 假设/tmp/目录下有命令ls2

  2. 输入PATH=$PATH:/tmp/

  3. echo $PATH查看这个环境变量下是否成功添加了/tmp/这个目录

  4. 这时候就可以直接敲ls2命令了,which ls2可以查看到这个命令的绝对路径

但是新添加的环境变量,只是当前终端可以使用,并不是永久的,我们需要给他配置成永久的
  1. vi /etc/profile 打开配置文件

  2. 在配置文件的最后另起一行添加 PATH=$PATH:/tmp/

  3. 保存后,每次开机重启都会去加载这个目录,就可以使用这里的命令了

如果我们不想要这个变量了
  1. 就这样重新设置一下变量只添加原有的目录就可以了
    PATH=$PATH:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
    
  2. 然后打开配置文件
    vi /etc/profile
    
  3. 找到最后一行新添加的目录/tmp/删掉后保存就可以了

 cp命令

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

  • 语法:cp(选项)(参数)
  • 选项:

    -a:此参数的效果和同时指定"-dpR"参数相同;

    -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

    -f:强行复制文件或目录,不论目标文件或目录是否已存在;

    -i:覆盖既有文件之前先询问用户;

    -l:对源文件建立硬连接,而非复制文件;

    -p:保留源文件或目录的属性;

    -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

    -s:对源文件建立符号连接,而非复制文件;

    -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

    -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

    -b:覆盖已存在的文件目标前将目标文件备份;

    -v:详细显示命令执行的操作。

  • 参数:

    源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;

    目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

  • 实例:

  1. 如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

  1. 将文件file复制到目录/usr/men/tmp下,并改名为file1

    cp file /usr/men/tmp/file1
    
  2. 将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中

cp -i /usr/men m*.c /usr/zh
  1. 在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,如果多的话会很麻烦,总结了一个方法:
cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录。

cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。

\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。

 mv命令

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

  1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
  2. 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

  • 语法:(选项)(参数)
  • 选项:

    --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;

    -b:当文件存在时,覆盖前,为其创建一个备份;

    -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

    -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

    --strip-trailing-slashes:删除源文件中的斜杠“/”;

    -S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

    --target-directory=<目录>:指定源文件要移动到目标目录;

    -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

  • 参数:

    源文件:源文件列表。

    目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

  • 实例:

  1. 将文件ex3改名为new1
mv ex3 new1
  1. 将目录/usr/men中的所有文件移到当前目录(用.表示)中:
mv /usr/men/* .

文档查看cat_more_less_head_tail

  • linux下集中文档查看命令

  • cat 由第一行开始显示内容,并将所有内容输出

  • tac 从最后一行倒序显示内容,并将所有内容输出

  • more 根据窗口大小,一页一页的现实文件内容

  • less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

  • head 只显示头几行 head -n 1

    可以用这个命令追加文档内容到1.txt
    head -n2 /etc/passwd >> 1.txt passwd头两行的内容追加到1.txt里

  • tail 只显示最后几行 tail -n 1
    追加和重定向也适用于tail命令

  • 用法:cat /root/1.txt head -n 1 /root/1.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值