【Linux】《Linux入门指南——上》建议收藏~~

目录

一、前言

二、Linux终端命令的介绍

1.终端命令格式

2.说明

三、Linux中的一些常见指令

1.文件操作

ls        

pwd

cd

touch

mkdir

rmdir 

rm

tree

mv

cp 

echo 

cat/tac

find

grep

more

less        

4.其它指令

检测网络是否正常

 5.常用热键


一、前言

        在我们刚学习Linux的时候,常常会因为Linux环境的配置;或一些指令为什么别人能运行,我的Linux上就连指令都找不到?——有时候我们会玻璃心,心想:会不会我们Linux哪里下错了?又或者会因为指令及其所带的选项太多,导致自己陷入大脑的崩溃

        当我们有问题的时候,想在CSDN上找到疑问的解答,可是要么是一些蹭访问量的水文,要么是那些比较综合性的博客,不能对你的问题做到一针见血(其实认真看完,你的收获定是水涨船高的,但是我们是初学者啊,定然无法快捷的辨析到自己所需要的答案)

        倘若你们也有这样的学习困境,那这篇《Linux入门指南》就显得格外重要,建议收藏+关注,让更多有需要的人得到这个优秀的资源。

二、Linux终端命令的介绍

1.终端命令格式
终端命令格式:    command [-options] [parameter]
2.说明
  • comman:命令名(大多是相应英文单词的缩写);
  • -option:可以对命令进行控制与调整的选项,也可以省略;
  • parameter:传给命令的参数,可以是一个或者多个;

三、Linux中的一些常见指令

1.文件操作
ls        
  • 功能:显示当面目录下的文件(无任何选项仅显示文件名)  
  • 选项:展示的选项是该指令最频繁使用的
  • -l  显示文件的详细信息
  • -d 显示目录的信息,但不显示子目录或(普通文件)
  • -a 显示隐藏文件的(说明:在Linux中'.'开头的文件为隐藏文件,其它的为显示文件)
  • -F 用于列出目录内容,并在每个输出项后追加文件的类型标识符。这有助于用户快速识别文件的类型。(*:表示具有可执行权限的普通文件;/:表示目录;@:表示符号链接或软链接;|:表示命令管道FIFO;=:表示sockets套接字)
  • --color=auto 列出文件会根据文件类型显示出颜色(auto:显示到终端时显示颜色,never:从不显示颜色;always:总是显示颜色)
  • -i  显示文件的索引值(说明:在windows中标识一个文件,是文件名+文件后缀;而在Linux中并不是这样,而是用唯一的索引值,去标识一个文件,所以Linux中的文件后缀是给我们自己看的。)
  • 其余选项,请在终端输入man ls,进行翻阅手册获取
  • 参数:相对路径或绝对路径(至于何为相对路径/绝对路径,请自行查询资料)
  • 常见用法示例:ls [选项] [文件路径]
********************************************************************
*我根据自己的习惯对指令进行了重命名(英文alias): 
*alias ls='ls --color=auto -F'
*alias ll='ls -l'
*alias la='ll -a'
*现在开始带大家体会一下!!!
*********************************************************************

bash-4.2$ ls  #ls='ls --color=auto -F'
SeqList/  SList/  test_24_3_31/

bash-4.2$ ls -l
total 0
drwxr-xr-x. 2 zmh zmh 70 Apr  8 00:01 SeqList/
drwxr-xr-x. 2 zmh zmh 66 Apr 11 17:29 SList/
drwxr-xr-x. 2 zmh zmh 36 Apr  4 17:18 test_24_3_31/

bash-4.2$ ls -a
./  ../  .git/  .gitignore  SeqList/  SList/  test_24_3_31/

bash-4.2$ ls -i
  268549 SeqList/  68672290 SList/  35310525 test_24_3_31/

bash-4.2$ ls -dl ./SeqList
drwxr-xr-x. 2 zmh zmh 70 Apr  8 00:01 ./SeqList/

