首页 > 系统相关 >LINUX基本知识(1)

LINUX基本知识(1)

时间:2024-06-06 20:12:04浏览次数:16  
标签:文件 基本知识 用户 cd 文件夹 LINUX 目录 dir

linux基本知识

网络设置:

桥接模式: 位于同一个网段的其他机器可以访问
NET模式: 虚拟化一个路由器,连接虚拟路由器 , 位于同一个网段的机器不可以访问
设置静态IP:可以远程连接时IP地址不会改变
远程连接: 虚拟机需要安装服务端程序: sshd

Linux架构:

内核(kernel):

1:管理硬件资源(文件管理 , 内存管理 , 进程调度 , 网络通信 , 硬件驱动)
	cpu
	内存
	外部设备
2:为上层应用软件提供运行环境
	

系统调用(system calls):

内核对上层应用程序提供的接口(sc)
    上层应用程序(applications)直接访问 + sc 
    上层应用程序调用shell访问 + sc
    上层引用程序通过库函数访问 + sc
POSIX标准:规范形式,更好的可移植

库函数(library routines):

ex: scanf() , printf()等
对系统调用进行的包装
    目的:方便程序员使用

命令解析器(shell):

本质上是一个程序
    解析命令->执行命令/脚本(script: 命令的集合)

linux发行版本

linux内核 + 其他支撑软件

Debian系列: (dpkg -> apt)
	收费:debian
    免费:ubuntu
Redhat系列: (yum -> yum)
	收费:redhat
    免费:centos
OpenSuse系列(德国)
区别: 包管理器

命令

可执行程序

shell内置命令 ex: cd

别名

man(帮助手册):
	d(down)->向下移动半页
    u(up)->向上移动半页
    f(forword)->向下移动一整页
    p(previous)->向上移动一整页
    q(quit)->退出
    man xxx
        显示xxx的帮助手册
若man出现问题: https://blog.csdn.net/muxuen/article/details/130200564 (复制网站浏览器打开,有大佬解决,亲测可用)
1:shell command
2:system calls
3:library functions
uname(查看内核信息):
	-a
        Linux node1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

用户子系统:
	特权用户(超级用户 , 根用户): root : 拥有最高权限
    普通用户:
        sudoers:临时拥有特权用户的权限
        其他用户:不能申请特权
查看所有用户:
	cat /etc/passwd

子用户介绍:

test1 用户名
x 密码(已废弃)
1000 用户ID
1000 组ID (组与组之间可以更好的共享资源)
test1 comments评论信息
/home/test1 家目录
/bin.bash 默认shell    

添加用户(1)

useradd:
	sudo useradd test(添加一个名为 test 的用户)
        1:默认shell 是 sh 不如bash
        2:不会自动创建家目录 

添加用户(2 推荐)

useradd:
	sudo useradd -m -s /bin/bash test
        -m 创建家目录 -s设置shell程序(bash)

删除用户(1)

userdelete:
	sudo userdel test(删除用户名为test的用户)

删除用户(2 推荐)

userdelete:
	sudo userdel -r test
		-r全部删除痕迹 , 家目录 , 邮箱

切换用户(栈)

su(switch users)
	su root
        切换root用户
退出切换:
	exit
        切换到上级用户

更改密码

root权限:
	sudo passwd test(更改test密码  )

文件子系统:

虚拟文件系统(VFS)
    提示:windows是一个“森林” ,其余为“树”
home
     test , test1...
bin
dev
etc
...   
lib    

绝对路径:从根目录开始一直到文件位置
相对路径:相对当前工作目录到文件位置
    当前工作目录:每一个进程(ex: shell)都有一个属性叫做当前工作目录

查看当前工作目录

pwd
    显示shell进程的当前工作目录

改变当前工作目录

cd /
    cd到根目录
cd ~
    cd到用户的家目录
cd .
    cd到当前目录,不改变
cd ..
    cd到上层目录
cd -
    cd到回到上一次目录(读取oldpwd,oldpwd保存着上一次的目录)
    

文件夹解析

