Linux

Linux


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/68488119


以下全已Ubuntu_16为例.
SSH已OpenSSH7.5pl为例.

版本

  • Linux内核版本
    • 是运行硬件设备的核心程序, 连接裸设备和应用程序间的抽象层.
    • 源码网址:http://www.kernel.org
  • Linux发行版本
    • 用户使用的(如:Ubuntu / CentOS / Kali)系统, 安装了各种应用软件.

应用领域

  • 个人桌面领域
  • 服务器领域
  • 嵌入式领域: 机顶盒 / 机器人 / 无人机

文件目录(区分大小写)

  • /: 根目录
  • bin: 命令
  • boot: 系统启动时用的文件(如:Linux内核 / 系统引导)
  • cdrom: 光驱挂载点
  • dev: 设备文件
  • etc: 系统配置文件
  • home: 用户目录
  • lib: 系统函数库
  • media: 多媒体设备挂载点
  • mnt: 挂载点
  • opt: 安装的软件目录
  • proc: 内存中运行的数据(虚拟目录)
  • root: 系统超级管理员目录,
  • run: PID
  • sbin: 系统超级管理员使用的可执行命令(普通用户无权使用)
  • snap:
  • srv: 网络服务的数据目录
  • sys: 内核相关信息(虚拟目录)
  • tmp: 临时文件
  • usr: 应用程序安装目录
    • bin: 应用程序
    • share: 应用数据
      • doc: 系统说明文件
      • man: 应用说明文件
    • lib: 函数库
    • local: 软件升级包(自动下载安装)
  • var: 系统运行所产生的文件
    • cache: 应用缓存
    • log: 日志
    • message: 登录信息
    • mail: 邮件
    • spool: 队列任务(如:打印)
    • run: /run的软链接(重启清空)

文件权限

  • 权限格式: ①d ②rwx ③rw- ④r-x
  • 格式说明:
    • ①文件类型:
      • d: 文件夹
      • -: 普通文件
      • c: 硬件字符设备
      • b: 硬件块设备
      • s: 管道文件
      • i: 软链接文件
    • ②文件所有者(自己)权限:
      • r: 可读
      • w: 可写
      • x: 可执行
      • -: 不可用(不可读 / 不可写 / 不可执行)
    • ③(同组)用户者权限:
      • (同上)
    • ④其他用户权限:
      • (同上)
  • 修改文件权限:(chmod u+r file.txt)(chmod u=r,g=r,o=r file.txt)(chmod 0777 file.txt)
    • 用户组:
      • u: 文件所有者(自己)
      • g: 同组用户
      • o: 其他用户
      • a: 所有用户
    • 加减权限:
      • +: 加权限
      • -: 减权限
      • =: 设置权限
    • 读写权限
      • r / w / x / - (见上面)
      • 权限数值: x = 1; w = 2; r = 4
        • 数值计算: rwx = 4 + 2 + 1 = 7

