Linux文件系统使用常用基础命令

本文详细介绍Linux系统中的常用基础命令,包括目录操作、文件查看、权限管理等,适用于初学者快速入门。

Linux文件系统使用常用基础命令

ls cd pwd file cat cp mv rm mkdir touch tree which whereis more less head tail

cd(change directory)切换当前工作目录

命令格式 cd [dirName]

# 前往根目录
cd /

# 跳到/usr/bin/:
cd /usr/bin

# 跳到当前用户的家目录:
cd ~

# 跳到上层目录:
cd ../

# 返回进⼊此⽬录之前所在的⽬录
cd -

pwd(print work directory)显示当前工作目录

命令格式:pwd [--help][--version]

ubuntu@ubuntu:~$ pwd
/home/ubuntu

ls(list)列出目录

命令格式:ls [OPTION]... [FILE]...

OPTION位常用参数:

-l:以长格式显示

ubuntu@ubuntu:~$ ls -l test.txt 
-rw-rw-r-- 1 ubuntu ubuntu 0 528 22:00 test.txt

-h(--human-readable):为文件大小添加单位,常与-l一起使用

ubuntu@ubuntu:~$ ls -l -h /var/log/boot.log
-rw------- 1 root root 18K 528 19:24 /var/log/boot.log

-a(--all):显示指定目录下所有文件(包括. .. 和文件名以.开始的隐藏文件)

ubuntu@ubuntu:~$ ls -a ./
.       模板  文档  桌面           .bashrc  .gnupg    .mysql_history  .sudo_as_admin_successful
..      视频  下载  .bash_history  .cache   .local    .profile        test.txt
公共的  图片  音乐  .bash_logout   .config  .mozilla  snap            .viminfo

-A(--almost-all):和-a相同,但是不显示...

ubuntu@ubuntu:~$ ls -A ./
公共的  图片  音乐           .bash_logout  .config  .mozilla        snap                       .viminfo
模板    文档  桌面           .bashrc       .gnupg   .mysql_history  .sudo_as_admin_successful
视频    下载  .bash_history  .cache        .local   .profile        test.txt

-R(--recursive):递归显示指定目录中的内容(一并显示子目录中所有内容)

ubuntu@ubuntu:~$ ls -R ./snap/
./snap/:
snap-store

./snap/snap-store:
558  common  current

./snap/snap-store/558:

./snap/snap-store/common:

-r(--reverse):逆序显示目录内容

ubuntu@ubuntu:~$ ls -r ./
test.txt  snap  桌面  音乐  下载  文档  图片  视频  模板  公共的

ubuntu@ubuntu:~$ ls ./
公共的  模板  视频  图片  文档  下载  音乐  桌面  snap  test.txt

-i(--inode):显示文件所在的index number(index node)

ubuntu@ubuntu:~$ ls -i ./test.txt 
1338288 ./test.txt

-d(--directory):显示目录本身的属性

ubuntu@ubuntu:~$ ls -ld ./mkdir_test/
drwxrwxrwx 2 ubuntu ubuntu 4096 529 00:52 ./mkdir_test/

Linux文件类型及权限

使用ls -l以长格式显示文件列表,结果中前10位字符显示文件的类型和权限信息,例如-rwxrwxrwx

第一位表示文件类型

​ -:代表普通文件(file)
​ d:代表目录(directory),文件夹
​ b:块设备(block),如硬盘、U盘等
​ c:字符设备(char),如键盘等
​ s:套接字文件(socket)
​ p:命名管道(pipe)
​ l:符号链接文件(symbolic link file )

第2位至第10位,表示文件的权限信息,三位一组权限,达标可读®、可写(w)、可执行(x)

​ 2、3、4位:文件属主权限(owner)
​ 5、6、7位:文件属组权限(group)
​ 8、9、10位:其他用户权限(other)

file 辨识文件类型

命令格式:file [options] [args]

-b(--brief):在显示结果中不显示文件名(简洁模式)

ubuntu@ubuntu:~$ file ./test.txt 
./test.txt: ASCII text

ubuntu@ubuntu:~$ file -b ./test.txt 
ASCII text

-c(--checking-printout):显示执行file命令的执行过程(file是如何去判断文件类型),便于排错或分析file命令执行过程

ubuntu@ubuntu:~$ file -c ./test.txt 
cont	offset	type	opcode	mask	value	desc

-i(--mime):输出MIME类型的字符串

