如何在Linux中获取当前路径 (linux获取当前路径)

在Linux系统中,获取当前路径是经常需要用到的操作。无论是在终端中操作,还是在编写脚本时,都需要获取当前路径。在本文中,将介绍一些方法来获取Linux系统中的当前路径。

方法一:使用pwd命令

pwd命令是Linux系统中的一个常见命令,它用于显示当前工作目录的名称。在终端中输入pwd命令即可获取当前路径。例如,打开终端,输入pwd命令,将得到如下输出:

“`

$ pwd

/home/user/Downloads

“`

在输出中,/home/user/Downloads表示当前所在路径,也就是当前工作目录的绝对路径。如果需要获取当前路径的相对路径,可以结合其他命令使用。

方法二:使用$PWD环境变量

在Linux系统中,$PWD是一个环境变量,它表示当前工作目录的绝对路径。使用echo命令可以打印出这个变量的值,从而获取当前路径。例如,在终端中输入如下命令:

“`

$ echo $PWD

/home/user/Downloads

“`

输出结果与pwd命令的输出结果相同。需要注意的是,$PWD是一个环境变量,如果当前工作目录发生改变,它的值也会随之改变。

方法三:使用readlink命令

readlink命令是用于显示文件的符号链接的目标文件的名字或实际路径的命令。如果将当前路径作为参数传入readlink命令中,则可以获取当前路径的绝对路径。例如,在终端中输入如下命令:

“`

$ readlink -f .

/home/user/Downloads

“`

在命令中,点号(.)表示当前路径,-f参数表示输出绝对路径。读者可以根据需要使用相对路径或绝对路径。

方法四:使用basename和realpath命令

basename和realpath命令组合使用可以获取当前路径。basename命令用于获取给定路径中的文件名或目录名。realpath命令用于获取路径的绝对路径。如果将当前路径作为参数传入这两个命令中,即可得到当前路径的绝对路径。例如,在终端中输入如下命令:

“`

$ basename “$(realpath .)”

Downloads

“`

在命令中,点号(.)表示当前路径,realpath命令用于获取绝对路径,basename命令用于获取当前路径的目录名。其中,双引号用于包含命令,以避免特殊符号的影响。

方法五:使用Python脚本

在开发中,可能需要编写Python脚本来获取当前路径。以下代码可以实现这个功能:

“`python

import os

current_path = os.getcwd()

print(current_path)

“`

在脚本中,os模块的getcwd方法用于获取当前工作目录的路径,然后通过print函数输出即可。

本文介绍了五种获取Linux系统中当前工作目录的方法,包括pwd命令、$PWD环境变量、readlink命令、basename和realpath命令组合、以及Python脚本。读者可以根据需要选择不同方法,以达到自己的目的。无论是在终端中操作,还是在编写脚本时,获取当前路径都是一项基础而重要的操作。

相关问题拓展阅读:

基本linux命令

基本linux命令有哪些呢?

1、ls命令

就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

常用参数搭配:

ls -a 列出目录所有文件,包含以.开始的隐藏文件

ls -A 列出除.及..的其它文件

ls -r 反序排列

ls -t 以文件修改时间排序

ls -S 以文件大小排序

ls -h 以易读大小显示

ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

实例:

(1) 按易读方式按时间反序排序,并显示文件详细信息

ls -lhrt

(2) 按大小反序显示文件详细信息

ls -lrS

(3)列出当前目录中所有以”t”开头的目录的详细内容

ls -l t*

(4) 列出文件绝对路径(不包含隐藏文件)

ls | sed “s:^:`pwd`/:”

(5) 列出文件绝对路径(包含隐藏文件)

find $pwd -maxdepth 1 | xargs ls -ld

2、cd 命令

cd(changeDirectory) 命令语法:

cd

说明:切换当前目录至 dirName。

实例:

(1)进入要目录

cd /

(2)进入 “home” 目录

cd ~

(3)进入上一次工作路径

cd –

(4)把上个命令的参数作为cd参数使用。

cd !$

3、pwd 命令

pwd 命令用于查看当前工作目录路径。

实例:

(1)查看当前路径

pwd

(2)查看软链接的实际路径

pwd -P

4、mkdir 命令

mkdir 命令用于创建文件夹。

可用选项:

-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;

-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

实例:

(1)当前工作目录下创建名为 t的文件夹

mkdir t