(常用)命令

  • cd: 切换目录(cd /)(cd home)(cd /home)(cd ..)(cd ../..)(cd -)[记忆路径](cd ~)[用户路径]
  • ls: 列出文件夹和文件(ls)(ls /home)(ls -a)(ls -l)(ls -lh)[权限 文件数 所有者 用户组 大小 创建时间 文件名]
  • pwd: 查看当前目录
  • tree: 目录树结构
  • df: 查看磁盘空间(df)(df -h)
  • du: 查看磁盘占用(du)(du -h)

  • touch: 创建文件(touch file.txt)(touch dir/file.txt)

  • mkdir: 创建文件夹(mkdir dir)(mkdir dir1/dir2/dir3 -p)
  • rmdir: 删除非空文件夹(rmdir dir)
  • rm: 删除文件和文件夹(rm file.txt)(rm dir -r)(rm * -rf)[强制删除所有文件]
  • mv:
    • 修改文件名(mv file1.txt file2.txt)(mv dir1 dir2)
    • 剪切(mv dirRes dirDes)(mv dirRes fileDes)
  • cp: 复制(cp res.txt des.txt)(cp res.txt des.txt -v)[进度](cp dirRes dirDes -r)
  • cat: 查看文本内容(cat file.txt)
  • vi: vi文本编辑器(vi file.txt)
    • 功能键:(参考vim)
  • vim: vim文本编辑器(vim file.txt)

    • 功能键:
      • esc: 进入/退出 命令行模式
        • i: 进入插入模式
          • i: 插入光标前
          • I: 插入行首
          • a: 插入光标后
          • A: 插入行末
          • o: 向下添加一行
          • O: 向上添加一行
        • :: 进入末行模式
        • h(←) / j(↓) / k(↑) / l(→)
        • ctrl + b(↑一页) / f(↓一页) / d(↓半屏) / u(↑半屏)
        • M: 光标移到中间行
        • G: 移到指定行(3G)(G)行尾[行首]
        • {: 光标上移一段
        • }: 光标下移一段
        • x: 删除光标后一个字符
        • X: 删除光标前一个字符
        • dd: 剪切(dd)(3dd)[指定行]
        • d0: 剪切本行光标前(不含)字符
        • dw: 剪切本行光标后(含)字符
        • yy: 复制行(yy)(2yy)
        • p: 粘贴
        • u: 撤销
        • Ctrl + r: 多次撤销
        • v: 选择字符[可匹配d / y / >> / <<]
        • V: 选择行
        • >>: 文本行→移[同tab]
        • <<: 文本行←移
        • /: 查找(/111)[n↓; N↑]
      • i: 插入模式(编辑文本)(删除文字用命令行模式)
        • esc: 进入命令行模式
      • :: 末行模式
        • w: 保存文件(w file.txt)
        • wq: 保存并退出
        • q!: 不保存并退出
        • x: 保存并退出
        • set nu: 显示行号
        • s/des/res/g: 替换当前行内容[将des替换为res]
        • %s/des/res/g: 替换所有内容
        • 1,10s/des/res/g: 替换指定行内容
        • sp: 上下分屏(sp file.txt)
        • vsp: 左右分屏(vsp file.txt)
        • Ctrl + w + w: 分屏切换
        • Ctrl + w + c: 关闭窗口
        • Ctrl + w k / j / l / h: 选择分屏
        • Ctrl + w K / J / L / H: 移动分屏
        • Ctrl + w + / - / =: 增加高度
        • Ctrl + w > / < / 2 <: 增加宽度
  • gedit: 记事本(gedit)(gedit file.txt)

  • grep: 搜索文件内容(grep 'word' file.txt)[word支持正则](grep -n 'word' file.txt)[n:显示行号; v:不含word; i:忽略大小写]
    • 正则: ^word(开头) / tail$(结尾) / [anyone] (任意字符) / .(一个非换行字符)
  • find: 搜索文件(find . -name file.txt)(find /home -size 3M)(find /home -size +3k -size -6M)[+>; -<](find /home -perm 0771)[权限]
  • tar: 将散文件打成tar包(tar -cvf file.tar *.txt)[打包](tar -xvf file.tar)[解包]
  • gzip: gzip压缩(gzip file.tar)[压缩](gzip -d file.gz)[解压](tar -zcvf file.tar.gz *.txt)[打包并压缩](tar -zxvf file.tar.gz)[解压并解包](tar -zxvf file.tar.gz -C tempDir)[解压到指定目录]
  • bzip2: bzip2压缩(tar -jcvf file.tar.bz2 *.txt)[打包压缩](tar -jxvf file.tar.bz2)[解压解包]
  • zip: zip压缩(zip file.zip *.txt)[压缩](unzip -d tempDir file.zip)[解压]
  • chmod: 修改文件权限(chmod u+r file.txt)(chmod u=r,g=r,o=r file.txt)(chmod 0777 file.txt)
  • chown: 修改文件所有者(chown person file.txt)
  • chgrp: 修改文件所属组(chgrp group file.txt)

  • >: 输出重定向(ls > file.txt)

  • >>: 输出重定向追加(ls >> file.txt)
  • clear: 清屏
  • more: 分屏显示(more file.txt)
  • |: 管道(ls | more)

  • history: 历史命令

  • help: 帮助(ls --help)
  • man: 帮助(man ls)(man 1 ls)

    • (man 1 ls)数字含义:
      • 1: 标准命令
      • 2: 系统调用
      • 3: 库函数
      • 4: 设备文件说明
      • 5: 文件格式
      • 6: 游戏和娱乐
      • 7: 协定
      • 8: 管理员命令
    • 功能键:
      • 空格:下一屏
      • Enter:下一行
      • ↑:上一行 / ↓:下一行
      • b:下滚一屏 / f:上滚一屏
      • q:退出man
      • h:列出功能键
      • /word:搜索word词
  • cal: 日历(cal)(cal -y)

  • date: 时间(date)(date 1230235920.59)[月日时分年.秒]{管理员权限}
  • ifconfig: 网络配置信息(ifconfig)(ifconfig ens33 192.168.0.1)
  • ping: Ping
  • ln: 链接(ln -s dirRes lnFile)[软链接](ln fileRes lnFile)[硬链接]
  • which: 命令路径(which ls)

  • apt-get update: 更新源

  • apt-get install package: 安装包(apt-get install package)(apt-get install package --reinstall)[重装](apt-get -f install package)[修复]
  • apt-get remove package: 删除包(apt-get remove package)(apt-get remove package --purge)[含配置文件]
  • apt-cache search package: 搜索软件包
  • apt-cache show package: 获取包信息
  • apt-get build-dep package: 安装相关的编译环境
  • apt-get upgrade: 更新已安装的包
  • apt-get dist-upgrade: 升级系统
  • apt-cache depends package: 该包依赖哪些包
  • apt-cache rdepends package: 该包被哪些包依赖
  • apt-get source package: 下载该包的源代码(部分包没有源码)
  • apt-get clean && sudo apt-get autoclean: 清理无用的包和备份
  • apt-get check: 检查是否有损坏的依赖

  • sudo: 执行需要管理员权限的命令(sudo date 1230235920.59)(sudo -s)[却换到root]

  • su: 切换用户(su person)
  • whoami: 当前用户名
  • who: 所有登录的用户
  • exit: 退出登录账户/终端
  • useradd: 添加用户(useradd person -m)(useradd person -g group -m)
  • passwd: 修改密码(passwd)(passwd person)
  • userdel: 删除用户(userdel person)(userdel -r person)[并删除该用户目录]
  • groupadd: 创建组(groupadd group)
  • groupdel: 删除组(groupdel group)
  • usermod: 修改用户组(usermod -g group person)

  • ps: 进行信息(ps)(ps -a)(ps -aux)

  • top: 动态显示进程
  • kill: 终止进程(kill 1234)[PID](kill 1234 -9)[信号值;9绝对终止]
  • reboot: 重启系统
  • init: 初始化(init 0)[0关机; 6重启]
  • shutdown: 关机(shutdown -r now)[重启](shutdown -h now)[关机](shutdown -h 12:34)[12:34关机](shutdown -h 12)[12分钟后关机]