MIME 类型,Multipurpose Internet Mail Extensions,称为多用途互联网邮件扩展类型,用来标识和记录文件的打开方式,一些常见的类型包括:

text/plain:普通文本。
text/html:HTML文本。
application/pdf:PDF文档。
application/msword:Word文档。
image/png:PNG图片。
mage/jpeg:JPEG图片。
application/x-tar:TAR文件。
application/x-gzip:GZIP文件。

ubuntu@ubuntu:~$ file -i ./test.txt 
./test.txt: text/plain; charset=us-ascii

-f(--files-from) <file_name>:查看文件中文件名的类型

ubuntu@ubuntu:~$ cat test.txt 
/etc
/etc/passwd
/var/mail

ubuntu@ubuntu:~$ file -f test.txt 
/etc:        directory
/etc/passwd: ASCII text
/var/mail:   setgid, directory

-L(--dereference):查看软链接对应文件的类型

ubuntu@ubuntu:/var$ file /var/lock
/var/lock: symbolic link to /run/lock

ubuntu@ubuntu:/var$ file -L /var/lock
/var/lock: sticky, directory

-z(--uncompress):尝试显示压缩文件的内容,有资料显示仅支持gzip文件

ubuntu@ubuntu:~$ gzip -c test.txt > test.gz

ubuntu@ubuntu:~$ file -z test.gz
test.gz: ASCII text (gzip compressed data, was "test.txt", last modified: Sat May 28 15:13:31 2022, from Unix)

cat(concatenate)连接文件并打印到标准输出设备上

1、在shell中一次性查看整个文件,不支持翻页查看

cat在shell中查看大文件时,一次将所有内容打印在屏幕上,不支持翻页,可以使用more less等进行查看

命令格式:cat [options] [args]

-n:打印文件内容,并对每行进行编号,包括空行

ubuntu@ubuntu:~$ cat -n test.txt 
     1	
     2	
     3	
     4	/etc
     5	
     6	/etc/passwd
     7	/var/mail

-b:打印文件内容,除空行外,其他行进行编号

ubuntu@ubuntu:~$ cat -b test.txt 



     1	/etc

     2	/etc/passwd
     3	/var/mail

-S:当文件中有多个空行时,合并为一个空行

ubuntu@ubuntu:~$ cat -s test.txt 

/etc

/etc/passwd
/var/mail
ubuntu@ubuntu:~$ 

-E:在显示内容时,结尾添加$符号

ubuntu@ubuntu:~$ cat -E test.txt 
$
$
$
/etc$
$
/etc/passwd$
/var/mail$

2、将键盘输入的内容,输入到一个新文件,或添加到已有文件中

# 键盘输入内容,输入到新文件中
ubuntu@ubuntu:~$ cat > test2.txt << EOF    # EOF: End Of File
> hello world!
> My name is LittelBoy.
> EOF
ubuntu@ubuntu:~$ cat test2.txt 
hello world!
My name is LittelBoy.

# 键盘输入内容,添加到已有文件中
ubuntu@ubuntu:~$ cat >> test.txt << EOF
> hello world!
> My name is LittleBoy.
> EOF
ubuntu@ubuntu:~$ cat test.txt 



/etc

/etc/passwd
/var/mail
hello world!
My name is LittleBoy.

3、将多个文件内容合并输出到一个新文件中

ubuntu@ubuntu:~$ cat test2.txt test.txt > test3.txt
ubuntu@ubuntu:~$ cat test3.txt 
hello world!
My name is LittelBoy.



/etc

/etc/passwd
/var/mail
hello world!
My name is LittleBoy.

cp(copy)复制文件或目录

命令格式:cp [options] source dest或者cp [options] source... directory

-f(--force):强制复制文件或目录不进行提示

-R, -r(--recursive):递归复制目录,将目录下所有目录和文件进行复制

-b:覆盖已有的文件前,对目标文件进行备份

ubuntu@ubuntu:~$ ls test.*  # 查看复制前文件
test.gz  test.txt
ubuntu@ubuntu:~$ cp -b ./test_file/test.txt ./
ubuntu@ubuntu:~$ ls test.*
test.gz  test.txt  test.txt~  # 目标目录中,同名文件被备份,文件名末尾多了“~”

-s(--symbolic-link):为某个文件创建符号链接(软链接),而不是复制文件