(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

mkdir -p /tmp/test/t1/t

5、rm 命令

删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

rm 文件…

实例:

(1)删除任何 .log 文件,删除前逐一询问确认:

rm -i *.log

(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认:

rm -rf test

(3)删除以 -f 开头的文件

rm — -f*

6、rmdir 命令

从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。

注意:不能删除非空目录

实例:

(1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:

rmdir -p parent/child/child11

7、mv 命令

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。

当第二个参数为目录时,之一个参数可以是多个以空格分隔的文件或目录,然后移动之一个参数指定的多个文件到第二个参数指定的目录中。

实例:

(1)将文件 test.log 重命名为 test1.txt

mv test.log test1.txt

(2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中

mv llog1.txt log2.txt log3.txt /test3

(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖

mv -i log1.txt log2.txt

(4)移动当前文件夹下的所有文件到上一级目录

mv * ../

8、cp 命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

-i 提示

-r 复制目录及目录内所有项目

-a 复制的文件与原文件时间一样

实例:

(1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。

cp -ai a.txt test

(2)为 a.txt 建议一个链接(快捷方式)

cp -s a.txt link_a.txt

9、cat 命令

cat 主要有三大功能:

1.一次显示整个文件:

cat filename

2.从键盘创建一个文件:

cat > filename

只能创建新文件,不能编辑已有文件。

3.将几个文件合并为一个文件:

cat file1 file2 > file

-b 对非空输出行号

-n 输出所有行号

实例:

(1)把 log2023.log 的文件内容加上行号后输入 log2023.log 这个文件里

cat -n log2023.log log2023.log

(2)把 log2023.log 和 log2023.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

cat -b log2023.log log2023.log log.log

(3)使用 here doc 生成新文件

cat >log.txt Hello

>World

>PWD=$(pwd)

>EOF

ls -l log.txt

cat log.txt

Hello

World

PWD=/opt/soft/test

(4)反向列示

tac log.txt

PWD=/opt/soft/test

World

Hello

10、more 命令

功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

命令参数:

+n 从笫 n 行开始显示

-n定义屏幕大小为n行

+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示

-c从顶部清屏,然后显示

-d提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l忽略Ctrl+l(换页)字符

-p通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s把连续的多个空行显示为一行

-u把文件内容中的下画线去掉

常用操作命令:

Enter 向下 n 行,需要定义。默认为 1 行

Ctrl+F 向下滚动一屏

空格键 向下滚动一屏

Ctrl+B 返回上一屏

=输出当前行的行号

:f 输出文件名和当前行的行号

V 调用vi编辑器

!命令 调用Shell,并执行命令

q退出more

实例:

(1)显示文件中从第3行起的内容

more +3 text.txt

(2)在所列出文件目录详细信息,借助管道使每次显示 5 行

ls -l | more -5

按空格显示下 5 行。

11、less 命令

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

常用命令参数:

-i 忽略搜索时的大小写

-N 显示每行的行号

-o 将less 输出的内容在指定文件中保存起来

-s 显示连续空行为一行

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

-x 将“tab”键显示为规定的数字空格

b 向后翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一行

回车键 滚动一页

: 向下翻动一页

: 向上翻动一页

实例:

(1)ps 查看进程信息并通过 less 分页显示

ps -aux | less -N

(2)查看多个文件

less 1.log 2.log

可以使用 n 查看下一个,使用 p 查看前一个。

12、head 命令

head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

常用参数:

-n 显示的行数(行数为复数表示从最后向前数)

实例:

(1)显示 1.log 文件中前 20 行

head 1.log -n 20

(2)显示 1.log 文件前 20 字节

head -c 20 log2023.log

(3)显示 t.log最后 10 行

head -n -10 t.log

13、tail 命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

常用参数:

-f 循环读取(常用于查看递增的日志文件)

-n 显示行数(从后向前)

(1)循环读取逐渐增加的文件内容

ping 127.0.0.1 > ping.log &

后台运行:可使用 jobs -l 查看,也可使用 fg 将其移到前台运行。

tail -f ping.log

(查看日志)

14、which 命令

在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which 查看可执行文件的位置。

whereis 查看文件的位置。

locate 配合数据库查看文件位置。

find实际搜寻硬盘查询文件名称。

which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回之一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

常用参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

实例:

(1)查看 ls 命令是否存在,执行哪个

which ls

(2)查看 which

which which

(3)查看 cd

which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)

查看当前 PATH 配置:

echo $PATH

或使用 env 查看所有环境变量及对应值

15、whereis 命令

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

常用参数:

-b 定位可执行文件。

-m 定位帮助文件。

-s 定位源代码文件。

-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

实例:

(1)查找 locate 程序相关文件

whereis locate

(2)查找 locate 的源码文件

whereis -s locate

(3)查找 lcoate 的帮助文件

如何获取linux进程的执行文件路径

1、根据进程名族闹弯,找出pid

例如python

# ps -ef|grep python 找到python的弯陆pid

2、根据pid可在/proc中找到兆闷执行文件路径

# ls -l /proc/pytohpid

ps查看所有符行纤芹合./cmd的进程,找出其对应的进程号 用ll命令: ll 进程号 如下显示一个示例: # lltotal 0 -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 cmdline -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 cpu lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 cwd -> /home/zhouys/s/bin -rzhouys zhouys 0 Dec 11 11:10 environ lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 exe -> /home/zhouys/s/bin/cbs (deleted) dr-xzhouys zhouys 0 Dec 11 11:10 fd -rzhouys zhouys 0 Dec 11 11:10 maps -rwzhouys zhouys 0 Dec 11 11:10 mem -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 mounts lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 root -> / -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 stat -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 statm -r–r–r– 1 zhouys zhouys 0 Dec 11 11:10 status /proc文件系统下的 进程号目录 下面的文件镜像了进程的当前运行信息, 从中可以看到: cwd符号链接的就是进程22401的竖告运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令;本例为:./cbs cpu记录档毕了进程可能运行在其上的cpu;显示虚拟的cpu信息 environ记录了进程运行时的环境变量 fd目录下是进程打开或使用的文件的符号连接 … 通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及 定位是那个应用才使用此服务程序。linux获取当前路径的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux获取当前路径,如何在Linux中获取当前路径,基本linux命令,如何获取linux进程的执行文件路径的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux中获取当前路径 (linux获取当前路径)