(构建)服务器

  • FTP(资源传输)
    • 安装: (sudo apt-get install vsftpd)
    • 配置vsftpd.conf文件(sudo vim /etc/vsftpd.conf)
      • anonymous_enable=NO #// 不允许 匿名用户登录
      • local_root=/home/python/ftp #// 指定ftp资源目录
      • local_enable=YES #// 允许本机登录
      • write_enable=YES #// 允许上传文件到服务器
      • chroot_list_enable=YES
      • chroot_list_file=/etc/vsftpd.chroot_list #// 允许文件记录的用户登录
    • 创建文件
      • 创建用户列表文件(sudo vi /etc/vsftpd.chroot_list)
        • 写入用户名(python)
      • 创建ftp共享文件夹(sudo mkdir /home/python/ftp/share -p)
    • 修改文件权限
      • 去掉ftp文件夹所有用户写权限(sudo chmod a-w /home/python/ftp)</li>
        <li>添加ftp资源文件夹所有用户权限(
        sudo chmod 0777 /home/python/ftp/share)</li></ul></li>
        <li>重启服务器(
        sudo /etc/init.d/vsftpd restart)
        <ul><li>start: 开始</li>
        <li>stop: 关闭</li>
        <li>restart: 重启</li></ul></li>
        <li>资源传递:(或使用filezilla客户端)
        <ul><li>登录: (
        ftp 192.168.1.0)</li>
        <li>上传: (
        put *.txt)</li>
        <li>下载: (
        get *.txt`)
  • Samba(共享文件夹)

    • 安装: (sudo apt-get install samba samba-common)
    • 配置:

      • 创建共享文件夹: (mkdir /home/python/samba/share -p)
      • 修改文件夹权限: (chmod 777 /home/python/samba/share)
      • 修改配置文件: (sudo vim /etc/samba/smb.conf)

        • 文件末尾添加:

          [share]
             path = /home/python/samba/share
             available = yes
             browseable = yes
             writable = yes
          
      • 创建账户:

        • (smbpasswd -a python)
        • 输入密码
      • 重启samba: (/etc/init.d/smbd restart)
    • 访问:
      • 运行: (\\120.76.29.172)
      • 输入账户密码
  • SSH(远程登录)
    • 安装: (sudo apt-get install openssh-server)
    • 远程登录: (ssh person@192.168.0.1)
    • 远程下载: (scp person@192.168.0.1:/home/python/res.txt /cygdrive/d/des.txt)[文件](scp -r person@192.168.0.1:/home/python /cygdrive/d)[目录]
    • 远程上传: (scp /cygdrive/d/res.txt person@192.168.0.1:/home/python/des.txt)[文件](scp -r /cygdrive/d person@192.168.0.1:/home/python)[目录]

快捷键

  • Ctrl + Shift + “+”: 放大终端字体
  • Ctrl + “-“: 缩小终端字体
  • tab: 命令行自动补全
  • Ctrl + c: 终止命令
  • Ctrl + d: 终止终端

(常用)通配符

  • *: 任意数量字符
  • ?: 任意一个字符
  • []: 匹配[]内任意字符([13]* )([1-3]*)
  • \: 转义符(\?)

常见问题

  • Q: 虚拟机安装Ubuntu之后,在登录界面输入密码后一直黑屏?
  • A: 关闭虚拟机 -> 虚拟机 -> 设置 -> 显示器 -> ×3D图形加速 -> 完美解决

  • Q: 如何打开终端?

  • A: Ctrl + Alt + T

  • Q: 桌面版进不了桌面时,怎么进入字符界面?

  • A: Ctrl + Alt + F1

  • Q: 主机用Wifi,虚拟机无法上网?

  • A: 将网络改为NAT模式

  • Q: 如何通过软件镜像站下载软件?

  • A: 打开清华大学镜像站 => 找到对应系统(ubuntu),点?号 => 选择版本 => Copy框内地址 => 备份系统默认源地址(sudo cp /etc/apt/sources.list /etc/apt/sources.list.back) => 编辑sources.list文件(sudo gedit /etc/apt/sources.list),替换全部内容(全选 -> 粘贴 -> 保存) => 更新源(sudo apt-get update) => 之后就可以安装软件了

  • Q: Windows10上cmd不支持ssh命令怎么办?

  • A: 下载OpenSSH7.5pl => 安装[×Server] => 完成

  • Q: 使用OpenSSH时,Windows端的路径怎么写?

  • A: D:\file.txt => /cygdrive/d/file.txt

  • Q: 如何查看Ubuntu版本号?

  • A: 查看内核版本号: uname -mrs; 查看分发版本号:
    cat /etc/os-release

  • Q: 如何安装指定版的Python

  • A: sudo apt-get install python3.6

  • Q: 停止进程

  • A: 先ps -ef|grep xxx, 再kill -9 pid

  • Q: 如何给虚拟机里的Ubuntu安装VMware tools?

    • 加载vm tools
      • 方式一: 虚拟机 -> 安装VMware tools
      • 方式二: 虚拟机 -> 可移动设备 -> CD -> 设置 -> 找到vm安装路径下的, linux.iso文件 -> 连接
    • 进入linux系统, 拷贝cd里的VMwareTools-xxx.tar.gz到桌面, 解压
    • cd到解压目录, 执行sudo ./vmware-install.pl, 记得要敲yes
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值