linux基础学习

操作系统

  1. 功能:管理硬件、提供系统调用
  2. 桌面OS:Windows、Mac(基于Linux)、Linux
  3. 服务器OS:Linux(安全,免费,稳定,占有高)、Windows server
  4. 嵌入式OS:Linux(智能家居)
  5. 移动设备OS:IOS、Android(基于Linux)

虚拟机

  1. 功能:软件模拟

OS发展历史

  1. Unix:C语言开发,私有,多用户
  2. Linux:开源,多用户:
  • 内核版(Kernel):核心,管理硬件,系统调用,终端命令
  • 发行版:内核+桌面等应用程序
  • Ubuntu
  • Redhat
  • CentOS
  • 文件目录:只有一个/根目录,每个用户在/home下面有自己的文件目录
  • /:根目录
  • /home:所有用户的家目录
  • /etc:存放系统配置文件
  • /bin:存放可执行的二进制文件,ls、mv、cat
  • /sbin:保存超级用户的管理程序
  • /boot:存放系统启动使用的文件
  • /dev:存放设备文件
  • /lib:存放函数库的目录
  • /lost,/fount:存放系统异常时将遗失片段
  • /mnt,/media:光盘挂载点
  • /opt:额外安装软件目录
  • /proc:存放常用文件,常驻内存
  • /root:系统管理员root的家

Linux终端命令

  1. 历史:刚开始无图形界面,现在才有;然而,现在对服务器的维护安装SSH客户端,也是终端命令。
  2. 常见终端命令:
  • ls:查看当面路径内容
  • pwd:查看当前目录
  • cd【目录】:切换目录
  • touch【文件名】:如果文件不存在,新建文件
  • mkdir【目录】:创建目录
  • rm【文件名】:删除不能恢复
  • clear:清屏
  • 放大缩小终端:
  • ctrl shift = -
  • ctrl + -

终端命令的格式:

  • command 【-options】 【parameter】
  • 查询某种命令的使用帮助:
  • command --help
  • man command
  • 空格:显示下一屏
  • Enter:显示下一行
  • b:回滚一屏
  • f:前滚一屏
  • q:离开
  • 文件目录常用命令:
  • 查看目录内容:ls
  • .开头的文件是隐藏文件
  • ls -a:查看包括隐藏文件的全部文件
  • .表示当面目录
  • ..表示上级目录
  • ls -l:列表显示详细信息
  • ls -lh:把文件大小人性化显示

  • 通配符:
  1. .表示任意个数字符
  2. ?表示一个字符
  3. []匹配的字符组:[a-d]=[abcd]

路径相关

  • 切换路径:cd
  • 显示当前目录:pwd
  • cd=cd ~:一键回家
  • cd .:保持在当前目录不变
  • cd ..:切换到上级目录
  • cd -:在最近两次目录间切换
  • 绝对路径:从/开始
  • 相对路径:从当前目录开始

创建和删除:

  • touch:摸一下,不存在就创建,存在就更新末次修改时间
  • mkdir:注意同意路径下,目录和文件不能同名
  • rm:删除后不能恢复
  1. rm 【文件名】
  2. rm -r【目录名】:递归删除
  3. rm -f【】:强制删除

拷贝和移动文件:

  • tree:列出文件树
  1. tree -d:只显示目录
  • cp 【源文件路径名/源文件名】 【目标文件路径名/目标文件名or目标路径】
  1. cp -i 【】【】:覆盖前提示
  2. cp -r 【源目录】 【】
  • mv【源文件】【目标文件】
  1. 如果在同一目录,会导致覆盖
  2. mv -i 【】 【】:提醒可能导致覆盖

查看文件:

  • cat 【文件名】:一次显示全部
  1. Cat -b:不标识空行
  2. Cat -n:标识空行
  • more 【文件名】:
  1. 空格:显示下一屏
  2. Enter:显示下一行
  3. b:回滚一屏
  4. f:前滚一屏
  5. q:离开
  • grep 【字符】【文件名】:查找文件中的字符内容
  1. grep -n 【】 【】:显示行号
  2. grep -v 【】 【】:显示不包含字符的行
  3. grep -vn 【】 【】:显示不包含字符的行号
  4. grep -i 【】 【】:忽略大小写
  5. grep -in 【】 【】:忽略大小写并显示行号
  6. 模式查找:
  1. ^a:搜以a开头的行
  2. ke$:搜以ke结尾的行

