Linux命令实践
Linux命令实践
学习Linux核心命令
1. ls 列出当前目录中的文件和目录
djy666@ubuntu:~$ ls
20221307 公共的 模板 视频 图片 文档 下载 音乐 桌面 Desktop djy hello hello.c hello.o snap
- ls -l 列出详细信息
使用长格式列出目录内容,包括文件权限、所有者、文件大小和修改时间等信息。
djy666@ubuntu:~$ ls -l
总用量 76
drwxrwxr-x 7 djy666 djy666 4096 Sep 1 01:11 20221307
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 公共的
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 模板
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 视频
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 图片
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 文档
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 下载
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 音乐
drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 桌面
drwxr-xr-x 2 djy666 djy666 4096 Sep 1 01:31 Desktop
drwxrwxr-x 2 djy666 djy666 4096 Sep 9 20:38 djy
-rwxr-xr-x 1 root root 16696 Sep 1 01:26 hello
-rw-r--r-- 1 root root 51 Sep 1 01:27 hello.c
-rw-r--r-- 1 root root 1552 Sep 1 01:25 hello.o
drwxr-xr-x 5 djy666 djy666 4096 Sep 1 01:27 snap
- ls -a 显示隐藏文件
列出所有文件,包括以.
(点)开头的隐藏文件。
djy666@ubuntu:~$ ls -a
. .bash_history .local
.. .bash_logout .mozilla
.1.c.swp .bashrc .pam_environment
20221307 .cache .pki
公共的 .config .profile
模板 Desktop snap
视频 djy .ssh
图片 .dotnet .sudo_as_admin_successful
文档 .gnupg .viminfo
下载 hello .vscode
音乐 hello.c
桌面 hello.o
- AI生成示例
- ls -li 显示文件的详细列表,并显示文件的inode号
djy666@ubuntu:~$ ls -li
总用量 76
677825 drwxrwxr-x 7 djy666 djy666 4096 Sep 1 01:11 20221307
677751 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 公共的
677727 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 模板
685116 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 视频
685115 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 图片
683759 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 文档
677532 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 下载
685113 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 音乐
677526 drwxr-xr-x 2 djy666 djy666 4096 Sep 9 20:13 桌面
677473 drwxr-xr-x 2 djy666 djy666 4096 Sep 1 01:31 Desktop
677477 drwxrwxr-x 2 djy666 djy666 4096 Sep 9 20:38 djy
677826 -rwxr-xr-x 1 root root 16696 Sep 1 01:26 hello
677853 -rw-r--r-- 1 root root 51 Sep 1 01:27 hello.c
677823 -rw-r--r-- 1 root root 1552 Sep 1 01:25 hello.o
677556 drwxr-xr-x 5 djy666 djy666 4096 Sep 1 01:27 snap
当执行
ls -li
命令时,会得到一个列表,其中的每一行都包含以下信息: Inode 号、文件权限、链接数、所有者、组、文件大小、最后修改日期、文件名
2. who 显示当前登录到系统的用户信息
djy666@ubuntu:~$ who
djy666 :0 2024-09-10 01:33 (:0)
输出信息: 用户名、登录终端、登录时间、来自哪个主机(如果是远程登录的话)
- whoami 显示当前用户
djy666@ubuntu:~$ whoami
djy666
- who -H 显示包含标题的输出
在输出的第一行显示标题(列标题),使其更容易阅读。
djy666@ubuntu:~$ who -H
名称 线路 时间 备注
djy666 :0 2024-09-10 01:33 (:0)
- who -a
显示所有可用信息,包括系统启动时间、活动进程、空闲时间等。
djy666@ubuntu:~$ who -a
系统引导 2024-09-10 01:33
运行级别 5 2024-09-10 01:33
djy666 ? :0 2024-09-10 01:33 ? 1531 (:0)
3. pwd 显示当前工作目录的绝对路径
djy666@ubuntu:~$ pwd
/home/djy666
- AI生成示例
- 假设已经通过一系列
cd
命令导航到了某个目录,可以使用pwd
来确认你的位置。
djy666@ubuntu:~$ cd djy
djy666@ubuntu:~/djy$ pwd
/home/djy666/djy
4. cd 更改当前的工作目录
- cd ~
djy666@ubuntu:~/djy$ cd ~
djy666@ubuntu:~$ pwd
/home/djy666
- cd .
djy666@ubuntu:~$ cd djy
djy666@ubuntu:~/djy$ cd .
djy666@ubuntu:~/djy$ pwd
/home/djy666/djy
- cd ..
djy666@ubuntu:~/djy$ cd ..
djy666@ubuntu:~$ pwd
/home/djy666
5. man 显示用户手册(manual)
它提供了关于系统命令、函数、配置文件等的详细文档
- man man
- man printf
- AI生成示例
- man -k keyword 搜索手册页中的关键词
6. whereis/which
- whereis
查找系统中命令可执行文件、源代码和手册页的位置
djy666@ubuntu:~$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
- AI生成示例
- 同时查找多个命令的位置
djy666@ubuntu:~$ whereis java gcc
java: /usr/share/java
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc /usr/share/man/man1/gcc.1.gz
- which
显示一个可执行文件的位置
djy666@ubuntu:~$ which ls
/usr/bin/ls
7. find/locate
- find 在操作系统中递归地搜索文件和目录
djy666@ubuntu:~$ find 20221413
20221413
20221413/bin
20221413/include
20221413/lib
20221413/README
20221413/res
20221413/Makefile
20221413/src
- find -mtime -7 查找在过去 7 天内被修改过的文件
- locate 快速查找操作系统中的文件
locate example.txt
查找所有包含example.txt
的文件路径locate '*.md'
查找所有以.md
结尾的文件
8. grep 搜索文本中的特定字符串或模式
djy666@ubuntu:~$ mkdir file.txt
djy666@ubuntu:~$ grep "hello" file.txt
grep: file.txt: 是一个目录
9. AI推荐命令自主学习
<1> echo 用于在终端显示文本或将文本输出到文件
- 显示文本
djy666@ubuntu:~$ echo "Hello,World!"
Hello,World!
- 输出变量的值
djy666@ubuntu:~$ text="Hello,World!"
djy666@ubuntu:~$ echo $text
Hello,World!
- 换行
使用-n
选项可以防止echo
命令在输出后自动添加换行符
djy666@ubuntu:~$ echo -n "Hello,World!"
Hello,World!djy666@ubuntu:~$
- 水平制表符
使用-e
选项可以解释转义字符,如\t
表示制表符
djy666@ubuntu:~$ echo -e "First\tSecond\tThird"
First Second Third
- 命令替换
djy666@ubuntu:~$ echo "The date is $(date)."
The date is Tue 10 Sep 2024 05:06:06 AM PDT.
<2> od 显示文件的八进制、十六进制、浮点数和字符的表示
- 查看文件的八进制表示
djy666@ubuntu:~$ od 1.txt
0000000 031061 032063 033065 060467 061542 062544 063546
0000016
- 以十六进制格式显示文件内容
djy666@ubuntu:~$ od -t x 1.txt
0000000 34333231 61373635 65646362 00006766
0000016
指定显示格式:
- 八进制:
-t o
- 十进制:
-t d
- 十六进制:
-t x
- 二进制:
-t oC
- 浮点数:
-t f
- 字符串:
-t s
- 显示指定的字节数
显示前 10 个字节:-N 10
djy666@ubuntu:~$ od -t x -N 5 1.txt
0000000 34333231 00000035
0000005
- 显示文件的特定部分
从第 20 个字节开始,显示 10 个字节:-j 20 -N 10
djy666@ubuntu:~$ od -t x -j 3 -N 3 1.txt
0000003 00363534
0000006
- 指定偏移量
从第 20 个字节开始显示:-j 20
djy666@ubuntu:~$ od -t x -j 3 1.txt
0000003 37363534 64636261 00676665
0000016
<3> sort 用于对文本文件的行进行排序
- 按字典顺序排序
按字典顺序对3.txt
文件中的每一行进行排序
djy666@ubuntu:~$ cat > 3.txt
4
f
a
5
b
2
7
1
hdjy666@ubuntu:~$ sort 3.txt
1
2
4
5
7
a
b
f
h
- 逆序排序
-r
djy666@ubuntu:~$ sort -r 3.txt
h
f
b
a
7
5
4
2
1
- 按数字顺序排序
-n
djy666@ubuntu:~$ sort -n 2.txt
a
b
g
2
3
4
5
7
9
10
- 忽略前导空白
-b
可以忽略每行前面的空白字符 - 按特定字段排序
-k
可以指定按第几列(字段)排序
例如,-k2
表示按第二列排序
总结
通过熟练使用Linux命令,可以有效地执行文件管理、系统监控、文本处理等任务,通过今天的学习,我收获和掌握了很多。