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: 进入插入模式
- 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 <: 增加宽度
- esc: 进入/退出 命令行模式
- 功能键:
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词
- (man 1 ls)数字含义:
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>
sudo chmod 0777 /home/python/ftp/share
<li>添加ftp资源文件夹所有用户权限()</li></ul></li>
sudo /etc/init.d/vsftpd restart
<li>重启服务器()
ftp 192.168.1.0
<ul><li>start: 开始</li>
<li>stop: 关闭</li>
<li>restart: 重启</li></ul></li>
<li>资源传递:(或使用filezilla客户端)
<ul><li>登录: ()</li>
put *.txt
<li>上传: ()</li>
get *.txt`)
<li>下载: (
- 去掉ftp文件夹所有用户写权限(
- 安装: (
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-releaseQ: 如何安装指定版的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
- 加载vm tools