热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

环境变量PATH、cp命令、mv命令、cat命令、tac命令、more、less、head、tail

2019独角兽企业重金招聘Python工程师标准第二章文件、目录管理2.10环境变量PATHPATH说简单点就是一个字符串变量(该字符串内容是一个命令的绝对路径)ÿ

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

第二章 文件、目录管理

2.10 环境变量PATH

>PATH说简单点就是一个字符串变量(该字符串内容是一个命令的绝对路径),当输入命令的时候LINUX会去查找PATH里面记录的路径。

PATH这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rm)不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 默认

当一个命令在PATH中存在的时候,无需使用其绝对路径,eg:rm、ls、cd等等。

  • 更改环境变量
    eg1: 添加一个环境变量tmp

# PATH=$PATH:/tmp/
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

注: 以上只是临时增加一个变量。如果想要永久添加变量还需要执行以下命令:

# vi /etc/profile 编辑配置文件,在该文件内容最后一行添加PATH=$PATH:/tmp/

174016_t9ey_3706800.png

eg2: 删除环境变量
方法1:

# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 让PATH等于其默认值即可!
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 默认

方法2:

# vi /etc/profile 编辑该配置文件,在内容中删除“PATH=$PATH:/tmp/”即可!

2.11 cp命令

cp=copy
语法: cp [选项] [源文件] [目标文件]
选项:
-r 拷贝目录
-i 安全选项,类似于rm命令,如果遇到一个存在的文件,会询问是否覆盖。centos系统默认cp=cp -i。
注: 当目标目录已存在的时候,cp命令会把源目录放到目标目录下面;当目标目录不存在的时候,cp命令会把源目录重命名后放到目标目录的位置!

例如我想把 test1 拷贝成 test2,这样即可cp test1 test2;

例如我想把 test1 拷到 test2,但test2存在,这样test22会被放到test21下面;

!$ 表示上一个命令的最后一个参数;

在对目录文件进行编辑的时候,命令末尾加"/";对非目录文件进行编辑的时候不必加!

2.12 mv命令

  • mv=move
  • 语法: mv [选项] [源文件] [目标文件]
  • 选项: -i 和cp的-i一样,当目标文件存在是会问用户是否要覆盖(在Redhat/centos系统中,我们用的mv就是mv -i的别名),使用绝对路径/usr/bin/mv时不再出现此询问。
  • 该命令有几种情况:
    1)目标文件是目录,而且目标文件不存在(=重命名--把源文件命名为目标文件的名字)

# mkdir dira dirb 创建目录dira和dirb
# ls
anaconda-ks.cfg dira dirb install.log install.log.syslog
# mv dira dirc 移动目录dira到dirc目录(该目录不存在)下
# ls anaconda-ks.cfg dirb dirc install.log install.log.syslog 目标文件dirc为目录,并且目标目录不存在,相当于把dira重命名为dirc

2)目标文件是目录,而且目标文件存在(=移动)

# mv dirc dirb 移动目录dirc到目录dirb(两个目录均存在)
# ls
anaconda-ks.cfg dirb install.log install.log.syslog
# ls dirb
dirc 目标文件dirc为目录,且目标目录存在,则会把dirc移动到dira目录里

3)目标文件不是目录不存在 (=重命名--把源文件命名为目标文件的名字)

# touch filed 创建文件filed
# ls
anaconda-ks.cfg dirb filed install.log install.log.syslog
# mv filed filee 把源文件filed移动到filee
# ls
anaconda-ks.cfg dirb filee install.log install.log.syslog 目标文件filee不是目录且不存在,相当于把filed文件重命名为filee

4)目标文件不是目录存在
①移动至某目录下(=移动)

# mv filee dirb 移动文件filee到dirb下
# ls
anaconda-ks.cfg dirb install.log install.log.syslog
# ls dirb
dirc filee 目标文件不是目录,且存在则会把源文件移动

②移动至另一个非目录目标文件 (=删除源文件)

