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