Linux

2018-09-10  本文已影响0人  husky_1

Linux 入门

目录结构

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

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

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

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

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

基本指令

参数 含义
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 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 切换到当前目录
cd .. 切换到当前目录的上一级目录
cd - 进入上一个进入的目录
参数 含义
rm -i 以进行交互式方式执行
rm -r 递归地删除目录下的内容,删除文件夹时必须加此参数
rm -f 强制删除,忽略不存在的文件,无需提示
删除指令
参数 含义
rm -a 保留链接、文件属性,并递归地复制目录,保持文件原有属性
rm -r cp将递归复制该目录下的所有子目录和文件,目标文件也可以是文件
rm -f 覆盖已经存在的目标文件而不提示
rm -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
rm -v 显示拷贝进度

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

参数 含义
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

命令模式:输入内容都是命令
编辑模式:编写程序
末行模式:执行末行命令----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地址

上一篇下一篇

猜你喜欢

热点阅读