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命令,可以有效地执行文件管理、系统监控、文本处理等任务,通过今天的学习,我收获和掌握了很多。

posted @ 2024-09-10 20:46  妍妍妍妍  阅读(6)  评论(0编辑  收藏  举报