Skip to content

Latest commit

 

History

History
333 lines (247 loc) · 8.94 KB

文件目录指令.md

File metadata and controls

333 lines (247 loc) · 8.94 KB

文件目录指令

pwd 指令

pwd 指令:显示当前目录的绝对路径,Linux的根目录是:"/"

callmewenhao@ubuntu:~$ pwd
/home/callmewenhao

ls 指令

ls 指令:显示当前文件夹中的文件和目录

ls -a:显示当前文件夹中的文件和目录,包括隐藏的

ls -l:以列表的方式显示信息

建议:ls -lh

callmewenhao@ubuntu:~$ ls -l
total 32
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Desktop
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Documents
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Downloads
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Music
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Pictures
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Public
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Templates
drwxr-xr-x 2 callmewenhao callmewenhao 4096 Mar 18 06:23 Videos
callmewenhao@ubuntu:~$ ls -a
.   .bash_history  .bashrc  .config  Documents  .gnupg  Music     .profile  Templates  .Xauthority
..  .bash_logout   .cache   Desktop  Downloads  .local  Pictures  Public    Videos

Linux中的绝对路径和相对路径:

当前在home目录,则到a.txt的绝对路径是:/home/tom/a.txt,相对路径是:tom/a.txt

cd 指令

cd ~ 回到自己的家(当前用户下目录如:/home/callmewenhao)目录

cd .. 回到当前目录的上一级目录

cd ../.. 回到当前目录的上上一级目录,如:cd ../../root

使用cd命令主要是学会绝对路径和相对路径cd后面可以跟绝对路径也可以跟相对路径,如:使用 cd / 回到根目录

mkdir 指令

mkdir 指令用于创建目录或多级目录

# 创建一个目录:
callmewenhao@ubuntu:~$ ls
callmewenhao@ubuntu:~$ mkdir project
callmewenhao@ubuntu:~$ ls
project

# 创建多级目录:
callmewenhao@ubuntu:~$ ls
callmewenhao@ubuntu:~$ mkdir -p project/yolo
callmewenhao@ubuntu:~$ ls
project
callmewenhao@ubuntu:~$ ls project
yolo

rmdir 指令

rmdir 指令删除空目录,如果目录下有内容时无法删除

删除非空目录,需要使用 rm -rf

callmewenhao@ubuntu:~$ rmdir project/yolo
callmewenhao@ubuntu:~$ ls project
callmewenhao@ubuntu:~$ ls
project

# rm -rf:强制地递归删除文件,使用该指令要谨慎
callmewenhao@ubuntu:~$ rmdir project
rmdir: failed to remove 'project': Directory not empty
callmewenhao@ubuntu:~$ rm -rf project
callmewenhao@ubuntu:~$ ls
(此时project已经被删除)

rm 指令

rm [-选项] 移除文件或目录

rm -r:递归删除整个文件夹

rm -f:强制删除不提示

rm -rf 强制递归删除整个文件夹,不提示**(常用)**

touch 指令

touch 创建一个空文件

callmewenhao@ubuntu:~$ cd project
callmewenhao@ubuntu:~/project$ touch a.cpp
callmewenhao@ubuntu:~/project$ ls
a.cpp

cp 指令(常用指令)

cp [-r] source dest 指令拷贝文件到指定目录,-r 递归拷贝整个文件

当第二次拷贝时会出现覆盖提示,使用 \cp 强制覆盖不提示

# cp 示范
callmewenhao@ubuntu:~$ ls
a.cpp  project
callmewenhao@ubuntu:~$ ls yolo
callmewenhao@ubuntu:~$ ls project
main.cpp

# 使用绝对目录
callmewenhao@ubuntu:~$ cp /home/callmewenhao/a.cpp /home/callmewenhao/yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp

# 使用相对目录
callmewenhao@ubuntu:~$ touch b.cpp
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  project  yolo
callmewenhao@ubuntu:~$ cp b.cpp yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp

# 只要路径给对,命令在哪里执行都无所谓
callmewenhao@ubuntu:~$ touch c.cpp
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  c.cpp  project  yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp
callmewenhao@ubuntu:~$ cd yolo
callmewenhao@ubuntu:~/yolo$ cp /home/callmewenhao/c.cpp /home/callmewenhao/yolo
callmewenhao@ubuntu:~/yolo$ ls
a.cpp  b.cpp  c.cpp

