Linux目录结构和常见命令

本文详细介绍了Linux的目录结构,包括/bin、/sbin、/usr/bin等重要目录的功能,并列举了常见的系统命令,如su、cd、ls、pwd、mkdir、touch、cp、mv、rm、cat、more、head、tail、ln等的用法。此外,还讲解了帮助命令man、文件搜索命令find、grep、which、whereis,以及压缩解压缩命令gzip、bzip2、zip和tar的使用。最后,简要提到了VIM文本编辑器的基本操作和Linux环境配置,如修改IP地址、网络通信命令ping、ifconfig、netstat等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录结构

在这里插入图片描述

/bin: (binaries) 存放系统命令的目录,所有用户都可以执行。
/sbin : (super user binaries) 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令,有些命令可以允许普通用户查看。
/usr/bin:存放系统命令的目录,所有用户可以执行。这些命令和系统启动无关,单用户模式下不能执行
/usr/sbin:存放根文件系统不必要的系统管理命令,超级用户可执行
/root: 存放root用户的相关文件,root用户的家目录。宿主目录 超级用户
/home用户缺省宿主目录 eg:/home/spark
/tmp:(temporary)存放临时文件
/etc:(etcetera)系统配置文件
/usr:(unix software resource)系统软件共享资源目录,存放所有命令、库、手册页等
/proc:虚拟文件系统,数据保存在内存中,存放当前进程信息
/boot:系统启动目录
/dev:(devices)存放设备文件
/sys :虚拟文件系统,数据保存在内存中,主要保存于内存相关信息
/lib:存放系统程序运行所需的共享库
/lost+found:存放一些系统出错的检查结果。
/var:(variable) 动态数据保存位置,包含经常发生变动的文件,如邮件、日志文件、计划任务等
/mnt:(mount)挂载目录。临时文件系统的安装点,默认挂载光驱和软驱的目录
/media:挂载目录。 挂载媒体设备,如软盘和光盘
/misc:挂载目录。 挂载NFS服务
/opt: 第三方安装的软件保存位置。 习惯放在/usr/local/目录下
/srv : 服务数据目录

常见命令

命令格式:
命令 [-选项] [参数]
如:ls -la /usr

说明:
大部分命令遵从该格式
多个选项时,可以一起写 eg:ls –l –a = ls –la
简化选项与完整选项(注:并非所有选项都可使用完整选项) eg:ls –all = ls –a

su 命令

作用:切换用户身份
语法:su [选项] 用户名
-表示用户的环境变量一起切换
-c 仅执行一次命令,而不切换用户身份

$ su – root 
env

$ su – root –c “useradd longjing”

文件处理命令

文件或目录的CRUD上

cd命令

cd:change directory
命令路径:内部命令 执行权限:所有用户
语法: cd [目录名],切换当前目录至dirName

命令解释
cd /进入根目录
cd ~进入家目录,即home目录
cd -进入上一次工作路径
cd .当前目录
cd …进入当前目录的父目录
cd !$把上个命令的参数作为cd参数使用

ls命令

不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
ls:

deyouli@deyouli-Lenovo-G410:~$ ls
anaconda3  Documents  examples.desktop  Music     Public     Videos
Desktop    Downloads  lala.py           Pictures  Templates
命令含义
ls -a列出目录所有文件,包含以.开始的隐藏文件
ls -A列出除.及…的其它文件
ls -r反序排列
ls -t以文件修改时间排序(逆序排序)
ls -R递归显示当前目录下所有目录
ls -S以文件大小排序
ls -h以易读大小显示
ls -l除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ll相当于ls -l

pwd命令

英文:print working directory
命令路径:/bin/pwd
执行权限:所有用户
作用:显示当前工作目录
语法:pwd [-LP]

  • -L 显示链接路径,当前路径,默认
  • -P 物理路径
eg:
# cd /etc/init.d
#pwd [-P]
命令解释
pwd查看当前路径
pwd -P查看软链接的实际路径

mkdir命令

