知识点
本篇文章分享竞赛大纲下面内容:【基础知识与编程环境】
- 【 5 】Linux 系统终端中常用的文件与目录操
- 【CSP-S】暑假冲刺2023年信息学CSP-J&S:Linux常用命令之【目录操作和文件操作】
- 知识点
- 在Windows上启动Ubuntu
- 文件夹和文件相关命令
- 参考资
去年也就是2022年CSP-S的第一道题就是Linu命令相关。
我预估今年还会考一道和命令相关的题目,拭目以待。
孩子们平时很少使用Linux,所以这篇文章让孩子看2~3遍,大概有个印象,这部分分基本就能拿到。
第 1 题
在 Linux 系统终端中,用于切换工作目录的命令为( )。
- A. ls
- B. cd
- C. cp
- D. all
本题共 2 分
在Windows上启动Ubuntu
稍后会分享一篇文章介绍如何在window上安装ubuntu操作系统。
文件夹和文件相关命令
命令列表
命令 | 说明 |
---|---|
cd | 切换目录 |
ls | 列出目前工作目录所含的文件及子目录 |
pwd | 显示目前的目录 |
mkdir | 创建文件夹 |
rmdir | 删除空文件夹 |
touch | 创建空白文件 |
cp | 复制文件或者目录 |
rm | 删除文件或者目录 |
mv | 移动文件或者目录 |
file | 查看文件类型 |
man | 查看各个命令的使用文档 |
详细
cd
切换目录
栗子1:切换到根目录
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ cd /
栗子2:切换到指定目录
代码语言:javascript复制coder@DESKTOP-UGV2MAO:/$ cd /usr
coder@DESKTOP-UGV2MAO:/usr$
栗子3:切换到上一级目录,加..
coder@DESKTOP-UGV2MAO:/usr$ cd ..
coder@DESKTOP-UGV2MAO:/$
ls
列出目前工作目录所含的文件及子目录
栗子1:列出当前目录下所有文件夹及文件
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ ls
readme.md test
coder@DESKTOP-UGV2MAO:~$
栗子2:列出指定目录下所有文件夹及文件,参数:目录路径
代码语言:javascript复制coder@DESKTOP-UGV2MAO:/$ ls /usr
bin games include lib lib32 lib64 libexec libx32 local sbin share src
栗子3:列出当前目录下所有文件夹及文件,包含隐含文件,参数:-a
coder@DESKTOP-UGV2MAO:~$ pwd
/home/coder
coder@DESKTOP-UGV2MAO:~$ ls
readme.md test
coder@DESKTOP-UGV2MAO:~$ ls -a
. .. .bash_logout .bashrc .motd_shown .profile readme.md test
coder@DESKTOP-UGV2MAO:~$
栗子4:列表显示目录下文件夹和文件,加参数-l
coder@DESKTOP-UGV2MAO:~$ ls -la
total 8
drwxr-x--- 1 coder coder 4096 Jun 26 12:59 .
drwxr-xr-x 1 root root 4096 Jun 26 10:52 ..
-rw-r--r-- 1 coder coder 220 Jun 26 10:52 .bash_logout
-rw-r--r-- 1 coder coder 3771 Jun 26 10:52 .bashrc
-rw-r--r-- 1 coder coder 0 Jun 26 10:52 .motd_shown
-rw-r--r-- 1 coder coder 807 Jun 26 10:52 .profile
-rw-r--r-- 1 coder coder 0 Jun 26 12:59 readme.md
drwxr-xr-x 1 coder coder 4096 Jun 26 11:21 test
常用语法
- ls -l # 以长格式显示当前目录中的文件和目录
- ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件
- ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
- ls -t # 按照修改时间排序显示当前目录中的文件和目录
- ls -R # 递归显示当前目录中的所有文件和子目录
- ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
pwd
说明:显示目前所在目录
栗子:表示当前是在/usr/games
coder@DESKTOP-UGV2MAO:/usr/games$ pwd
/usr/games
coder@DESKTOP-UGV2MAO:/usr/games$
mkdir
说明:创建文件夹
栗子1:创建文件夹
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ mkdir test
coder@DESKTOP-UGV2MAO:~$ ls
test
栗子2:创建多级文件夹
注意:创建多级文件夹需要加参数-p
,不然会出错
coder@DESKTOP-UGV2MAO:~$ mkdir test1/test2
mkdir: cannot create directory ‘test1/test2’: No such file or directory
coder@DESKTOP-UGV2MAO:~$ mkdir -p test1/test2
coder@DESKTOP-UGV2MAO:~$ ls
test test1
coder@DESKTOP-UGV2MAO:~$
rmdir
说明:删除空文件夹,如果文件夹内有文件,会提示错误信息
栗子1:删除空文件夹
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ ls
test test1
coder@DESKTOP-UGV2MAO:~$ rmdir test
coder@DESKTOP-UGV2MAO:~$ ls
test1
coder@DESKTOP-UGV2MAO:~$
栗子2:删除多级空文件夹,需要加-p
coder@DESKTOP-UGV2MAO:~$ ls
test1
coder@DESKTOP-UGV2MAO:~$ rmdir -p test1/test2
coder@DESKTOP-UGV2MAO:~$ ls
coder@DESKTOP-UGV2MAO:~$
touch
说明:创建空文件
栗子:创建空文件,如下面执行结果,我们能看到coder1.md的大小是0
coder@DESKTOP-UGV2MAO:~$ touch coder1.md
coder@DESKTOP-UGV2MAO:~$ ls -l
total 0
-rw-r--r-- 1 coder coder 0 Jun 26 13:12 coder1.md
-rw-r--r-- 1 coder coder 0 Jun 26 12:59 readme.md
drwxr-xr-x 1 coder coder 4096 Jun 26 11:21 test
cp
说明:拷贝文件或者目录
语法
代码语言:javascript复制cp [参数] 【拷贝源目录或者文件】 【目标目录】
栗子1:
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ ls -l
total 0
-rw-r--r-- 1 coder coder 37 Jun 26 13:16 coder1.md
-rw-r--r-- 1 coder coder 0 Jun 26 12:59 readme.md
drwxr-xr-x 1 coder coder 4096 Jun 26 11:21 test
coder@DESKTOP-UGV2MAO:~$ cp coder1.md coder2.md
coder@DESKTOP-UGV2MAO:~$ ls -l
total 0
-rw-r--r-- 1 coder coder 37 Jun 26 13:16 coder1.md
-rw-r--r-- 1 coder coder 37 Jun 26 13:17 coder2.md
-rw-r--r-- 1 coder coder 0 Jun 26 12:59 readme.md
drwxr-xr-x 1 coder coder 4096 Jun 26 11:21 test
coder@DESKTOP-UGV2MAO:~$
ls -l
:列表显示当前目录下文件夹和文件cp coder1.md coder2.md
:复制coder1.md
文件,生成一个文件名叫coder2.md
的文件
常用参数列表
参数 | 说明 |
---|---|
-f | 强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次 |
-i | 若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) |
-p | 连同文件的属性一起复制过去,而非使用默认属性(备份常用); |
-r | 递归持续复制,用於目录的复制行为;(常用) |
栗子2:-i
coder@DESKTOP-UGV2MAO:~$ cp -i coder1.md coder2.md
cp: overwrite 'coder2.md'? y
coder@DESKTOP-UGV2MAO:~$
rm
说明:移除文件或目录
参数
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
栗子:不带参数,删除文件
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ ls
coder1.md coder2.md readme.md test
coder@DESKTOP-UGV2MAO:~$ rm coder2.md
coder@DESKTOP-UGV2MAO:~$ ls
coder1.md readme.md test
coder@DESKTOP-UGV2MAO:~$
mv
说明:移动文件与目录,或修改名称
参数
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
栗子1:当前目录下改名,注意coder1.md
-> coder2.md
coder@DESKTOP-UGV2MAO:~$ pwd
/home/coder
coder@DESKTOP-UGV2MAO:~$ ls
coder1.md readme.md test
coder@DESKTOP-UGV2MAO:~$ mv coder1.md coder2.md
coder@DESKTOP-UGV2MAO:~$ ls
coder2.md readme.md test
coder@DESKTOP-UGV2MAO:~$
栗子2:移动到其他目录
代码语言:javascript复制coder@DESKTOP-UGV2MAO:~$ ls
coder2.md readme.md test
coder@DESKTOP-UGV2MAO:~$ mv coder2.md test/
coder@DESKTOP-UGV2MAO:~$ ls
readme.md test
coder@DESKTOP-UGV2MAO:~$ ls test/
coder2.md test.txt
coder@DESKTOP-UGV2MAO:~$
file
说明:查看文件属性
栗子:如下例子,readme.md
文件时一个ASCII text文件
coder@DESKTOP-UGV2MAO:~$ ls -l
total 0
-rw-r--r-- 1 coder coder 49 Jun 26 13:30 readme.md
drwxr-xr-x 1 coder coder 4096 Jun 26 13:27 test
coder@DESKTOP-UGV2MAO:~$ file readme.md
readme.md: ASCII text
coder@DESKTOP-UGV2MAO:~$
参考资料
- Linux 文件与目录管理
- http://edu.jb51.net/linux/linux-file-content-manage.html