bin(binary): 一些二进制文件,可执行程序
dev(device): 设备文件
home: 普通用户家目录的根目录
root: root(超级用户)用户的家目录
sbin(system binary): 和系统相关的可执行程序
var(variable): 经常发生变的文件 ex: 日志文件(log)
etc: 最开始放一些杂项,后来放配置文件
lib: 库文件
proc(process): 进程映射文件
usr: 普通用户有权限访问的一些文件

创建文件夹

mkdir
    mkdir dir
    	创建一个名为dir的文件夹
    -v
    	打印一些详细的信息

删除文件夹

rmdir(只能删除空文件夹)
    rmdir dir
    	删除一个名为dir的文件夹
    -v
    	打印一些详细的信息

罗列文件夹中的详细信息

ls
	ls
    	罗列当前目录的详细信息
    -a
    	显示所有的文件,文件夹,包括所隐藏的文件,文件夹
    	(以 . 开头的文件默认为隐藏的文件)
    -l
    	罗列详细信息
    第一列:
    	(首字母: d 文件夹 | 首字母: - 文件 | 首字母: l 符号链接, 软连接 | 首字母: c 字符设备(键盘) | 首字母: b 块设备(硬盘) | 首字母: p 管道文件(进程之间进行通信的文件)  | 首字母: s 套接字文件(进行网络通信) )
    剩下的字母: 权限
        r:read 读
        w:write 写
        x:execute 执行
        -:无权限
    一般分为三组
         第一组: 用户自己的权限
         第二组: 用户隶属组的其他成员的权限
         第三组: 其他用户拥有的权限
     第二列:
		数字:硬链接的个数
     第三列:
		用户名称
     第四列:
		用户所属组名
     第五列:
		文件大小
     第六列:
	 第七列:
	 第八列:上一次修改改的时间
     第九列:文件名
	-i:
		打印文件所属的总体信息(inode )
    -h:
		以方便读写的形式显示
    

通配符(wildcard)==>命令行强大的原因

*
    可以匹配任意多个字符(包括0个)
?
    可以匹配任意一个字符
[characts]
    匹配集合内的任意一个字符
    ex: [abc] 匹配[a] , [b] , [c]
[!characts]
     匹配集合外的任意一个字符
    ex: [abc] 匹配[!a] , [!b] , [!c]
类:
	ex: [0-9] 0 - 9所有的数字
        [a-z] 小写字母
        [A-Z a-z] 匹配一个字母
        ...

复制文件或文件夹

cp
    cp file dir
    	复制文件到一个文件夹,若目录(dir)存在,就放在目录内
    cp file1 file2
    	把文件复制到另外一个文件中,如果文件不存在,就会创建一个文件,如果文件存在或覆盖文件
    	-i
    		如果存在会给提示信息询问是否覆盖
    cp *.txt dir
    	将所有的.txt文件复制到dir中
    cp dir1 dir2 -r
    	如果dir2不存在,创建文件夹,并把dir1复制到dir2中
    	如果dir2存在,将dir1文件夹复制到dir2文件夹
    -u
    	把很多文件复制到一个文件夹中,不会全部覆盖原文件夹中的文件,也不会复制原有的文件(除非文件被更新过)

移动,重命名文件或者文件夹

mv
    mv file1 file2
    	把file1移动到file2
    	如果文件不存在则创建文件
    	如果文件存在则覆盖文件(重命名)
    mv file1 dir
    	如果dir存在把file文件移动到dir目录下
        如果不存在创建一个文件dir
    mv dir1 dir2
    	如果dir2存在,那么就把dir1整个移动到dir2
    	如果dir2不存在,起到一个重命名的效果,如果不在一个目录中(剪切)
    -u
    	只会移动更新过的和没有的文件或文件夹
   <<不用像cp一样添加 -r , mv只移动指针>>
    mv a.txt b.txt
    	重命名a.txt为b.txt
    mv a.txt dir/a.txt
    	让a.txt覆盖dir目录下的a.txt
    
    

小心牢饭(超级删除) ! rm