mkdir t
当前工作目录下创建名为t的文件夹
英文:make directories
命令路径:/bin/mkdir
执行权限:所有用户
作用:创建新目录
语法:mkdir [-p] 目录名

  • -p 父目录不存在情况下先生成父目录 (parents)

eg: mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。
mkdir -p /tmp/test/t1/t
在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建

touch命令

命令路径:/bin/touch
执行权限:所有用户
作用:创建空文件或更新已存在文件的时间
语法:touch 文件名
eg:touch a.txt b.txt touch {a.txt,b.txt} 同时创建多个文件
创建带空格的文件 eg:touch “program files” 在查询和删除时也必须带双引号
注意:生产环境中,文件名,一定不要加空格

cp命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。
语法:cp [–rp] 源文件或目录 目的目录

  • -r -R recursive 递归处理,复制目录
  • -p 保留文件属性 (原文件的时间不变)

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!
cp [OPTION]... [-T] SOURCE DEST
表示复制SOURCE到DEST
eg:
1,相对路径 cp –R /etc/* . cp –R ../aaa ../../test/
2,绝对路径 cp –R /ect/service /root/test/aa/bb

mv命令

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
当第二个参数为目录时,可刚多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录中。
例1:
将文件test.log重命名为test1.txt
mv test.log test1.txt

例2:
将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中
mv llog1.txt log2.txt log3.txt /test3

例3:
将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv -i log1.txt log2.txt

例4:
移动当前文件夹下的所有文件到上一级目录
mv * ../

rm命令

语法:
rm [选项] 文件…
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用rm 来删除文件,通常仍可以将该文件恢复原状
例1:
删除任何.log文件;删除前逐一询问确认
rm -i *.log
例2:
删除test子目录及子目录中所有档案删除,并且不用一一确认
rm -rf test
例3:
删除以-f开头的文件
rm -- -f*
注意:工作中,谨慎使用rm –rf 命令。
扩展点:删除乱码文件
一些文件乱码后使用rm -rf 依然无法删除
此时,使用ll -i 查找到文件的inode节点
然后使用find . -inum 查找到的inode编号 -exec rm {} -rf ;
就能顺利删除了

cat命令

英文:concatenate
命令路径:/bin/cat
执行权限:所有用户
作用:显示文件内容
语法:cat [-n] [文件名]

  • -A 显示所有内容,包括隐藏的字符
  • -n 显示行号
    eg:cat /etc/services

cat主要有三大功能:

  • 一次显示整个文件:cat filename
  • 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
  • 将几个文件合并为一个文件:cat file1 file2 > file

-b对非空输出行号
-n输出所有行号
例1:
把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
cat -n log2012.log log2013.log
例2:
把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
cat -b log2012.log log2013.log log.log

more命令

功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
命令路径:/bin/more
执行权限:所有用户
作用:分页显示文件内容
语法:more [文件名]

  • 空格或f 显示下一页
  • Enter键 显示下一行
  • q或Q 退出

head

命令路径:/usr/bin/head
执行权限:所有用户
作用:查看文件前几行(默认10行)
语法:head [文件名]
-n 指定行数
eg:head -20 /etc/services head –n 3 /etc/services

tail

命令路径:/usr/bin/tail
执行权限:所有用户
作用:查看文件的后几行
语法:tail [文件名]

  • -n 指定行数
  • -f (follow) 动态显示文件内容(日志)

获取一个大文件(日志文件)的部分文件,可使用head或tail命令
head -n 100 /etc/services >config.log

ln

英文: link
命令路径:/bin/ln
执行权限:所有用户
作用:产生链接文件
语法:
ln -s [源文件] [目标文件] 创建软链接 源文件 使用 绝对路径
ln [源文件] [目标文件] 创建硬链接

eg:
ln -s /etc/service ./service.soft
创建文件/etc/service的软链接service.soft
eg:
/etc/service /service.hard
创建文件/etc/service的硬链接/service.hard
软连接类似于windows下的快捷方式
软连接文件格式:
lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services
1 硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。
13链接文件的长度

格式解析(特征):
1, 软连接的文件类型是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx
2,-> 箭头指向到源文件
真正的权限取决于对源文件的权限
时间值为创建软连接的时间
软连接可以跨文件系统生成

硬链接特征
1,相当于 cp -p + ==同步更新 ==
2,通过i节点识别,与源文件有相同的inode节点
3,硬链接不能跨分区,ln /home/test/issuels /boot/test (错误)
4,不能针对目录使用 ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)
删除软连接
rm -rf symbolic_name

帮助命令

man

英文:manual
命令路径:/usr/bin/man
执行权限:所有用户
作用:获取命令或配置文件的帮助信息
语法:man [命令/配置文件]
eg:man ls man services
(查看配置文件时,不需要配置文件的绝对路径,只需要文件名即可)
调用的是more命令来浏览帮助文档,按空格翻下一页,按回车翻下一行,按q退出。
使用/加上关键的参数可直接定位搜索, n 查找下一个,shift+n查找上一个
eg: /-l 直接查看-l的介绍

扩展:man的级别 (帮助文档的类型, 了解1 5即可)
man man-pages 查看每一种类型代表的含义 man文档的类型(1~9)
1是命令,5是配置文件 man优先显示命令,可指定帮助类型
eg:man 5 passwd (5代表配置文件级别)

在这里插入图片描述

help

help 查看shell内置命令的帮助信息
eg:help cd
内置命令,使用whereis,which,man都不能查看
type 命令查看内部命令还是外部命令

命令名 --help

命令名 --help 列举该命令的常用选项
eg: cp --help

文件搜索命令

find

命令路径:/bin/find
执行权限:所有用户
作用:查找文件或目录
语法:find [搜索路径] [匹配条件]
如果没有指定搜索路径,默认从当前目录查找
find命令选项
-name 按名称查找 精准查找
eg:find /etc -name “init”在目录/etc中查找文件init
-iname 按名称查找
find查找中的字符匹配:

  • *:匹配所有
  • :匹配单个字符

eg:find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件
模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用\*
eg: find . –name *g
-size 按文件大小查找
以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于
eg:find /etc -size -204800 在etc目录下找出大于100MB的文件
100MB=102400KB=204800block
-type 按文件类型查找
f 二进制文件 l 软连接文件 d 目录 c 字符文件
eg:find /dev -type c

find查找的基本原则:
占用最少的系统资源,即查询范围最小,查询条件最精准
eg:
如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/

grep命令

命令路径:/bin/grep
执行权限:所有用户
作用:在文件中搜寻字串匹配的行并输出
语法:grep [-cinv] '搜寻字符串' filename
选项与参数:

  • -c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)
  • -i :忽略大小写,所以大小写视为相同
  • -n :显示匹配行及行号
  • -v :反向选择,显示不包含匹配文本的所有行。

eg:grep ftp /etc/services
eg:grep -v ^# /etc/inittab 去掉文件行首的#号
eg:grep -n “init”/etc/inittab 显示在inittab文件中,init匹配行及行号
eg:grep -c“init”/etc/inittab 显示在inittab文件中,init匹配了多少次
eg:ll /etc/ | grep car.py 查找每个文件

which

命令路径:/usr/bin/which
执行权限:所有用户
作用:显示系统命令所在目录(绝对路径及别名)
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
which ls
alias ls=‘ls --color=auto’
/bin/ls
which zs
/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

whereis

命令路径:/usr/bin/whereis
执行权限:所有用户
作用:搜索命令所在目录 配置文件所在目录帮助文档路径
eg: which passwdwhereis passwd
eg:查看/etc/passwd配置文件的帮助,就用 man 5 passwd

压缩解压缩命令

gzip

英文:GNU zip
命令路径:/bin/gzip
执行权限:所有用户
作用:压缩(解压)文件,压缩文件后缀为.gz
gzip只能压缩文件,不能压缩目录;不保留原文件
语法:gzip 文件

  • -d将压缩文件解压(decompress)
    gzip lala.py
    gzip -d lala.py.gz
    gunzip lala.py.gz

解压使用gzip –d或者gunzip

bzip2

命令路径:/usr/bin/bzip2
执行权限:所有用户
作用:压缩(解压)文件,压缩文件后缀为.bz2
语法:bzip2 [-k] [文件]

  • -k:产生压缩文件后保留原文件(压缩比高)
  • -d 解压缩的参数(decompress)

解压使用bzip2 –d或者 bunzip2

zip

命令路径:/usr/bin/zip
执行权限:所有用户
作用:压缩(解压)文件,压缩文件后缀为.zip
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]

  • -r压缩目录

eg:
zip services.zip /etc/services 压缩文件;
zip -r test.zip /test 压缩目录
如果不加-r选项,压缩后的文件没有数据。
解压使用unzip

tar

命令路径:/bin/tar
执行权限:所有用户
作用:文件、目录打(解)包
语法:tar [-zcf] 压缩后文件名 文件或目录

  • -c 建立一个压缩文件的参数指令(create),后缀是.tar
  • -x 解开一个压缩文件的参数指令(extract)
  • -z 以gzip命令压缩/解压缩
  • -j 以bzip2命令压缩/解压缩
  • -v 压缩的过程中显示文件(verbose)
  • -f file 指定文件名,必选项

1, 单独的打包 ,解包 tar –cf tar –xf
2, 打包之后,进行压缩gzip bzip2
3, 一步到位 tar –zcvf tar -zxvf
tar -cf -xf 单独 压缩 解压缩
tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz)
tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2
eg:
tar -zcvf dir1.tar.gz dir1 使用gzip将目录dir1压缩成一个打包并压缩文件dir1.tar.gz
tar -zxvf dir1.tar.gz -C(大写的) /root 解压到指定的/root目录
eg: tar -cvf bak.tar . 将当前目录的文件打包为bak.tar
eg: tar -xvf bak.tar 解压
eg: tar -zcvf bak.tar.gz bak.targzip bak.tar 使用gzip将打包文件bak.tar压缩为bak.tar.gz
eg: tar -jcvf bak.tar.bz2 bak.tarbzip2 bak.tar 使用bzip2将打包文件bak.tar压缩为bak.tar.bz2
eg:tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中®
eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的压缩文件
eg:tar -xjf test.tar.bz2 解压
最常用: tar + gzip
tar –zcvf压缩
tar –zxvf 解压
补充:
1,文件路径, 压缩包带文件路径
2,源文件是保留的,不会被删除

系统关机命令

shutdown [选项] 时间
选项:

  • -c: 取消前一个关机命令
  • -h:关机
  • -r:重启

eg:
shutdown -h now 立即关机
shutdown -h 20:30 定时关机
其他关机命令 halt poweroff init 0
其他重启命令
reboot 重启系统
reboot -h now 立即重启
init 6
注意:生产环境中,关机命令和重启命令谨慎执行。

Linux学习技巧

  • 善于查看man help等帮助文档
  • 利用好Tab键 自动补全
  • 掌握好一些快捷键
    • ctrl + c(停止当前进程)
    • ctrl + z 挂起当前进程,放后台
    • ctrl + r(查看命令历史) history
    • ctrl + l(清屏,与clear命令作用相同)
    • 方向箭头 上 下 可以查看执行过的命令
    • ctrl + a 行首
    • ctrl + e 行尾
    • ctrl + k 清除
    • ctrl + w 清除单词

VIM文本编辑器

vim/vi是Unix / Linux上最常用的文本编辑器而且功能非常强大。
只有命令,没有菜单

《大碗》编辑器版
周围的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼…什么插件呀、语法高亮呀、拼写检查呀,能给它开的都给它开着,就是一个字:酷!你说这么牛X的一东西,怎么着学会也得小半年吧。半年!?入门都远着呢!能学会移动光标就不错了,你还别说耗不起,就这还是左右移动!!!

VIM工作模式


命令模式:又称一般模式
编辑模式:又称底行模式,命令行模式

插入命令

命令作用
a在光标后附加文本
A(shift + a)在本行行末附加文本 行尾
i在光标前插入文本
I(shift+i)在本行开始插入文本 行首
o在光标下插入新行
O(shift+o)在光标上插入新行

定位命令

命令作用
:set nu设置行号
:set nonu取消行号
gg到第一行
G到最后一行
nG到第n行
:n到第n行

保存和退出命令

命令作用
:w保存修改
:w new_filename另存为指定文件
:w >> a.txt内容追加到a.txt文件中 文件需存在
:wq保存修改并退出
shift+zz(ZZ)快捷键,保存修改并退出
:q!不保存修改退出
:wq!保存修改并退出(文件所有者可忽略文件的只读属性)

不保存并退出:
1, 有修改,但是修改后的内容是不保存的
2, 有突发情况,导致窗口退出。修改文件之后,直接删除同名的.swp文件

删除命令

命令作用
x删除光标所在处字符 ,nx 删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
:n1,n2d删除指定范围的行(eg :1,3d 删除了123这三行)
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾

复制和剪切命令

命令作用
yy、Y复制当前行
nyy、nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在行下 或行上

替换和取消命令

命令作用
r取代光标所在处字符,只能修改一次
R(shift + r)从光标所在处开始替换字符,按Esc结束
uundo,取消上一步操作
ctrl+rredo,返回到undo之前,取消"取消"

搜索和替换命令

命令作用
/string向后搜索指定字符串 搜索时忽略大小写 :set ic
?string向前搜索指定字符串
n搜索字符串的下一个出现位置,与搜索顺序相同
N(Shift + n)搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g全文替换指定字符串,%是全局替换,s代表开始
:n1,n2s/old/new/g在一定范围内替换指定字符串

注释:
%全文s开始g全局替换
起始行,终止行s/要替换的字符串/替换的新的字符串/gc 询问确认

  • eg: :%s/ftp/yang/g 全局替换,把ftp替换为yang
  • eg: :41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换
  • eg: :41,44/yang/lee/g 同上,不询问,直接替换
  • eg: :%s/\/root/\/ROOT/g 把/root替换为/ROOT
  • eg: :%s#/bin/bash#/bin/ksh/g 把/bin/bash全部替换为/bin/ksh

使用替换命令来添加删除注释

:% s/^/#/g来在全部内容的行首添加 # 号注释
:1,10 s/^/#/g 在1~10 行首添加 # 号注释
vi里面怎么查命令??
:!which cp
vi里面怎么导入命令的结果?
:r !which cp

可视化模式

v 可视字符模式
V(shift+v) 可视行模式,选择多行操作
ctrl+v 可视块模式(列模式),操作列
I或者O进入插入模式。

Linux环境配置

修改ip地址

1,图形化界面
2,setup 命令虚拟界面
3,修改配置文件(以网络方式为NAT示例)

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.129
NETMASK=255.255.255.0
GATEWAY=192.168.2.2      #网段2任意,IP地址2固定,网段为vmnet8的设置的IP网段
DNS1=114.114.114.114   
DNS2=8.8.8.8

重启网络生效:
service network restart

网络通信命令

ping

命令路径:/bin/ping
执行权限:所有用户
作用:测试网络的连通性
语法:ping 选项 IP地址
-c 指定发送次数
ping 命令使用的是icmp协议,不占用端口
eg:ping -c 3 127.0.0.1

ifconfig

英文:interface configure
命令路径:/sbin/ifconfig
执行权限:root
作用:查看和设置网卡网络配置
语法:ifconfig [-a] [网卡设备标识]
-a:显示所有网卡信息
ifconfig [网卡设备标识] IP地址 修改ip地址

netstat

英文:network statistics
命令路径:/bin/netstat
执行权限:所有用户
作用:主要用于检测主机的网络配置和状况

  • -a all显示所有连接和监听端口
  • -t (tcp)仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 使用数字方式显示地址和端口号
  • -l (listening) 显示监控中的服务器的socket

egnetstat -tlnu 查看本机监听的端口
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口
netstat -au 列出所有 udp 端口
nestat -at列出所有tcp端口
netstat -an查看本机所有的网络连接
netstat –antpl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值