Linux

Linux 入门

目录结构

在Unix/Linux系统中组成路径的目录分割符为斜杠"/"

路径分为绝对路径和相对路径:
绝对路径 :绝对路径是从目录树的树根“/”目录向下到达目标路径

相对路径:相对路径是指目标目录相对于当前目录的位置。

shell:命令解析器。—— unix —— Born
bash:命令解析器。 —— Linux —— Born again shell

“.”: 相对于shell当前工作目录位置
“..”: 相对于shell当前工作目录位置上一级目录

  • 根目录:"/"表示, ,在Linux下有且只有一个根目录

  • bin 目录:"/bin" 存放二进制可执行文件

  • dev 目录:"/dev" 存放系统设备文件。 —— Linux 系统中, 所见皆文件

  • etc 目录:"/etc" 存储系统配置文件, 不建议在此目录下存放可执行文件。
    重要的配置文件:
    /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d

  • home目录:存放系统用户的“家目录”(宿主目录),新增用户账号时,用户的家目录都存放在此目录下,"~"表示当前用户的家目录

  • root目录:系统管理员root的 “家目录”
    终端提示符结构: 用户名@计算机名 : 当前shell的工作目录 #(root)/ $ (普通用户)

  • temp目录:存放正在运行的 用户程序,所使用的临时文件

  • usr目录: 存放用户程序相关数据、资源
    /usr/bin 存放应用程序
    /usr/share 存放共享数据
    /usr/lib 存放不能直接运行的函数库文件
    /usr/local: 存放软件升级包
    /usr/share/doc: 系统说明文件存放目录
    /usr/share/man: 程序说明文件存放目录
    /usr/include:存放头文件

基本指令

  • ls 指令 : list 简写,列出目录的内容
参数 含义
ls -a 显示指定目录下所有子目录与文件,包括隐藏文件
ls -l 以列表方式显示文件的详细信息
ls -h 以列表方式显示文件的详细信息
ls -d 查看目录本身的详细信息
ls示例

ls-l 解析:


组成结构
  1. 文件属性(类型):
    第一个字符: 文件类型。—— 7种。(Linux系统不以后缀名作为区分文件依据。)

“-”: 普通文件(文本文件)
“d”:目录文件
“l”:软连接 —— 相当于 windows下的快捷方式。
--- 以上3种,是Linux系统中实际占用磁盘存储的文件。
“b”:块设备文件
“c”:字符设备文件
“p”:管道文件(channel) —— pipe

