linux基础——ubuntu
基础命令
命令行–终端打开ctrl+atl tcmd -options args善于tab(补齐)一切没有消息的消息就是最好的消息命令—>已经写好的可执行文件环境变量PATH–>路径:/bin/:/sbin/:/usr/bin/ …history 查看登陆用户的历史命令上下方向键切换历史命令cal month year查看日历
文件管理
cd 切换工作路径
路径:linux os文件系统从/开始的
绝对路径:从/开始相对路径: 从当前. pwd 显示当前工作路径ls -[l/d/h/i/a] args
列出目录的文件信息-l 长格式显示
类型
-普通文件d目录文件c字符设备文件b块设备文件s套接字文件l链接文件p管道文件 权限
作用对象
拥有着 u所属组 g其他用户 o 基本权限
r 读 目录:lsw 写 目录:touch mkdir rm mvx 执行 目录:cd 检索为 修改权限
chmod u / g / o ± r / w/ x file
chmod u+r file 每一组转换为一个八进制数值
rw-rw-r------>664 特殊权限
u+s—>not dir 可执行—>4
使得执行拥有此权限的用户再期间拥有文件拥有着身份(提升权限)— >passwd g+s—>dir---->2
使得拥有此权限的目录的子文件继承其组 o+t—>dir---->1
粘着位 使得所有用户再此目录下只能删改自己创建的文件 umask 文件屏蔽字
防止产生权限过大文件 硬链接个数
硬链接:同一个文件的多个名字 ln src newhard软链接(符号链接):快捷方式 ln -s src newsoft系统不允许为目录创建硬链接
. …是目录硬链接 拥有者所属组字节大小
!= 所占磁盘空间stat path
blocks—>512k du -sh path 最后一次修改时间
atime
最后一次访问时间 ctime
最后一次属性改变 mtime
最后一次内容改变 文件名 touch 创建空文件mkdir 创建目录cp [-r] src_path dest_path 复制文件mv src_path dest_path 剪切/重命名rm [-r] src_pathcat src_path 显示文件的全部内容less src_path 按页查看head -3 src_path 查看文件的前3行 (默认10行)tail -3 src_path 产看文件的后3行(默认10行)grep “root” path 过滤文件
-n:显示行号-i:忽略大小写-v:反向筛选-w:精确查找 evince .pdfwc file 统计文件字节个数,单词个数 行数
-c 字节-w 单词-l 行
用户管理
root有权限sudo 以root身份执行sudo useradd -m username 创建用户usernamesudo passwd username 给username用户创建密码sudo userdel -r username 删除用户su - username 切换用户并切换工作路径到用户的家目录exit 登出/etc/passwd—>用户信息 man 5 passwd/etc/group —>组信息 man 5 group/etc/shadow—>密码 man 5 shadowsudo gpasswd -a username group 将用户加入组内sudo gpasswd -d username group 将用户从组内移除id username 查看用户信息
文件查找
which / wheris 查找可执行文件路径locate filename 查找数据库中文件find path -name/-type/-size/-mtime/-perm xx
-type:
f / d/ s/ l/ c/ b/ p -size
c / K / M / G -exec 执行
find path -name “hello” -exec cp {} . \ ; -ok 询问执行
文件打包压缩
打包
tar -cf xxx.tar file1 dir
-c 创建包-f 后面接包名-t 查看包中内容-r 追加新文件 压缩
gzip filepath gz格式bzip2 filepath bz2格式xz filepath xz格式 解压缩
gzip -d filepath / gunzip filepathbzip2 -d filepath / bunzip2 filepathxz -d filepath 打包并压缩
gz
tar -czvf xxx.tar.gz file dir bz2
tar -cjvf xxx.tar.gz file dir xz
tar -cJvf xxx.tar.gz file dir 解压缩包
tar -xvf xxx -C path
-C 指定解压路径
软件包管理
源中软件包 (软件和更新 选择源)
sudo apt install 包名 下载并安装sudo apt remove 包名 卸载sudo apt purge 包名 卸载包含配置文件sudo apt update 更新sudo apt upgrade 升级sudo apt list 列出所有软件包 下载xxx.deb—>二进制
sudo dpkg -i xxx.deb 安装sudo dpkg -r xxx 卸载 源码包
解压解包
tar -xvf xxx.tar.bz2 -C xxx 查看INSTALL/README./configuemakemake install
文件重定向和管道
标准输入 stdin 0
标准输出 stdout 1
标准错误输出 stderr 2
0< 或 < 标准输入重定向
1> 或 > 标准输出重定向
2> 标准错误输出重定向
>>file 追加
写管道|读管道 管道符
网络管理与进程管理
ifconfig 显示所有网卡信息
ip mask ping ip / 域名 查看网络是否联通启动网络服务
/etc/init.d/networking start / restart/ stop 防火墙
/etc/init.d/ufw stop/start/restart 静态显示进程
ps aux
USER PID TTY STATE COMMAND ps axj
PPID PID PGID SID TTY STATE COMMAND ps axm -L
线程 动态显示进程
top
vim使用
一般模式(打开编辑文件时)
yy 复制3yy 复制3行p 粘贴P 向上粘贴dd 剪切3dd 剪切3行u 撤销ctrl+rx 删除光标所在字符(向后)X 删除光标所在字符(向前)D 删除光标所在字符及以后r 替换R 替换模式ctrl+v 块操作gg 首行G 末行/key 插入模式
进入插入模式
i 光标所在字符前I 光标所在行行首a 光标所在字符后A 光标所在行行末o 光标所在行下一行O 光标所在行上一行s 删除光标所在字符并插入S 删除光标所在行并插入 命令行模式
在一般模式 ::w 保存:q 退出:a 所有:q! 强制退出:1,5s/hello/world/g 所有1到5行中的hello替换为world g全部替换:%s/old/new/g %整个文件:5,$s/old/new/g $最后:set nu 行号:set ts=4 设置tab宽度:set mouse=a:set sw=4:set cindent c风格缩进永久配置vim—》~/.bashrc:vsp newfile 垂直分屏:sp newfile 水平分屏 vim -p file1 file 分页打开多文件vim -O file1 file2 垂直分屏打开vim -o file1 file2 水平分屏打开
git 基本使用
分布式版本控制—》linus初始化仓库
本地 git init远程git clone http:xxxx 工作区
git工作目录 暂存区
git add filename 版本库
git commit -m “解释说明” 退回上一个版本
git reset --hard HEAD^ 退回指定版本
git log 查看版本号git reset --hard GPL(版本号) 回到新版本
git refloggit reset --hard GPL(版本号) 暂存区中的文件退回工作区
git rm --cached file 已经提交到版本库中的修改执行删除 rm
后悔删除
git checkout – file 删除版本库中文件
git rm file 提交到远程仓库
git push 从远程仓库拉最近
git pull 提交跳过密码校验
git config --global credential.helper store