Linux-相关操作

2.2.2 Linux目录结构

/:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入"/home",你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。

/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。

/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。

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

/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录。

/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。

/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。

/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。

/opt:给主机额外安装软件所摆放的目录。

/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。

/root:系统管理员root的家目录(宿主目录)。

/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。

/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。

/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。

/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。/usr/include:存放头文件。

/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。

绝对路径: 从根目录开始,指定一个位置、文件

相对路径:从当前进程工作目录位置开始,指定一个位置、文件。

shell:命令解析器。默认运行在终端当中的程序(进程)。 ------ unix ------ born

bash:born again shell。 Linux版的shell。命令解析器。

文件:

在Linux操作系统中,所见皆文件。

用户:

Linux 是一款多用户多任务的分时复用操作系统。

家目录:宿主目录。

复制代码
每个用户不同。------ cd 回车  所到的目录。

ls -l 命令:

复制代码
文件属性 :10 个字符,分为 2组。

	第一组: 第一个字符。 代表文件类型: 7种 ------ Linux下不以文件后缀名,作为区分文件类型的依据。

		普通文件: -
		目录文件:d
		软链接文件:l		------ 相当于  windows 快捷方式。

		字符设备文件:c		------ 伪文件(不占用磁盘存储)
		块设备文件:b		------ 伪文件
		套接字文件:s		------ 伪文件
		管道文件:p		------ 伪文件

		unknown 文件。

	第一组: 9 个字符。分3组。------ 文件所有者、文件所属组、其他人 : r、w、x		

硬链接计数: 有多少个 文件公用同一个 inode 编号

	创建硬链接:ln 旧文件名  新硬链接文件。

	特征:文件和硬链接文件之间,除文件名不一样以外,其他信息完全一致。并能实时同步。

文件所属用户: 谁创建默认属于谁

文件所属用户组: 谁创建默认属于该用户所在用户组。 	用户------同名用户组

文件所占存储空间大小(字节):文件:实际大小。 目录文件:4k整数倍

文件创建、最后一次修改时间:	初创文件:实际创建时间。修改过的文件,修改时间。

文件名。

ls 常用参数:

复制代码
-a :常隐藏文件。 ------ 以 "."开头的文件或目录

-d:查看目录本身属性。

--help:查看帮助信息。

TAB键:自动补齐。histroy:历史命令。man 帮助手册。

重定向:

> 重定向到指定文件,文件不存在自动创建。存在覆盖源文件。

复制代码
>> 将内容追加到指定文件,文件不存在自动创建。存在不覆盖

分屏读取大文件:

复制代码
more、 less、cat、tac

管道:

"|" 将 左边的命令执行结果,写给右边。再执行右边的命令。

复制代码
ps aux | grep xxx	------ 筛选系统中,所有正在运行的 xxx 进程。

cd: change directory ------ 进入某个目录。

复制代码
cd /bin  绝对路径 

cd .. 上一级目录

cd ./ 当前目录

	cd ~ 回用户宿主目录(家目录)

cd 回车	回用户宿主目录(家目录)

cd - : 切换到上一次工作过的目录中。

pwd: 查看当前进程工作目录位置

终端提示符的语法规则:

复制代码
 用户名@主机名:当前shell进程工作目录$/#	------ $:普通用户、#:管理员。

创建目录:

复制代码
mkdir 目录名  

-p: 递归一次性创建多个目录

删除文件和目录:

复制代码
rm -r 		r: 递归删除目录子内容。

★ rm 命令删除的文件、目录不易恢复 !!!!!!!!!!

ln命令:

硬链接: ln 源文件 连接文件

复制代码
	不能给目录创建硬连接。

软连接:	ln  -s  源文件   连接文件

	等同于windows下的快捷方式。建议使用"绝对路径创建软链接"

	可以给目录创建软连接。

目录文件、拷贝:

复制代码
-r:	递归拷贝目录内容。以执行命令时,创建新文件、目录

-a:	递归拷贝目录内容。保留文件原有属性。

mv命令:

移动文件: mv 待移动文件名 目录位置。

复制代码
改名文件: mv 待改名文件名  不存在的文件、目录名

压缩命令:

复制代码
gzip:
	不能打包压缩!不能保留源文件。不能压缩目录		
bzip2:
	不能打包压缩!不能压缩目录
tar:
	打包。


====结论:
	压缩: tar -zcvf  xxx.tar.gz  打包压缩材料。		 tar -jcvf  xxx.tar.bz2  打包压缩材料。	

		z: gzip格式压缩				j: bzip2 格式压缩

		c: 创建压缩文件

		v: 输出压缩详细

		f: 指定压缩后的文件名

		.tar.gz :	.tar.bz2: 不具有语法强制性。但是推荐使用!

	解压缩:tar -zxvf  xxx.tar.gz 			 tar -jxvf  xxx.tar.bz2 。

zip:
	压缩:zip -r  压缩包名(没有.zip后缀)	打包压缩材料。

	解压缩: unzip -d 解压缩位置目录   xxxzip(待解压缩文件) 	
