Linux命令和Git命令
Linux命令
系统信息
- arch 显示机器的处理器架构
- uname -m 显示机器的处理器架构
- uname -r 显示正在使用的内核版本
- dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
- hdparm -i /dev/hda 罗列一个磁盘的架构特性
- hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
- cat /proc/cpuinfo 显示CPU info的信息
- cat /proc/interrupts 显示中断
- cat /proc/meminfo 校验内存使用
- cat /proc/swaps 显示哪些swap被使用
- cat /proc/version 显示内核的版本
- cat /proc/net/dev 显示网络适配器及统计
- cat /proc/mounts 显示已加载的文件系统
- lspci -tv 罗列 PCI 设备
- lsusb -tv 显示 USB 设备
- date 显示系统日期
- cal 2007 显示2007年的日历表
- date 041217002007.00 设置日期和时间 - 月日时分年.秒
- clock -w 将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
- shutdown -h now 关闭系统
- init 0 关闭系统
- telinit 0 关闭系统
- shutdown -h hours:minutes & 按预定时间关闭系统
- shutdown -c 取消按预定时间关闭系统
- shutdown -r now 重启
- reboot 重启
- logout 注销
文件和目录
- cd /home 进入 ‘/ home’ 目录’
- cd … 返回上一级目录
- cd …/… 返回上两级目录
- cd 进入个人的主目录
- cd ~user1 进入个人的主目录
- cd - 返回上次所在的目录
- pwd 显示工作路径
- ls 查看目录中的文件
- ls -F 查看目录中的文件
- ls -l 显示文件和目录的详细资料
- ls -a 显示隐藏文件
- ls [0-9] 显示包含数字的文件名和目录名
- tree 显示文件和目录由根目录开始的树形结构
- lstree 显示文件和目录由根目录开始的树形结构
- mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
- mkdir dir1 dir2 同时创建两个目录
- mkdir -p /tmp/dir1/dir2 创建一个目录树
- rm -f file1 删除一个叫做 ‘file1’ 的文件’
- rmdir dir1 删除一个叫做 ‘dir1’ 的目录’
- rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
- rm -rf dir1 dir2 同时删除两个目录及它们的内容
- mv dir1 new_dir 重命名/移动 一个目录
- cp file1 file2 复制一个文件
- cp dir/* . 复制一个目录下的所有文件到当前工作目录
- cp -a /tmp/dir1 . 复制一个目录到当前工作目录
- cp -a dir1 dir2 复制一个目录
- cp -r dir1 dir2 复制一个目录及子目录
文件搜索
- find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
- find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
- find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件
- find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
- find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
- find / -name *.rpm -exec chmod 755 ‘{}’ ; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
- find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备
- locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令
- whereis halt 显示一个二进制文件、源码或man的位置
- which halt 显示一个二进制文件或可执行文件的完整路径
查看文件内容
- cat file1 从第一个字节开始正向查看文件的内容
- tac file1 从最后一行开始反向查看一个文件的内容
- more file1 查看一个长文件的内容
- less file1 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
- head -2 file1 查看一个文件的前两行
- tail -2 file1 查看一个文件的最后两行
- tail -f /var/log/messages 实时查看被添加到一个文件中的内容
Git 命令
简单命令
git clone
- git clone [url]
拷贝一份远程仓库,也就是下载一个项目。
git add
- git add [file1] [file2] …
添加一个或多个文件到暂存区: - git add [dir]
添加指定目录到暂存区,包括子目录: - git add .
添加当前目录下的所有文件到暂存区:
git commit
- git commit -m [message]
提交暂存区到本地仓库中 - git commit -a
修改文件后不需要执行 git add 命令,直接来提交
git reset
可以通过git log 查看版本信息
- git reset [–soft | --mixed | --hard] [HEAD]
–mixed:将指定 commit id 撤回之后所有内容全部放进工作区中。
–soft:将指定 commit id 撤回之后所有内容全部放进暂存区。
–hard:将指定 commit id 撤回并清空工作目录及暂存区所有修改。
git rm
- git rm
将文件从暂存区和工作区中删除:
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。
分支管理
git branch
- git branch
没有参数时,git branch 会列出你在本地的分支。 - git branch (branchname)
创建分支 - git branch -d (branchname)
删除分支命令
git checkout
- git checkout (branchname)
切换分支
git merge
- git branch (branchname)
将branchname 分支合并到当前分支
在解决冲突之后需要进行git add。
远程操作
git fetch
- git push [alias] [branch]
配置好了一个远程仓库,并且你想要提取更新的数据。
但是在之后需要进行git merge [alias]/[branch] 将新代码合并到现有分支
git pull
- git pull <远程主机名> <远程分支名>:<本地分支名>
相当于执行来git frtch + git merge
git push
- git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
Git其他命令
git reset 和 git revert
假设我么现在有3个版本 (版本1 - 版本2 - 版本3)
-
git reset
git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,假设我们要回退到版本1,那么在使用git reset之后,版本2 和版本3 都会消失。此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,因此我们需要使用-f 进行强制提交。 -
git revert
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交。
找回git reset hard的内容
- 使用 git reflog 查看commit列表
- 再一次使用git reset – hard 进行重置
git stash使用
git stash 的作用也是隐藏没完成的代码,防止它干扰别人或者新分支的工作。
-
保存当前修改代码,拉取新的修改
git stash
git pull
git pop -
将当前修改的代码移动到另一个分支
git stash
git checkout
git pop