“s”:套接字文件
—— 以上4种,,是Linux系统中伪文件(不占用磁盘存储

  1. 文件操作权限(存取控制):9个字符, 分3组---- 所有者、所属组、其他人

r:读、w:写、x:执行。 对应位有对应权限,显示对应字符,没有对应权限。用“-”站位。

  1. 链接:
    3.1 硬链接
    硬链接特性: 源文件和硬链接文件之间具有相同的属性,并且能实时同步
    硬链接原理: 借助 inode(i节点)。 一般情况下,每个文件具有一个inode, 但硬链接文件之间具有相同的inode,系统在操作文件时,以inode为标识访问文件。

创建硬链接:ln 源文件名 硬链接文件名
创建硬链接时,相当于在一个 inode上,创建多个访问路径(dentry — 目录项)
查看inode命令: ls -i 文件名 或者 stat 文件名 删除硬链接时,相当于断开一个 dentry 对 inode 的 指向。

inode 查看

3.2. 软链接--类似windows中的快捷方式
创建命令: ln -s 源文件名 软连接文件名 ——> 保证任意搬移软链接依然生效,源文件名采用“绝对路径”创建
软链接的大小:实际指向的文件的访问路径。

软链接.png
  1. 文件大小:
    普通文件:表实际大小。
    目录文件:表占用存储空间大小。
    软连接文件:表实际路径大小。
    时间:创建、或最后一次修改文件的时间。
  • cd指令: 切换工作目录(change directory)
    cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录
参数 含义
cd 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 切换到当前目录
cd .. 切换到当前目录的上一级目录
cd - 进入上一个进入的目录
  • rm删除指令: 删除文件或者目录(remove)
    文件删除后不能恢复
参数 含义
rm -i 以进行交互式方式执行
rm -r 递归地删除目录下的内容,删除文件夹时必须加此参数
rm -f 强制删除,忽略不存在的文件,无需提示
删除指令
  • cp拷贝指令: 将给出的文件或目录复制到另一个文件或目录中
    cp 待拷贝文件/目录路径 目的路径
参数 含义
rm -a 保留链接、文件属性,并递归地复制目录,保持文件原有属性
rm -r cp将递归复制该目录下的所有子目录和文件,目标文件也可以是文件
rm -f 覆盖已经存在的目标文件而不提示
rm -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
rm -v 显示拷贝进度

示例:
cp vim_configure/ code/ -ivr 把文件夹 vim_configure 拷贝到 code 目录里

  • mv移动指令: 移动或重命名文件或者目录
参数 含义
mv -i 交互方式操作,如果导致对已存在的目标文件的覆盖,系统会询问是否重写
mv -f 禁止交互式操作,如有覆盖也不会给出提示
mv -v 显示移动进度
mv 移动
  • 压缩/解压缩指令:
    压缩:

tar -zcvf 压缩包名.tar.gz 压缩源材料(可以是多个文件)
tar -jcvf 压缩包名.tar.bz2 压缩源材料(可以是多个文件)


z:gzip格式
j:bzip2格式
c:Create
v:view 查看
f:file 压缩文件名

解压缩:

tar -zxvf 压缩包名.tar.gz -C 解压到路径 【重点】
tar -jxvf 压缩包名.tar.bz2 -C 解压到路径

x:解压缩
-C 参数: 解压缩到指定目录位置。

其他压缩:zip /rar

zip:
压缩 zip testZIP cba hello.h out ——> testZIP.zip
解压缩:unzip testZIP.zip
rar:
压缩:rar a -r testRAR cba hello.h out ——> testRAR.rar
解压缩: rar x testRAR.rar

  • 用户管理:

sudo su —— 切换当前用户为 root
passwd: 修改当前用户的 密码。
su root : 切换当前用户为 root 用户。不改变工作目录位置。
su - root : 切换当前用户为 root 用户。改变工作目录位置到root的家目录。
sudo: 临时获得一次root用户权限。 当前命令执行结束,权限失效。

  1. 创建删除用户/用户组

1.1 增加用户
sudo adduser 新用户名 —— 输入密码、输入用户信息 、 Y
新用户添加成功,同时创建相应的用户组。 /etc/passwd 有用户相关描述信息。/etc/group 用户组有相关描述

1.2 删减用户
sudo deluser 用户名 —— 同时删除用户组。
删除用户添加成功, /etc/group 和 /etc/passwd 删除相关描述信息。

1.3 增加用户组
sudo addgroup 新组名
新组添加成功,/etc/group 新添用户组相关描述。

1.4 删除用户组
sudo delgroup 组名
删除组名成功, /etc/group 删除相关描述信息。

  1. 修改文件权限

2.1 修改文件所有者
sudo chown 用户名 待修改文件名


image.png

2.2 修改文件所属组
sudo chgrp 组名 待修改文件名

image.jpeg

2.3 修改文件操作属性
文字法:

参数 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o 其他用户
a u, g, o三者都包括
- 撤销权限
+ 增加权限
= 设定权限
r read 表可读权限
w write 表可写权限
x excute 表可执行权限

示例:

其他用户增加w权限
用户组设定x权限

数字法 :

参数 含义
r 读取权限,数字代号为 "4"
w 写入权限, 数字代号"2"
x 可执行权限,数字代号"1"
- 无权限,数字代号"0"

r-x-wx--x —— sudo chmod 531 file

示例:


设定rwx 权限
  • 系统管理
  1. ps(查看系统进程):
参数 含义
-a 查看全部进程
-u 显示进程详细信息
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示正在运行的进程

常用指令:
ps aux | grep xxx :筛选出含有 xxx的进程
ps aux | more: 以more的方式显示全部进程信息

2 kill (终止进程):
kill 指定PID(进程号)的进程,需要配合 ps 使用查询对应进程的PID

使用格式:
kill [-signal] PID

siginal list

signal list.png

常用指令:kill -9 PID ----强制结束进程

3 关机重启:

参数 含义
reboot 重新启动操作系统
shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:30 定时今天20:30关机
shutdown -h +10 定时10分钟关机
init 0 关机
init 6 重启

4 字符界面和图形界面切换(适用大部分平台)
切换到字符界面:Ctrl + Alt + F3 或者 init 3
切换到图形界面:Ctrl + Alt + F1 或者 init 5

5 后台程序指令(&,jobs,fg):

用户可以将一个前台执行的程序调入后台执行,方法为:命令 &
如果程序已经在执行,ctrl+z可以将程序调入后台
jobs查看后台运行程序
fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台

  • 查找与检索指令:
  1. find指令:按文件属性查找
    语法: find 搜索目录位置 参数 条件

1.1 -name : 按文件名
例:find /home/itcast -name "hello.go"
find /home/itcast -name "*.mp3" ----搜索以mp3结尾的文件

1.2 -type: 按文件类型
find /home/itcast -type “p”

“f”:普通文件
“d”:目录
“l”:软连接
“b”:块设备
“c”:字符设备
“p”:管道
“s”:套接字

1.3 -size:按文件大小
find /home/itcast/ -size +5M -size -9M

注意事项:
1. 每个大小前,都要加 -size 描述
2. M:不能小写。 k:不能大写
3. 无单位时,采用 扇区(512B)个数统计

1.4 -maxdepth: 指定搜索层级深度
find ./ -maxdepth 1 -name "*.sh"-----查找 当前一级目录下带有sh后缀的文件

1.5 -exec:对搜索到的结果,执行某一命令
find ./ -maxdepth 1 -name "*.sh" -exec ls -l {} \;
查找当前一级目录下的sh后缀的文件,并显示详细文件信息

1.6 -xargs:
find ./ -maxdepth 2 -type "f" | xargs ls -lh
查找当前一级 及二级目录下普通文件,并显示详细文件信息

备注: 解决带有空格文件名的异常
find ./ -maxdepth 2 -type "f" -print0 | xargs -0 ls -lh

  1. grep指令 :
    语法:grep -r “检索条件” 检索目录位置

例:
grep -r “init”./ -n
-n: 显示检索条件所在行号

结合 find 、xargs、grep:
在指定目录下,搜索包含 “love”的普通文件,并显示它们出现的 行号。
find /home/itcast/sh-go1/ -maxdepth 1 -type "f" -print0 | xargs -0 grep "love" -n

  • vi / vim 指令

命令模式:输入内容都是命令
编辑模式:编写程序
末行模式:执行末行命令----w:保存、 q: 退出、wq:保存退出、x:保存退出、q!:强制退出

vim工作模式.png
  1. 编辑模式:
    i:向光标前面插入
    a:向光标之后插入
    o:向光标所在行下一行插入
    s:删除光标选中字符,切换工作模式为 编辑模式
    I:向光标所在行的行首插入
    A:向光标所在行的行尾插入
    O:向光标所在行上一行插入
    S:删除光标所在行,切换工作模式为 编辑模式

  2. 命令模式:

2.1 常用光标移动指令

参数 含义
h 光标左移
j 光标下移
k 光标上移
l 光标右移
gg 跳转到第一行行头
G 跳转到尾行
nG 跳转到第n行==末行模式输入:n
0 跳转到本行行头
$ 跳转到本行行尾
u 撤销
Ctrl+r 反撤销

2.2 复制,粘贴:

yy:复制光标所在行。 p粘贴到光标所在行的 下一行。 P(大写)粘贴到光标所在行的前一行
Nyy:复制从光标位置向后N行。p粘贴到光标所在行的 下一行。
yw:复制从光标位置向后一个单词。p向后粘、P向前粘。
区域复制:
1) 将光标挪移至待复制区域起始位置。
2) 按“v”(看到“可视”提示)
3) 使用 hjkl 挪移光标,选择要复制区域。 按 y 复制。
4)p向后粘、P向前粘。