bash-4.2$ ls -l ./SeqList
total 16
-rw-r--r--. 1 zmh zmh  110 Apr  2 22:35 Makefile
-rw-r--r--. 1 zmh zmh 2692 Apr  8 00:01 SeqList.c
-rw-r--r--. 1 zmh zmh  774 Apr  8 00:01 SeqList.h
-rw-r--r--. 1 zmh zmh 1810 Apr  4 14:56 test.c
pwd
  • 功能:显示当前用户所在文件路径
  • 选项:(其余选项,请在终端输入man pwd,进行翻阅手册获取
  • 参数:无
  • 常见用法示例:pwd
bash-4.2$ pwd 
/home/zmh/LS/Linux-c-and-c-project
cd
  • 功能:切换用户所在路径
  • 选项:(其余选项,请在终端输入man cd,进行翻阅手册获取
  • 参数:
  • 文件路径:绝对路径/相对路径;
  • . :表示当前目录
  • ..:表示上级目录
  • ~:当前用户的工作目录;
  • -:返回上一次所在路径;
  • /:根用户路径 (说明:在Linux中,/ 有两种概念:1.标识文件路径分隔符 2.标识根目录)
  • 常见用法示例:cd  [文件路径](常与pwd指令配合使用)
bash-4.2$ pwd
/home/zmh/LS/Linux-c-and-c-project
bash-4.2$ cd ~ #回到当前用户的工作目录
bash-4.2$ pwd
/home/zmh
bash-4.2$ cd /  #回到根目录
bash-4.2$ pwd
/
bash-4.2$ cd -  #返回上一次所在路径(类似于windows下的撤销)
/home/zmh
bash-4.2$ pwd
/home/zmh
bash-4.2$ ls
LS/
bash-4.2$ cd ./LS #相对路径
bash-4.2$ pwd
/home/zmh/LS
bash-4.2$ cd /
bash-4.2$ pwd
/
bash-4.2$ cd /home/zmh/LS/ #绝对路径
bash-4.2$ pwd
/home/zmh/LS
touch
  • 功能:创建一个新文件或修改文件的时间
  • 选项:(其余选项,请在终端输入man touch,进行翻阅手册获取
  • 参数:文件路径+文件名(若无文件路径,则默认用户当前所在目录下)
  • 常见用法示例:touch [文件名](已存在的文件或目录,即进行修改时间操作)
bash-4.2$ ll
total 0
drwxr-xr-x. 5 zmh zmh 79 Apr 11 22:37 LS/
bash-4.2$ touch test.txt #创建了一个文件
bash-4.2$ ll
total 0
drwxr-xr-x. 5 zmh zmh 79 Apr 11 22:37 LS/
-rw-r--r--. 1 zmh zmh  0 Apr 11 22:38 test.txt
bash-4.2$ 

bash-4.2$ stat test.txt
  File: ‘test.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 35041072    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     zmh)   Gid: ( 1000/     zmh)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2024-04-11 22:28:45.001074976 +0800 #文件最后一次被读取的时间
Modify: 2024-04-11 22:28:45.001074976 +0800 #文件内容被修改的时间
Change: 2024-04-11 22:28:45.001074976 +0800 #文件的属性或内容被修改的时间
 Birth: -
bash-4.2$ touch test.txt
bash-4.2$ stat test.txt
  File: ‘test.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 35041072    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     zmh)   Gid: ( 1000/     zmh)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2024-04-11 22:31:29.941199608 +0800
Modify: 2024-04-11 22:31:29.941199608 +0800
Change: 2024-04-11 22:31:29.941199608 +0800
 Birth: -

知识点补充:
在Linux中一切皆是文件,就算是目录它也属于文件的一种,目录只是文件多个类型的其中一种
文件 = 文件的属性(文件被修改的时间呀,文件被读取的时间等等) + 文件内容
mkdir
  • 功能:创建一个目录
  • 选项:-p 已递归的形式创建目录(其余选项,请在终端输入man mkdir,进行翻阅手册获取
  • 参数:相对路径或绝对路径
  • 常见用法示例:mkdir [-p/其它选项] [文件路径]
bash-4.2$ ls
l1/  LS/  test.txt
bash-4.2$ touch L1 #创建一个目录
bash-4.2$ ls
l1/  L1  LS/  test.txt
bash-4.2$ 
bash-4.2$ 
bash-4.2$ ls
LS/  test.txt
bash-4.2$ mkdir -p ./l1/l2/l3/l4 #创建一连串目录
bash-4.2$ tree l1 #以树结构的形式对一个目录进行递归展开,遇到普通文件停止
l1
└── l2
    └── l3
        └── l4

3 directories, 0 files
bash-4.2$ ls
l1/  LS/  test.txt
rmdir 
  • 功能:删除空目录
  • 选项:-p 递归删除空目录及其父级目录的命令选项(其余选项,请在终端输入man rmdir,进行翻阅手册获取
  • 参数:相对路径或绝对路径
  • 常见用法示例:mkdir [-p/其它选项] [文件路径]
bash-4.2$ mkdir LSW #创建一个空目录
bash-4.2$ ls
l1/  L1  LS/  LSW/  test.txt
bash-4.2$ rmdir LSW #删除一个空目录
bash-4.2$ ls
l1/  L1  LS/  test.txt
bash-4.2$ tree l1 #递归展示目录
l1
└── l2
    └── l3
        └── l4

3 directories, 0 files
bash-4.2$ rmdir l1 #存在子目录就不叫做空目录,故报错
rmdir: failed to remove ‘l1’: Directory not empty
bash-4.2$ rmdir -p l1 # -p 选项的错误理解与使用
rmdir: failed to remove ‘l1’: Directory not empty
bash-4.2$ rmdir -p l1/l2/l3/l4/ #rmdir -p 的正确使用
bash-4.2$ ls 
L1  LS/  test.txt
rm
  • 功能:删除文件(包括目录)
  • 选项:(展示的选项是该指令最频繁使用的
  • -r :以递归的方式删除一个非空目录
  • -i :在删除前进行询问(y:表删除,n:取消)
  • -d:删除空目录
  • -f:无需询问直接删除
  • 其余选项,请在终端输入man rm,进行翻阅手册获取
  • 参数:相对路径或绝对路径
  • 常见用法示例:rm [-ridf/其它指令] [文件路径]
bash-4.2$ ls
l1/  L1  LS/  test.txt
bash-4.2$ rm L1 test.txt #删除普通文件
bash-4.2$ ls
l1/  LS/

bash-4.2$ ls
l1/  LS/
bash-4.2$ rm l1
rm: cannot remove ‘l1’: Is a directory #删除失败
bash-4.2$ rm -r l1 #以递归的形式删除包括该目录以及其所有内容
bash-4.2$ ls
LS/

bash-4.2$ ls
LS/
bash-4.2$ mkdir -p l1/l2
bash-4.2$ tree l1
l1
└── l2
1 directory, 0 files
bash-4.2$ rm -d l1 # rm -d 其功能与rmdir同类,遇见空目录就删
rm: cannot remove ‘l1’: Directory not empty
bash-4.2$ 

bash-4.2$ ls
l1/  LS/
bash-4.2$ rm -r -i l1 # -i 选项
rm: descend into directory ‘l1’? n
bash-4.2$ rm -r -i -f l1 # -f 选项,无需询问直接删除
bash-4.2$ ls
LS/
bash-4.2$ 

说明:
-f 选项 我只知道有这个功能,具体怎么理解我不太清楚,但这个选项又很高频,所以作以展示。
tree
  • 功能:以树状结构通过递归展示一个目录
  • 选项:(展示的选项是该指令最频繁使用的
  • -a:展示隐藏文件
  • -C:以彩色形式区分目录结构,区分文件类型
  • -d:仅显示目录,而不是文件
  • -F:展示目录的同时,并在每个输出项后追加文件的类型标识符。这有助于用户快速识别文件的类型。(*:表示具有可执行权限的普通文件;/:表示目录;@:表示符号链接或软链接;|:表示命令管道FIFO;=:表示sockets套接字)
  • 其余选项,请在终端输入man tree,进行翻阅手册获取
  • 参数:文件路径
  • 常见用法示例:tree [-aCd/其它指令] [文件路径]
bash-4.2$ tree l1
l1
├── l2
│   └── l3
└── l3

3 directories, 0 files
mv
  • 功能:对文件(也可以是目录)进行剪切+粘贴操作,也可以重命名
  • 选项:(展示的选项是该指令最频繁使用的
  • -i:当目标文件已存在的时候,会询问是否覆盖;
  • -f:当目标文件已存在的时候,会强制覆盖;
  • -n:当目标文件已存在的时候,自动忽略;
  • 其余选项,请在终端输入man mv,进行翻阅手册获取
  • 参数:文件路径(新的文件名)
  • 常见用法示例:(知道什么时候执行移动,什么时候执行重命名就行)
  • bash-4.2$ ls 
    l1/  l2/  LS/
    bash-4.2$ mv l2 l1/ #移动
    
    bash-4.2$ ls
    l1/  LS/
    bash-4.2$ mv l1 我有了一个新名字 #重命名
    bash-4.2$ ls
    LS/  我有了一个新名字/
    bash-4.2$ mv 我有了一个新名字 ./文物 #重命名
    
cp 
  • 功能:对文件(默认情况下不能拷贝目录)进行复制+粘贴操作
  • 选项:(展示的选项是该指令最频繁使用的
  • -i:当目标文件已存在的时候,会询问是否覆盖;
  • -f:当目标文件已存在的时候,会强制覆盖;
  • -r:用于拷贝一个目录包括它的子文件;
  • 其余选项,请在终端输入man cp,进行翻阅手册获取
  • 参数:文件路径
  • 常见用法示例:(用法于mv较为类似)
bash-4.2$ mkdir l1
bash-4.2$ ls
l1/  LS/  文物/
bash-4.2$ cp  文物 ./l1
cp: omitting directory ‘文物’ #拷贝目录报错
bash-4.2$ cp -r 文物 ./l1 #正确拷贝目录方式
bash-4.2$ ls l1
文物/
echo 
  • 功能:在终端输出字符串或变量内容
cat/tac
  • 功能:在终端输出文件的所有内容 (-n选项显示行号)
find
  • 功能:在指定路径中查找一个文件
  • 常见用法示例:find [路径] [表达式:选项+参数]
  • [路径] 是 find 命令开始搜索的目录路径。如果省略,则默认为当前目录。
  • [表达式] 定义了搜索的条件。find 命令通过表达式来匹配文件或目录。
  • 只会一个就行:find [路径] -name [文件名]
bash-4.2$ ls
SeqList/  SList/  test_24_3_31/  test_24_4_13/
bash-4.2$ find -name test.c
./test_24_3_31/test.c
./SeqList/test.c
./SList/test.c
bash-4.2$ ls test_24_4_13/
test1
bash-4.2$ find -name test1
./test_24_4_13/test1
bash-4.2$ 
grep
  • 功能:在文件中搜索指定字符串
  • 常见用法示例:grep [-r] [字符串] [文件/目录]
more
  • 功能:分页查看一个内容(缺少一定的互动性)
  • 常见用法示例:more [文件路径]
less        
  • 功能:分页查看一个内容(互动性丰富,可点击H键查看)——man手册使用的就是less
  • 常见用法示例:man [文件路径]
4.其它指令

        其它指令有系统信息命令压缩解压命令进程管理命令网络命令等等,但因为是初学者,有些指令咱们很难理解到他的用途,更别说要记忆了。

  • 检测网络是否正常
  • ping -c3 ping www.baidu.com # -c3 ping3次停下,检测是否能正常上网
  • ifconfig #检测网络端口,也可以通过IP地址是否正常来检测是否能正常上网
  • ifdown [网络端口] #紧用网络
  • ifup [网络端口] 启动网络
bash-4.2$ ifconfig #检查网络端口——ens33,以及IP是否正常
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.254.129  netmask 255.255.255.0  broadcast 192.168.254.255
        inet6 fe80::8c21:d26a:6809:8e3e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f4:9c:9f  txqueuelen 1000  (Ethernet)
        RX packets 20410  bytes 25633549 (24.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9158  bytes 568601 (555.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 80  bytes 6904 (6.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6904 (6.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:28:08:eb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bash-4.2$ sudo ifdown ens33 #关闭网络
Device 'ens33' successfully disconnected.
bash-4.2$ ping -c3 www.baidu.com #通过一个知名网址,检测是否能正常上网
ping: www.baidu.com: Name or service not known
bash-4.2$ sudo ifup ens33 #启动网络
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
bash-4.2$ ping -c1 www.baidu.com #再次检查网络是否正常
PING www.a.shifen.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=1 ttl=128 time=60.1 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 60.135/60.135/60.135/0.000 ms
bash-4.2$ 
 5.常用热键

       


      

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值