ubuntu@ubuntu:~$ cp -s test.txt test.link
ubuntu@ubuntu:~$ ll test.*
-rw-rw-r-- 1 ubuntu ubuntu 54 528 23:31 test.gz
lrwxrwxrwx 1 ubuntu ubuntu  8 529 00:15 test.link -> test.txt
-rw-rw-r-- 1 ubuntu ubuntu 66 529 00:12 test.txt
-rw-rw-r-- 1 ubuntu ubuntu 66 528 23:50 test.txt~

-l(--link):为文件创建硬链接,而不是复制文件

-d:当复制软链接文件时,把目标文件或目录也会创建为软链接,并指向最原始的文件

-p:复制文件时保留文件的原有属性

mv(move)移动或重命名文件和目录

命令格式执行效果
mv [option] src_file dest_file将源文件名 src_file 改为目标文件名 dest_file
mv [option] src_file dest_dir将文件 src_file 移动到目标目录 dest_dir 中
mv [option] src_dir dest_dir目录名 dest_dir 已存在,将 src_dir 移动到目录名 dest_dir 中;目录名 dest_dir 不存在,则 src_dir 改名为目录名 dest_dir

-f:强制覆盖,不进行提示

-i:覆盖目标文件时,进行询问

-b:移动前先对源文件进行备份

-t:将多个文件移动到一个目录中,注意!!!目标目录在前,文件在后

ubuntu@ubuntu:~$ ls ./test_file
ubuntu@ubuntu:~$ mv -t ./test_file test.txt test2.txt  # 目标目录在前,文件在后
ubuntu@ubuntu:~$ ls ./test_file
test2.txt  test.txt

rm(remove)删除文件或目录

命令格式:rm [options] file/dir ...

-f:强制删除,没有提示信息

-r:递归删除整个目录

-d:删除可能存在数据的目录

-i:删除前,进行询问

mkdir(make directory)创建空目录

-m(--mode):创建目录时同时设置权限

ubuntu@ubuntu:~$ mkdir -m 777 ./mkdir_test
ubuntu@ubuntu:~$ ll -d ./mkdir_test/
drwxrwxrwx 2 ubuntu ubuntu 4096 529 00:52 ./mkdir_test//

-p(--parents):递归创建新目录

ubuntu@ubuntu:~$ mkdir -p ./mkdir_test/test/1/2/3
ubuntu@ubuntu:~$ tree ./mkdir_test/
./mkdir_test/
└── test
    └── 1
        └── 2
            └── 3

-v(--verbose):显示创建目录的过程

touch创建新文件或者修改文件时间戳

-a:只改变访问时间
-c:不创建文件
-d:使用指定时间戳创建新文件,而不是使用系统时间
-t:使用指定格式时间戳创建新文件,而不是使用系统时间
-f:解决与BSD系列Unix系统兼容性
-m:只更改变动时间

tree查看目录树(tree = ls -R)

需要安装,sudo apt install tree

ubuntu@ubuntu:~$ tree ./mkdir_test/
./mkdir_test/
└── test
    └── 1
        └── 2
            └── 3

which查找命令所在的路径

whereis查看命令所在的路径,源代码文件,帮助信息文件所在的文件

-b:只查看文件所在的位置(等同于which命令)
-m:只查看帮助信息所在的位置
-s:支持看源代码所在的位置

more可以翻页查看文本文件内容

​ enter键:向下翻一行
​ 空格键:向下翻一屏
​ ctrl+b:向上翻一屏
​ ctrl+f:向下翻一屏
​ =:显示当前的行号
​ v:调用vi编辑器
!command:调用shell执行命令
​ q:退出more命令
more [+num] file_name //从num行开始查看文件内容

ubuntu@ubuntu:~$ more +6 test.txt~ 
/etc/passwd
/var/mail
hello world!
My name is LittleBoy.

less可以翻页查看文本文件内容

​ enter键:向下翻一行
​ 空格键:向下翻一屏
​ pagedown:向下翻一屏
​ pageup:向上翻一屏
​ 上下方向键:向上/向下翻一行

​ /word:在该文件中查找word关键字
​ n:查找下一个
​ N:查找上一个

head默认查看文件文件的前十行

-n:查看文件文件前n行

ubuntu@ubuntu:~$ head -5 test.txt~ 



/etc

tail默认查看文本文件的后十行

-n:查看文本文件的后n行
-f:动态查看文本文件内容,如动态查看日志: tail -f /var/log/messages

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值