2.3 剪切,删除指令

dd:剪切光标所在行。 p粘贴到光标所在行的 下一行。 P(大写)粘贴到光标所在行的前一行
Ndd:剪切从光标位置向后N行。p粘贴到光标所在行的 下一行。
dw:剪切从光标位置向后一个单词。p向后粘、P向前粘。
d0: 删除、剪切 从光标位置到 行首
d$ : 删除、剪切 从光标位置到 行尾 === 等价于“D”
区域剪切:
1) 将光标挪移至待剪切区域起始位置。
2) 按“v”(看到“可视”提示)
3) 使用 hjkl 挪移光标,选择要剪切区域。 按 d 剪切。
4)p向后粘、P向前粘。

2.4 查找,替换

查找:命令模式下“/” 查找一个臆想的查找对象。 “n”提取下一个。
命令模式下,查找一个光标所在位置的单词,后续出现的位置。“*”向后找。 “#”向前找

替换:

1.单行替换:
末行模式下, 光标置于待替换行。 :s/原字符串/新字符串
如果一行有多个,默认只替换一次。在结尾处,添加“g”, 可以全部替换。
如: :s/Println/Printf/g

2.多行替换:
末行模式下, :起始行,终止行s/原字符串/新字符串/g
如: :30,70s/Println/Printf/g

