Linux基础知识1:命令无法执行/程序直接执行/查看隐藏文件

Terminal

​ 可以认为terminal和tty是同义词

​ 作用是提供一个命令的输入输出环境

SHELL:

​ 就是人机交互的接口(interface),提供使用者使用界面,包裹在操作系统外面

​ 本质是命令解释器(可以自己写),比如zsh和bash都是shell

windows的cmd实际就是一种shell

​ 用户在shell中提交命令,然后shell接受命令并对其进行解释:

​ 比如:king@study ~%howareu:shell先对它进行解析,然后返回结果

​ 执行命令的流程:

​ shell接受命令---->判断是否内置------>是则直接执行(系统调用);否则在系统中调入内存进行执行

以which为例子
which ls:将会输出???
which cd:将会输出shell built-in command,即指linux内部命令
which pwd:也是内置

PATH:环境变量,所有可执行程序的路径,echo $PATH可以查看,得到的结果

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

​ 因为ls在bin下面,当在PATH中删掉bin路径之后:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/s
bin:/usr/games:/usr/local/games

​ 再输入ls,就会得到

zsh: command not found: ls

​ 此时根目录里面所有都无法执行了

​ 系统跑起来都是把软件放在内存中,bash或者zsh实际上是进程。比如path实际上就是进程。进程结束,那么进程中的东西就丢失了(因为是存在内存中的,不写到磁盘里面的话就会因为结束进程而丢失)

***问题来了,如何结束进程呢?快捷键是什么?***

​ 如果想把变化写到磁盘里,应该在.zshrc资源文件中修改(数据固化)

命令无法使用的恢复:

重装
或者在原途径加上/bin
不写到磁盘就关掉即可

可执行程序不在PATH中则无法直接执行

​ 假设设计了一个程序,需要直接打开程序,不添加到PATH中就无法直接执行。

touch qq.c
vim qq.c
cat qq.c :                                          
	#include<stdio.h>
	int main(){
 	   printf("this is qq!\n");
   	 return 0;
	}
gcc qq.c -o qq
ls :
	.... qq qq.c ....
qq  :
	zsh: command not found: qq

​ 但实际如果你位于同一个目录下是可以执行的,参见平时的./a.out.需要告诉系统你要执行的文件的路径。如果需要任意位置都可以执行则需要

1.加在环境变量PATH中。
	pwd(查看当前目录)
	PATH=(path中添加路径)
2.或者把文件拷到path里的某个目录下,如在/usr/bin/下复制文件
	sudo cp qq /usr/bin/
	

之后就可以直接使用qq命令,无论你在哪。

如果上面两个方法都使用了,那么此时哪个是有效的呢?which qq查看当前起作用的是在哪(优先级是根据PATH中的顺序决定)。whereis qq则可以得到你一共有几个qq

linux中目录分隔符的数量///和和/效果都是一样的
命令sudo获得管理员权限,sudo -i切换为管理员(不要密码)su -king切换用户
sudo -i可以从当前用户切回管理员,只需要当前用户的密码(***那岂不是不安全?***),su - root需要管理员密码

root退到个人用户:logout或者exit(***存疑,为什么我每次就是直接断开联系***)

relationship

​ 当你打开terminal的时候,系统会自动将shell和terminal进行关联。因此在terminal中输入命令,shell能获得命令继而进行解析。(echo $SHELL可以对所关联的shell进行查看)

命令

​ 人机交互的基本单位,包含命令名、分隔符、选项、操作对象

​ 命令的语法:

cp(谓动) a(宾) b(宾)
cp(谓动) -ar(方式状语) a(宾) b(宾)

害,反正就是按照一般语法和正常逻辑需要能够理解命令

cp 1.cpp 2.cpp 3(那么3应该要是个目录,不然没办法实现cp)
cp 1.cpp 2.cpp .(.是当前目录,可以)
cp -r(递归,就是如果dir1是个目录,那就把dir1里面的所有拷贝到dir2) dir1 dir2(将直接新建一个目录)
-和--的区别

​ -a即简写,–all写全称。cp - a bcp -- a b没有区别。

二级命令

​ 比如apt install

分隔符

​ 如

管道 |:将前面的标准输出作为标准输入
重定向 <,>,<<,>>:一个定向是覆盖,两个是追加(不明白)

​ 注意su usrnamesu - usrname(更推荐)的区别,前者不会改变当前的环境变量,后者相当于重新登陆,因此环境变量不会进行保存。

选项
ls [ald] ([]表示可以选择的选项)
程序和进程

程序:磁盘上的文件,写好的可执行程序之类的

进程:程序在内存中的镜像,磁盘文件调到内存中实例化

路径

绝对路径

​ 可以用坐标来理解以根目录/开始

相对路径

​ 相对与现在的位置

远程路径

​ 访问网络上的某个位置,不能用cd,只能用相关协议进行操作,比如

协议://用户名:密码@位置/路径:端口
http://baidu.com
ftp://user:passwd@ftp.moumou.com(下载)(不明白)

软件安装

linux安装软件是把各个文件单独拷贝到同级别的bin、lib、share、/etc目录下

bin:放置程序的可执行文件。在环境变量PATH中直接加入即可直接执行程序
lib:存放库文件
share:存放其他资源,比如man
/etc:存放配置文件(根目录,全局配置信息)
	比如hosts配置静态的ip和主机的映射,hostname是主机名字
配置

​ 配置网络:/etc/network/interface修改网络配置,重启网络即可实现配置(注意云主机配置的话小心出问题);也可以直接用

ifconfig eth0 12.34.56.78(此时只在内存,无法实现固化)

​ GUI界面可以用图形化方式进行配置。

隐藏文件

​ 以.开头的文件会被自动隐藏(mac也是这样)。显示这样的文件命令是

ls -a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值