其他:

  • echo 【】:终端显示【】
  • 重定向:将本应该显示在终端的内容,重定向到文件中
  1. >:输出,覆盖源文件
  2. >>:追加末尾
  • 管道:【命令1】|【命令2】
  1. 将一个命令的输出作为另外一个命令的输入
  • 自动补全:
  • 敲文件/目录/命令名时,先敲前几个字母,然后tab,系统自动补全,或者显示匹配的文件/目录/命令名
  • 曾经使用过的命令:
  • 向上/向下:
  • ctrl c:直接返回

远程管理常用命令

  1. 关机,重启:Shutdown 【选项】 【时间】
  • -r:重新启动服务器
  • 不指定选项和时间,1分钟后关闭电脑(一般不会把服务器关掉的)
  • +10:10分钟后关机
  1. 网卡:负责网络通讯的硬件设备
  2. 查看,配置网卡:ifconfig
  3. 检测IP是否正常:Ping 【IP地址】
  • 127.0.0.1:本地环回地址,测自己的网卡是否正常
  1. ssh:通过ssh客户端来连接运行了ssh的服务器,并且数据传输是加密且压缩的,端口号是22
  • ssh 【-p port】 【user】@【remote】
  • 注意ssh只能在linux或者unix用,windows需要安装Putty或者XSheel
  • exit:关闭连接
  • 有关SSH的配置信息存储在.ssh目录下,这是个隐藏目录,一旦确定连接某个主机 ,系统会建一个knowhost隐藏文件保留相关信息
  1. scp:远程安全拷贝文件,把本地开发的程序文件拷贝至服务器上,或者把服务器上的文件考下来
  • scp -P 【port一般是22】 【-r】 【本地文件】 【user】@【remote】:【远程路径】
  • 把本地文件复制到远程路径
  • scp -P 【port一般是22】 【-r】 【user】@【remote】:【远程路径】 【.】
  • 把远程路径文件下载到当前目录
  • -r:复制文件夹
  1. windows和linux服务器怎么传文件?不能用scp
  • FileZilla:使用FTP服务,端口使用21
  • 21是控制端口,20是数据端口
  1. SSH:免密码登陆,因为数据已经加密了
  • 第一步:配置密钥:ssh-keygen
  • 第二步:上传密钥到服务器:ssh-copy-id -p port 【user】@【remote】
  • id_rsa.pub文件是公钥,id_rsa文件是私钥
  • 非对称算法:使用公钥加密的数据,用私钥解密;反之同理
  • 本地使用私钥,服务器使用公钥
  1. SSH:配置别名
  • 每次输入ssh -p 22 user@ip太麻烦了,可以直接ssh 【别名】
  • 方法:在.ssh/下新建一个config文件,内容:
  • Host 【别名】
  • HostName 【ip】
  • User 【用户名】
  • Port 【22】

用户权限

  • Linux可以指定每个用户对不同的文件或者目录的权限

序号

权限

英文

缩写

数字代号

1

read

r

4

2

write

w

2

3

执行

excute

x

1

  • 组:可以对组设置权限
  • 超级用户root:用于系统维护,对所有资源均可以管理,不推荐直接用root,如果普通用户要维护系统,可以:
  • sudo加在命令前,有效期5分钟,超时后再输入密码

ls -l扩展:(组名与用户名常一样)

序号

1

2

3

4

5

6

7

8

9

10

11

12

13

1

-代表文件

拥有者权限

rw-

组权限

rw-

其他用户权限

r--

硬链接数

用户名

组名

2

d代表文件夹

拥有者权限

rwx

组权限

rwx

其他用户权限