rar:

	压缩:rar a -r 压缩包名.rar(后缀可加可不加) 打包压缩材料。

	解压缩: rar  x  待解压缩包名.rar

切换用户:

复制代码
su 用户名:	切换到指定用户登录,不修改工作目录位置。

su - 用户名:	切换到指定用户登录,修改工作目录位置到 该用户的 宿主目录。

su - root:切换root用户登录,修改工作目录位置到 root 的 宿主目录。

su  root:切换root用户登录,不改变工作目录位置  等价于( sudo  su )

sudo关键字:临时获得一次root用户权限。执行完后续命令,该权限失效。

添加新用户:

sudo adduser 新用户名

删除新用户:

sudo deluser 用户名

修改文件所有者:

chown 新用户名 待修改用户的文件名

添加新用户组:

sudo addgroup 新组名

删除新用户组:

sudo delgroup 组名

修改文件所属组:

chgrp 新组名 待修改组名的文件名

chmod:

修改文件、目录访问权限。

复制代码
r、w、x : 4/2/1  

示例: r-x-w-r--: 	5 2 4

chmod:

修改文件、目录访问权限。

复制代码
r、w、x : 4/2/1  

示例: r-x-w-r--: 	5 2 4

r、w、x 对于目录、文件的含义是否相同??

复制代码
	文件				目录

r: 查看文件内容 目录的内容(目录项)可以被查看

cat、more、less、tac ls、vim(读)

vim(读) gedit(读)

w: 修改、删除 文件内容 目录的内容(目录项)可以被修改、删除、增加

cat> / can >> mv、cp、rm、rmdir、mkdir、touch。。。

vim(写、删) /gedit(写、删除)

x: 该文件可以运行。 该目录可以被进入

cd

进程信息查看:

复制代码
ps aux | grep xxxx

top ------ Linux下的 任务管理器。

终止进程:

复制代码
kill  -9   欲终止的 进程ID (可以通过 ps aux | grep 获取)		9 ------ SIGKILL

前台、后台:

复制代码
是否能与用户完成交互。

& : 将进程放置到后台执行。

jobs: 查看后台运行的进程

fg:恢复后台一个进程到前台执行。  + 优先级高。 指定 某一个进程恢复到前台来。  用 jobs查看的 "进程编号"

多终端热键:

Ctrl + Alt + ↓ 或 ↑ ------ 虚拟一块新桌面

复制代码
Ctrl + Alt + T ------ 唤醒一个新终端(独立)

Ctrl + shift + T ------ 在一个终端里,创建多个shell标签。

ifconfig:

查看当前网卡相关信息: ------ IP地址。

复制代码
临时设置IP地址:

	sudo ifconfig ens33  新IP

	系统重启失效。

	sudo ifconfig ens33 up/down   使用命令 网卡启动、关闭

永久设置IP地址:

	图形: 设置------网络------有线连接 + ------ IPv4 ------ 手动 ------ 填入地址、子网掩码 、网关 ------ "添加"

		网址: 网段。IP里面倒数第二字段。

		子网掩码: 255. 255.255. 0

		网关:网段确定后,网关即为该网段的 第一个ip地址。192.168.xxx.1  ------ 192.168.xxx.255 (广播地址)

	命令:------ 通过修改配置文件,达到永久修改IP的目的。

		修改  /etc/network/interfaces 文件。 添加 网址、子网掩码、网关。  指定DNS服务器

ping :

发送一个测试数据包,到指定的 IP地址。测试是否 畅通。

复制代码
Ctrl + c 终止。 

-c  参数 指定发数据包的 次数。

虚拟机网络设置:

复制代码
桥接模式:
	路由器给 虚拟 Linux 单独分配一个 IP地址。与 windows 所在同一网段。

NAT模式:
	 Linux 虚拟机借助 windows 网卡,访问外网。linux 和 windows 公用 访问外网的iP。

find 命令:

复制代码
格式: find  待搜索目录     参数    "关键字"/ '关键字'

-name:
	find  /home/itcast/go_1 -name "*.soft" 	------ 在目录中找 .soft 结尾的文件。

-type:
	f(普通文件)、d、l、c、b、p、s

	find /run/  -type "s"	------ 在目录中找 socket 文件。

-size:
	区范围时: 两个范围 之前都有加  -size 关键字。

		+ : 大于、 - : 小于
	单位:
		M 只支持大写。
		k 只支持小写。
		无单位------默认单位是 512B。
-maxdepth:

	指定搜索层级深度。  放置于其他参数之前。

	find -maxdepth 1 -type 'f' -name "*.go" 	------ 只在当前目录下,搜索 .go 文件、目录。

-exec:
	对搜索结果执行命令

	find -maxdepth 1 -type 'f' -name "*.go"  -exec  ls -l {} \;