rm
    -i(推荐加入): 提示
    -r(牢饭的勺子): 递归删除
    -v: 删除的详细经过
    -f(牢饭的筷子): 无提示
<1:平时工作时最好不要使用root   
<2:删除之前确认删除的文件是自己想要删除的(如果要使用通配符,先ls查看删除的选项)
<3:添加-i参数

标签:文件,基本知识,用户,cd,文件夹,LINUX,目录,dir
From: https://www.cnblogs.com/123456-BX/p/18235929

相关文章

  • 基于Linux操作系统的生产消费者队列封装(C++)
    一.先前代码及实现(在该篇中会用到)1.基于Linux操作系统的锁的封装-CSDN博客2.基于linux操作系统的线程封装(可实现任意传递任意类型任意个数的参数)-CSDN博客二.生产消费者模型    在一个多线程的进程中,通常存在如下关系生产者和消费者,其中生产者负责生产资源(产生任务......
  • 基于Linux下的多人聊天室
    基于Linux下的多人聊天室1.涉及知识点2.整体架构流程3.核心功能展示4.详细代码5.复盘总结1.涉及知识点Linux、C语言、TCP通信、epoll、SQL2.整体架构流程服务器:1.搭建TCP连接客户端2.链接数据库3.使用epoll4.处理各种客户端消息的接收与发送客户端:1.搭建TC......
  • 嵌入式Linux系统编程 — 2.1 标准I/O库简介
    目录1标准I/O库简介1.1 标准I/O库简介1.2 标准I/O和文件I/O的区别2 FILE指针3标准I/O库的主要函数简介4 标准输入、标准输出和标准错误4.1标准输入、标准输出和标准错误概念4.2示例程序5 打开文件fopen()5.1 fopen()函数简介5.2 新建文件的权限5.3......
  • linux命令
    **ls[-a-l-h][路径]**(可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容)-a选项,可以展示出隐藏的内容,以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来-l选项,以列表的形式展示内容,并展示更多细节-h选项,需要和-l选项搭配使用,以更加人性化的......
  • 查看Linux端口占用和开启端口命令
    查看端口的使用的情况lsof命令比如查看80端口的使用的情况lsof-itcp:80列出所有的端口netstat-ntlp查看端口的状态/etc/init.d/iptablesstatus开启端口以开启端口80为例。1用命令开启端口iptables-IINPUT-ptcp--dport80-jaccpet --写入要开放的端......
  • Centos Stream 10 测试版下载:未来的RHEL10&Rocky Linux 10
    简介最近发现Centos最放出了Stream10测试版本,应该是基于Fedora40构建的。未来红帽会基于此版本构建RHEL10。内核版本:6.9.0Python版本:3.12.2RHEL系发行版对应关系Fedora(根发行版-软件实时更新-只支持一年)>>某一版本作为基准版本⏬CentosStream(长期稳定发行版-软......
  • Linux常用命令
    一、目录操作1、cd命令cda//进入a目录cdabc+tab键//如果有多个abc开头的目录,会显示相应的文件cd..//返回上一级目录cd../..//返回上上一级目录,以此类推cd/use/local//进入根目录下面的use/local目录cd—//返回上一次访问目录cd~//回到用户目录2、ls&l......
  • 00-macOS和Linux安装和管理多个Python版本
    在Mac上安装多个Python版本可通过几种不同方法实现。1Homebrew1.1安装Homebrew若安装过,跳过该步。/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"1.2安装Python如安装Python3.7:[email protected]......
  • 每天学一个 Linux 命令(5):grep
    命令简介文本查找或搜索工具。用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep会从标准输入设备读取数据。同样可以配合正则表达式来搜索文本,并将......
  • 写一个linux驱动
    简单一点,写一个字符设备驱动。首先我们希望在/dev下面出现一个新的字符设备文件。1.分配一个设备号;intalloc_chrdev_region(dev_t*dev,unsignedintfirstminor,unsignedintcount,char*name);示例:首先定义一个dev_t的变量,它其实就是一个32位的整数。再使用上述函......