r-x

  • 硬链接数目:实际上是指有多少种方式访问该文件

  • chmod修改用户/组对于文件/目录的权限
  • chmod  【+ or -】 【rwx】 【文件名 or 目录名】

组管理:(创建删除组的命令需要使用sudo)

  • 添加组:groupadd 【组名】
  • 删除组:groupdel 【组名】
  • 确认组信息:cat  /etc/group
  • 该路径存放了组配置信息
  • 修改文件/目录的所属组:chgrp -R 【组名】 【文件 or 目录名】
  • 组信息保存在/etc/group文件中
  • 一个用户可以属于不同的组

用户管理:(创建删除用户的命令需要使用sudo)

  • 创建用户:
  • useradd -m -g 【指定用户所在组名】 【用户名】
  • -m自动建立用户家目录
  • 设置/修改用户密码:passwd 【用户名】
  • 若不设置密码,ssh不了
  • 删除用户:
  • userdel -r 【用户名】
  • -r自动删除用户家目录
  • 用户信息保存再etc/passwd文件中
  • 注意usr/bin/passwd是用于修改用户密码的程序

查看用户信息

  • id 【用户名】:查看用户的uid、gid,若不输入用户名,输出当前用户信息
  • who:查看当前所有登陆用户列表
  • whoami:查看当前登陆用户名

usermod

  • usermod -g 【组】 【用户名】:修改用户的主组
  • usermod -G 【组】 【用户名】:修改用户的附加组
  • usermod -s /bin/bash:修改用户登陆shell
  • Shell:可以输入命令的窗口
  • dash:ubuntu默认的,但是不好看
  • bash:好看

which 【命令】 :查看执行命令所在的位置

切换用户:

  • su:直接切换到root,不安全
  • su【-】【用户名】:切换到【用户名】
  • 如果用-,则切换到【用户名】的家目录
  • exit:退出当前登陆用户

修改文件权限:

  • chown:修改拥有者:

chown 【新的用户名】 【文件名】or【目录名】

  • chgrp:修改组

chgrp -R 【组名】 【文件名】or【目录名】

  • chmod:修改权限

chmod -R 755 【文件名】or【目录名】

系统信息相关命令

  • 时间和日期:
  • date:查系统时间
  • cal:查日历,-y查看一年日历
  • 磁盘信息:
  • df -h:显示磁盘剩余空间(disk free)
  • du -h 【目录名】:显示目录下的文件大小(disk usage)
  • 进程信息:
  • ps aux:查看进程的详细情况(process station),一般用au
  • top:动态显示进程,并排序,退出输入q
  • kill 【-9】 【进程号】:杀死指定进程,-9表示强行终止

查找文件:find 【路径】-name “【条件】”,不指定路径就从当前开始

软链接:类似于windows的快捷方式,ln -s 【被链接的源文件绝对路径】【链接名】,若不用-s就是硬链接

打包压缩:

  • 打包压缩方式:windows用rar,mac用zip,linux用tar.gz
  • tar是linux的文件打包工具:
  • 打包:tar -cvf 【打包文件】.tar 【被打包的文件】
  • 解开:tar -xvf 【打包文件】.tar
  • gzip可以压缩tar包,生成文件格式为:xxx.tar.gz
  • 压缩:tar -zcvf 【打包压缩文件】.tar.gz 【被打包压缩的文件】
  • 解开:tar -zxvf 【打包文件】.tar.gz  -C 【目标路径】
  • bzip2可以压缩tar包,生成文件格式为:xxx.tar.bz2
  • 压缩:tar -jcvf 【打包压缩文件】.tar.bz2 【被打包压缩的文件】
  • 解开:tar -jxvf 【打包文件】.tar.bz2  -C 【目标路径】

apt安装卸载更新软件包:

  • 安装软件:sudo apt install 【软件包】
  • 卸载软件:sudo apt remove 【软件名】
  • 更新软件:sudo apt upgrade
  • 配置软件源(配置镜像服务器地址),国内网络访问Ubuntu服务器太慢了,不如使用国内的镜像服务器
  • 系统设置-》软件和更新-》下载至-》选择最佳下载服务器
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值