3.通篇替换:
末行模式下,:%s/原字符串/新字符串/g

  1. 末行模式:
    分屏:

    :sp 将当前窗口 横屏划分。
    :vsp 将当前窗口 竖屏划分。
    Ctrl+ww 再各个屏幕中 切换。
    :wq 退出一个子屏幕。
    :wqall 全部退出。

在vim中执行shell命令:

!shell命令。 执行结束。按 Enter 返回。

  • 其他常用指令
  1. cat 文件名:读取指定文件内容,显示到屏幕

  2. tac 文件名: 倒序显示文内容(与cat相反)

  3. touch 文件名:创建空文件

  4. mkdir 目录名: 创建空目录。
    -p:一次性创建多级目录。 mkdir -p a/b/c/d == mkdir -p ./a/b/c/d

  5. rmdir 文件名: 删除空目录

  6. file文件名: 获取文件类型

  7. pwd: 显示当前工作目录

  8. which:查看命令位置 ---- which ls--- >/bin/ls

  9. who am I: 查看当前用户

  10. history :列出历史执行过的命令记录。使用“!”过往命令序号 可以快速重新执行该命令

  11. ">" : 将 输出 重定向 给指定文件,文件不存在创建,存在覆盖原有内容 (如果不想覆盖,使用“>>”追加)

  12. “more”: more 文件名: 按百分比显示大文件。“空格”一次翻页一屏幕。 “回车”一次一行。 按“q”退出

  13. “less”:类似于more。 可以指定行跳转。可以使用鼠标滚动。按“q”退出

  14. “head”:执行参数,查看文档前xxx行

  15. “tail”:执行参数,查看文档结尾xxx

  16. ifconfig:查看配置网卡信息(显示所有网卡的信息)

  17. ping:检查是否与远程主机建立了TCP/IP连接
    ---ping 远程主机ip地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容