文章目录
命令、文件操作、磁盘
命令解析器
本质:识别命令,调用程序
- linux:bash
- unix:shell
快捷键
history:查看历史操作
ctrl + p : 返回上一条历史操作
ctrl + n : 返回下一条历史操作
ctrl + f : 光标向前
ctrl + b : 光标向后
ctrl + a : 光标移动到行首
ctrl + e : 光标移动到行尾
ctrl + h : 删除光标前面的一个
ctrl + d : 删除光标覆盖的
ctrl + u : 删除光标前面所有
系统目录结构
树状结构:
- /bin : (binary)存放常用操作命令(ls, cat…)
- /boot : 开机启动项,存放linux核心文件,包括链接文件和镜像文件
- /dev : 设备文件
- /etc : 存放系统管理的配置文件
- /home : 家目录
- /lib : (library)存放着系统最基本的动态连接共享库
- /lost+found : 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media : 设备文件,比如:u盘会自动挂载到这个文件上
- /mnt : (手动的话可以挂载到这个文件上)系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /usr : (user soft resource) 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /var : (变化文件)可以存放日志
- /root :该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin : root用户的系统管理文件
- /tmp : 可以用来存放临时文件
- /selinux :这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
- /opt : 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- //proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器
路径
- 绝对路径:/home/user/xxx
- 相对路径
user_name @ machine_name : current_path $
$ : 普通用户
# : 超级用户(root)
文件操作
- 查看目录:
ls
tree ([dir])
- 白色:普通文件
- 蓝色:目录
- 绿色:可执行文件
- 红色:压缩包
- 青色:链接
- 黄色:设备文件
ls ([op])
- -l : 详情信息
- -a :all
- -h : human
xx1x2x3x4x5x6x7x8x9 hard_link user group size month day h:m name
- x:文件的格式
- -:普通文件
- d:dir
- l:link
- b:block(块设备)
- c:char(字符设备)
- s:socket
- p:pipe
- x1 - x3:用户的权限
- x4 - x6:组权限
- x7 - x9:其他人权限
r :read w:write x:execute
切换目录
cd [path]
pwd
创建目录
mkdir dir_name
:只能创建单一目录mkdir -p dir_name
:可以创建多级目录
删除
rm ([op]) file/dir
- -r:递归删除(一般删除目录需要使用到)
- -i:提示是否删除
- -f:file
NOTE:
删除文件是永久删除
复制
cp ([op]) source destination
- 复制文件:
- 不存在:创建
- 存在:重写
- 复制目录
cp -r source destination
- 不存在:创建
- 存在:将复制的文件复制到目录里面
查看
cat file
more file
less file
head -n file
:查看前n行tail -n file
:查看尾n行
移动、修改名字
- 移动:
mv path1 path1
:当文件两次移动位置一样当名字不一样相当于改名 mv file/dir_path destination
创建链接(要用绝对路径)
- 软链接:
ln -s file/dir_abs_path path_and_name
- 硬链接:
ln file_abs_path path_name
(不能连接目录)
NOTE: 软链接与硬链接的区别
软链接:相当于windows下的快捷方式(python下的引用)
硬链接:类似于复制文件(实际上不占用磁盘空间)(python下的指针)
文件或者目录的属性(了解)
wc filename
行数 单词数 字节 名字du -h
:当前目录大小df -h
:磁盘使用情况
查看、修改用户权限
查看
whoami
修改用户
chmod n1n2n3 file/dir
(r:4, w:2,x:1)
- n的取值:0 1 2 3 4 5 6 7
- 0:什么权限都没有
- 1:可执行
- 2:可写
- 3:可写可执行
- 4:可读
- 5:可读可执行
- 6:可读可写
- 7:可读可写可执行
- n1:user
- n2:group
- n3:other
修改组
chown user file/dir
:改变file/dir的所有者为userchown user:group file/dir
:改变file/dir的所有者和所有组为user、groupchgrp group file/dir
:改变file/dir的所有组为group
查找文件
- 按文件属性查找(find 通配符 * ?)
- 文件名:
find [要找的目录path] -name "文件名"
root@VM-0-16-ubuntu:/home/ubuntu# find / -name "bin"
/usr/lib/klibc/bin
/usr/lib/initramfs-tools/bin
...
- 文件大小
find [要找的目录path] -size 大小
(k,M)(-:小于 | +:大于)
// 寻找小于1k的文件
root@VM-0-16-ubuntu:/home/ubuntu# find ./ -size -1k
./.ssh/authorized_keys
./.sudo_as_admin_successful
./.cache/motd.legal-displayed
//找到大于2k小于2M的文件
root@VM-0-16-ubuntu:/home/ubuntu/aa# ls -lh
total 12K
drwxrwxr-x 3 ubuntu ubuntu 4.0K Oct 11 20:03 bb
drwxr-xr-x 2 root root 4.0K Oct 12 16:12 das
-rw-r--r-- 1 root root 23 Oct 12 16:12 text
root@VM-0-16-ubuntu:/home/ubuntu/aa# find /home/ubuntu/aa/ -size +2k -size -4M
/home/ubuntu/aa/
/home/ubuntu/aa/bb
/home/ubuntu/aa/bb/cc
/home/ubuntu/aa/das
- 文件类型查找
find [要找的目录] -type 类型
类型:- ,d, f, b, c, s, p
- 按文件内容查找
grep -r "查找的内容 [路径]"
root@VM-0-16-ubuntu:/home/ubuntu/aa# grep -r "one " /home/ubuntu/
/home/ubuntu/test/a:one line
/home/ubuntu/a:one line
软件安装
在线安装
- 安装:
sudo apt-get install [软件名]
- 卸载:
sudo apt-get remove [软件名]
- 更新软件列表:
sudo apt-get update
- 删除安装包:
sudo apt-get clean
deb包安装
- 安装:
sudo dpkg -i [安装包.deb]
- 卸载:
sudo dpkg -r [软件]
源码安装
- 解压缩
- 进入安装目录
- 检测文件是否缺失
- 编译make
- 安装:sudo make install
磁盘管理
挂载
- 系统 默认挂载到
/media
- 手动挂载一般挂载到
/mnt
- 挂载方式:
mount [设备名] [要挂载到的目录(/mnt)]
查看设备:fdisk -l
卸载挂载
umount [挂载的路径]
NOTE:
最好是挂载到/mnt目录下,挂载到其他目录要确保其他目录为空目录
否则会暂时覆盖该目录
压缩管理
- gizp
- 压缩:
gzip -r file
:不保留原文件,只能压缩file - 解压:
gunzip file
- bzip2
- 压缩:
bzip2 [-k] file
-k保留源文件 - 解压:
bunzip2 file
- tar(保留原文件)
- 参数
- z:使用gizp方式压缩
- j:使用bzip2方式压缩
- c:创建
- x:解压
- v:显示提示信息
- f:显示压缩文件名
- 压缩
tar zcvf [压缩后的名字.tar.gz] [要压缩的文件path]
tar bcvf [压缩后的名字.tar.bz2] [要压缩的文件path]
(压缩比大)
- 解压
tar zxvf [压缩包] -C [要解压到的path]
(解压目录用-C)tar jxvf [压缩包] -C [要解压到的path]
(解压目录用-C)
- rar
- 压缩:
rar a [生成的压缩文件名] [path]
(生成文件会自动加上后缀) - 解压:
rar x [压缩包] [解压到path]
- zip
- 压缩:
zip [生成压缩文件path] [要压缩的文件path]
- 解压:
unzip [压缩包名] -d [解压到path]
(-d 指定目录)
总结: - 压缩:
tar/rar/zip 参数 生成的压缩文件名 要压缩的文件path
- 解压:
tar/rar/unzip 参数 压缩包名 参数 要解压到path
进程管理
- 查看当前用户
who
- 查看进程情况
ps aux
(PID:进程id)
ps aux | grep "要搜索的内容"
- 杀死进程
kill -l
:查看信号
kill -9 PID
kill -SIGKILL PID
- 查看当前进程的环境变量
env
env |grep PATH
PATH=value:vulue:value…
网络相关命令
- ifconfig
- ping
nslookup [网站(www.baidu.com)]
:查看网站IP
用户管理
su user_name
:使用用户
- 添加用户:
sudo adduser [user_name]
sudo useradd -s [shell(/bin/bash)] -g [group] -d [dir] -m [user]
: -m:如果用户目录不存在则创建
- 创建组:
sudo groupadd [group]
- 修改密码
sudo passwd user
:修改user的密码sudo passwd (root)
:修改root用户密码passwd
:修改当前用户密码
- 删除用户
sudo deluser user
:删除不彻底,家目录要自己删除sudo userdel -r user
:家目录自动删除
- 查看用户
vim /etc/passwd
服务器搭建
ssh服务器
- 服务器端
sudo apt install openssh-server
- 客户端
- 远程登录:
ssh 用户名@IP
- 退出:quit,bye…
- scp命令
- 从服务器上下载文件到本地
scp -r 服务器用户名@IP:/服务器上文件的绝对路径 /本地绝对(相对)路径
- 本地上传文件到服务器
scp -r 本地文件绝对路径 服务器用户名@IP:服务器上文件的绝对路径
vim
- 三种模式
- 命令行模式
- a:在光标后面插入
- A:在行尾插入
- i:在光标前插入
- I:在行首插入
- o:在光标下面新插入一行
- O:在光标上面新插入一行
- 编辑模式
- 末行模式
- 撤销与反撤销
撤销:ctrl+u
反撤销:ctrl+r
- 查找
命令行模式下:
/xxx
Enter
n:向下查找
N:向上查找
?xxx
#
选择一个单词查找 - 缩进
>>
<<
- 替换
末行模式下:
:/s/要替换的/替换成
:光标所在行,只替换一个
:/s/要替换的/替换成/g
:光标所在行,全部替换
:%s/要替换的/替换成/g
:全部文本替换 - 分屏
:sp
:水平分配
:vsp
:垂直分屏
ctrl + w w
:切屏 - 可视模式
v
V