# 绝对目录和相对目录混用
callmewenhao@ubuntu:~/yolo$ rm -f c.cpp
callmewenhao@ubuntu:~/yolo$ ls
a.cpp  b.cpp
callmewenhao@ubuntu:~/yolo$ cd ..
callmewenhao@ubuntu:~$ cp c.cpp /home/callmewenhao/yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp

# 复制文件夹
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp
callmewenhao@ubuntu:~$ ls project
main.cpp
callmewenhao@ubuntu:~$ cp project yolo
cp: -r not specified; omitting directory 'project'
callmewenhao@ubuntu:~$ cp -r project yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp  project

mv 指令

mv 指令移动文件与目录重命名,甚至移动并且重命名

# 重命名
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  c.cpp
callmewenhao@ubuntu:~$ mv c.cpp d.cpp
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  d.cpp

# 重命名时,如果新文件名已经被文件占用,则会覆盖占用的文件
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  c.cpp  d.cpp 
callmewenhao@ubuntu:~$ cat c.cpp
this is c.cpp!
callmewenhao@ubuntu:~$ cat d.cpp
this is d.cpp!
callmewenhao@ubuntu:~$ mv c.cpp d.cpp
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  d.cpp 
callmewenhao@ubuntu:~$ cat d.cpp
this is c.cpp!

# 移动文件到文件夹
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  d.cpp  project  yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp
callmewenhao@ubuntu:~$ mv d.cpp yolo
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  project  yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp  d.cpp

# 移动文件夹到另一个文件夹
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  project  yolo
callmewenhao@ubuntu:~$ ls project
main.cpp
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp  d.cpp
callmewenhao@ubuntu:~$ mv project yolo
callmewenhao@ubuntu:~$ ls
a.cpp  b.cpp  yolo
callmewenhao@ubuntu:~$ ls yolo
a.cpp  b.cpp  c.cpp  d.cpp  project
callmewenhao@ubuntu:~$ ls yolo/project
main.cpp

cat 指令

cat 指令查看文件内容,cat -n 显示行号,cat 只能浏览文件,而不能修改文件;为了浏览方便,一般会带上管道命令|more

callmewenhao@ubuntu:~$ cat -n yolo/d.cpp
     1  this is c.cpp!
callmewenhao@ubuntu:~$ cat -n yolo/d.cpp |more

more 指令

more 指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明:

# 空格键(space) 代表向下翻一页
# Enter 代表向下翻『一行』
# q 代表立刻离开 more,不再显示该文件内容。
# Ctrl+F 向下滚动一屏
# Ctrl+B 返回上一屏
# = 输出当前行的行号
# :f 输出文件名和当前行的行号

less 指令

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less filename, q 退出

echo 指令

echo 指令输出内容到控制台

echo [选项] [输出内容]

echo 指令输出环境变量,比如 echo $PATH, echo $HOSTNAME

使用 echo "hello,world!" 指令输出 hello, world!

callmewenhao@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
callmewenhao@ubuntu:~$ echo $HOSTNAME
ubuntu
callmewenhao@ubuntu:~$ echo "hello, world!"
hello, world!

head 指令

head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行

head 文件(功能描述:查看文件头10行内容)

head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)

tail 指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后10行内容。

tail 文件(功能描述:查看文件尾10行内容)

tail -n 5 文件(功能描述:查看文件尾5行内容,5可以是任意行数)

tail -f 文件(功能描述:实时追踪该文档的所有更新)

> & >>

echo content > filename——向文件中覆盖写

ls -l > filenamels -l 的内容覆盖写入 filename

echo content >> filename——向文件中追加写

In 指令

软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径,其实是一个文件

ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

/home目录下创建一个软连接myroot,连接到/root目录:ln -s /root /home/myroot

history 指令

查看已经执行过历史命令,也可以执行历史指令

history :查看所有的历史指令

history 10:查看最近10条历史指令

!n:执行过去的的第n条指令

callmewenhao@ubuntu:~$ history 10
  131  echo "hello, world!"
  132  echo $path
  133  echo $PATTH
  134  echo $PATH
  135  echo $HOSTNAME
  136  ll
  137  ls -l
  138  clear
  139  history
  140  history 10
  callmewenhao@ubuntu:~$ !131
echo "hello, world!"
hello, world!