[root@3 dir1]# ls
dir2 file1 file2
[root@3 dir1]# mv file2 file1 移动非目录文件file2到非目录文件file2
mv:是否覆盖"file1"? y
[root@3 dir1]# ls
dir2 file1 移动非目录文件file2到非目录文件file1,相当于删除文件file2(源文件)

简略:

mv bash mvtest/1 将文件bash移动到目录mvtest下并更名为1

mv test/   test1/ 将目录test更名为test1

PS :(与cp命令相同,如果目标目录存在,则会把原目录放到目标目录下,如果目标目录不存在,则把原目录更名为目标目录名字)

mv mvtest.txt mvtest2.txt 将文件mvtest更名为mvtest2

2.13 文档查看

  • cat命令
    查看一个文件的内容并显示在屏幕上,后面可以不加任何选项,直接加文件名。
    两个常用选项:
    1)-n 查看文件时显示行号
    eg:

# echo 'aaaaa'>dirb/filee 将“aaaaa”写入filee文件
# echo 'ccccc'>>dirb/filee 将“ccccc”写入filee文件
# cat dirb/dilee
aaaaa
ccccc
# cat -n dirb/dilee
1 aaaaa
2 ccccc

注: “>>”和“>”都是重新定向的作用,即把前面输出的东西输入到后面的文件中,只不过“>>”是追加的意思,而使用“>”时,如果文件中有内容会把内容删除,“>>”则不会。
2)-A 显示所有东西出来,包括特殊字符
eg:

# cat -A dirb/filee
aaaaa$
ccccc$ 在此"$"是结束符号

  • tac命令
    同cat命令,用来显示文件内容,相对cat,该命令是倒序显示文件里的内容。
    eg:

# tac dirb/filee
ccccc
aaaaa

  • more命令
    也是用来查看文件内容的命令,格式是‘cat filename’,当文件内容太多,一屏幕放不下,而使用‘cat’是看不到前面的内容的,使用‘more’可以解决此问题。当看完一屏后按space键继续查看下一屏。当看完所有内容后就会退出,如果想提前退出,按q键。
  • less命令
    作用和more一样,格式‘less filename’,但比more好在可以上翻、下翻。space键同样可以翻页,j键可以逐行向下移动,k键可以逐行向上移动,Ctrl+b和Ctrl+f可分别实现上翻页和下翻页。在使用more和less命令查看文件时,可以键入‘/’,然后输入字符串,Enter,查找该字符串,如果存在多个该字符串,按n(next)可显示下一个,同样可以使用‘?’实现同样的功能,区别是:‘/’是在当前行向下查找,‘?’是从当前行向上查找。
    按G键可以快速到文本最末端,按g可以快速回到文件首部。q键可中途退出。
  • head命令
    查看文件前n行内容。
    语法: head [选项] [filename]
    选项:
    -n n后面跟数字,表示显示n行(不加参数时默认显示前十行)
    eg:

# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
# head -n3 !$
head -n3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

  • tail命令
    同head命令,倒序显示文件后n行内容。
    eg:

# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
# tail -n3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin


转:https://my.oschina.net/u/3706800/blog/1824787



推荐阅读
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • SVN 功能说明(简版)
    Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  •    实现了uboot对非linuxkernel的引导。虽然有一个IH_TYPE_STANDALONE,但是没有实现。nnd.只能自己想办法。实现详细见 ... [详细]
  • macOS命令行创建Android模拟器
    macOS下不安装AndroidStudio使用VSCode来开发Flutter应用使用命令行创建和管理Android模拟器设备avdmanageravdmanager 是一种命令 ... [详细]
  • 原因:在vm上装7.9到sp3,打补丁到1644,再往后别打了,就打就打不开终端了,这个是java安全问题,以下只是终端的一些命令,记录一下:在系统下查看当前的串口:lsdev-C ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup
    【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup ... [详细]
  • IP双栈环境下网络应用迁移
    IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ... [详细]
author-avatar
袁冠芳彦源
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有