-xargs:
	对搜索结果执行命令

	find -maxdepth 1 -type 'f' -name "*.go" | xargs ls -l 

	特例:如果文件名中含有空格, 如:文件名:'abc xyz'

		find -maxdepth 1 -type 'f'  -print0  | xargs -0 ls -l 

grep:

grep -r/-R "love" 目标目录位置。

复制代码
递归的在指定目录中,找寻包含某字符串的 文件。

结合find、xargs、grep:

复制代码
find -maxdepth 1 -type 'f' -print0 | xargs -0 grep "love" -n

找寻当前目录下,包含 "love"的文件,并显示在 多少行出现 (-n 行号)。

vim(vi)编辑器: shell -- bash vi ------ vim

复制代码
三种工作模式:

	命令模式: 默认进入vim的工作模式。该种模式下,用户所有输入均被当成命令。

	编辑模式: 编写模式。写代码、文本内容。。。

	末行模式: 在 命令模式下, 按":"进入末行模式。该种模式下,用户所有输入均被当成  末行命令。

光标移动(命令模式);

	h:左
	j:下
	k:上
	L:右

转换编辑模式:

	i:向光标所在位置的 "前面"插入数据!

	a:向光标所在位置的 "后面"插入数据!

	o:向光标所在位置的 "下一行"插入数据!

	s:以删除光标位置一个字符为代价,修改工作模式 ------ 文本编辑模式。

	O:向光标所在位置的 "上一行"插入数据!

	I:向光标所在位置的 "行首"插入数据!

	A:向光标所在位置的 "行尾"插入数据!

	S:以删除光标位置一整行为代价,修改工作模式 ------ 文本编辑模式。

复制、粘贴:
	yy:复制光标所在行。

	Nyy:复制光标所在往后的N行(包含本行)。

	p:粘贴至光标所在位置,下一行。

	P(大写):粘贴至光标所在位置,上一行。

	yw:将光标放置于单词的首字符上, 复制一个单词。

	区域复制:将光标放置于待复制区域的首字符上, 按"v"(左下角出现 "可视"提示)使用 h,j,k,l 选择复制区域。

剪切、粘贴:

	dd:剪切光标所在行。

	Ndd:剪切光标所在往后的N行(包含本行)。

	p:粘贴至光标所在位置,下一行。

	P(大写):粘贴至光标所在位置,上一行。

	dw:将光标放置于单词的首字符上, 剪切一个单词。

	区域剪切:将光标放置于待剪切区域的首字符上, 按"v"(左下角出现 "可视"提示)使用 h,j,k,l 选择剪切区域。

	d0:从光标所在位置,删除到 行首。

	d$(D): 从光标所在位置,删除到 行尾。	

删除:
	同剪切。

字符操作:
	x:删除光标选中字符

	r:光标选中字符, 按"r", 按目标字符。 可以将 原字符,替换为 目标字符。

跳转到指定行:

        命令模式:

	gg:第一行

	G:最后一行

	gg=G  自动排版。

	NG:跳转到 第 N 行

	vim hello.go  + 56 ------ 打开文件同时,跳转到 56 行

        末行模式:

	:N 回车。 ------ 跳转到 第 N 行	

查找:
	1. 想象一个单词查找。 输入"/"(显示在末行的位置), 再输入要查找的单词。  

	2. 查找一个已经看到的单词。将光标放在该单词任意一个字符,"*"向后找, "#"向前找。 "n"代表下一个。

撤销:"u"

反撤销:ctrl - r

替换:------ 末行模式。

	1. 单行替换: 	:s/旧单词/新单词。 	

			一行有多个"旧单词", 使用 "g"。否则只替换一行的首个。

	2. 通篇替换:	:%s/旧单词/新单词。	

			一行有多个"旧单词", 使用 "g"。否则只替换一行的首个。

	3. 指定区域替换:	:n,ms/旧单词/新单词。

			替换从n行开始,到m行结束,出现的"旧单词", 一行有多个"旧单词", 使用 "g"。否则只替换一行的首个。

vim的配置:

	用户配置: 用户宿主目录下,创建 .vimrc (隐藏文件),写入 配置项。

	系统配置:sudo vi  /etc/vim/vimrc (非隐藏文件)。写入 配置项。

测试某软件是否安装:

	sudo aptitude show 软件名	------   "未安装":根据提示安装。

				------ "已安装"。
Linux 远程 登录 Linux:

	ssh -l  目标主机用户名  目标主机 iP地址。  ( 或  ssh itcast@127.0.0.1 )

	------  输入目标主机 密码。

	登录到,目标主机的 "家目录"

Linux 远程 发送文件给 Linux:

	scp -r  目标用户名@目标主机名:目标存储的绝对路径   (例子: scp -r  ./test123.mp3  zhangsan@192.168.35.221:/home/zhangsan/test )

	------ 输入目标主机 密码。

	文件 直接存在在目标主机的指定目录下。		( test123.mp3  存储在 zhangsan用户的/home/zhangsan/test目录下。)
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
BingoGo1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户3074596982072 天前
PHP 扩展——从入门到理解
php
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
鹏仔先生3 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php