Linux命令
Posted jason1999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令相关的知识,希望对你有一定的参考价值。
Linux命令(一)
文件管理
1.cat
- cat 命令用于连接文件并打印到标准输出设备上。
- 使用权限
所有使用者 - 语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
两个>> 是在文末加入
一个> 全部修改
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
注:
- OUTFILE 指输出的镜像文件名。
- IMG_FILE 指镜像文件。
- 若从镜像文件写回 device 时,device 容量需与相当。
- 通常用制作开机磁片。
2. mv
Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [options] source dest
mv [options] source... directory
参数说明:
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
mv参数设置与运行结果
命令格式 | 运行结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名 |
mv 目录名 文件名 | 出错 |
- 实例:
将文件 aaa 更名为 bbb :
mv aaa bbb
将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
mv info/ logs
再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/student/* .
目标目录与原目录一致,指定了新文件名,效果就是仅仅重命名。
mv /home/ffxhd/a.txt /home/ffxhd/b.txt
目标目录与原目录不一致,没有指定新文件名,效果就是仅仅移动。
mv /home/ffxhd/a.txt /home/ffxhd/test/
或者
mv /home/ffxhd/a.txt /home/ffxhd/test
目标目录与原目录一致, 指定了新文件名,效果就是:移动 + 重命名。
mv /home/ffxhd/a.txt /home/ffxhd/test/c.txt
3. git
Linux git命令是文字模式下的文件管理员。
git是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样。
- 1、创建
克隆一个已存在的远程版本库到本地
$ git clone ssh://user@domain.com/repo.git
创建一个新的本地版本库
$ git init
- 2、本地修改
在工作区修改文件
$ git status
追踪修改的文件(对比工作区与版本库的区别)
$ git diff
添加所有当前修改到暂存区(下一次提交前)
$ git add
添加指定文件到暂存区(下一次提交前)
$ git add -p
<file>
提交所有本地修改的文件
$ git commit -a
提交暂存区的文件
$ git commit
修改最后一次提交的信息(没有推送提交之前)
$ git commit --amend
- 3、提交历史
显示从开始到最近的所有提交日志
$ git log
显示指定文件的修改日志
$ git log -p
<file>
显示指定文件谁在哪些时间做了哪些修改
$ git blame
<file>
- 4、分支和标签
列出所有已存在的分支
$ git branch
切换分支并将当前版本指向该分支
$ git checkout
<branch>
创建一个基于当前版本的新分支
$ git branch
<new-branch>
创建一个基于远程分支的新分支(与远程分支做关联)
$ git branch --track
<new-branch> <remote-branch>
删除一个本地分支
$ git branch -d
<branch>
给当前提交打上一个标签
$ git tag
<tag-name>
- 5、更新和推送
列出所有当前已配置的远程版本库(-v为详细显示)
$ git remote -v
显示一个远程版本库的信息
$ git remote show
<remote>
添加并命名一个新的远程版本库
$ git remote add
<remote> <url>
从远程版本库中下载所有修改,但不整合进当前版本
$ git fetch
<remote>
下载修改并直接合并或整合进当前版本
$ git pull
<remote> <branch>
推送本地修改到一个远程版本库
$ git push
<remote> <branch>
在远程版本库上删除一个分支
$ git push
<remote> :<branch>
推送所有标签(到远程版本库)
$ git push --tags
- 6、合并&重新定义(版本库状态)
将分支合并进当前版本
$ git merge
<branch>
重新定义当前版本在分支上的状态(没有推送提交之前)
$ git rebase
<branch>
终止一个重新定义
$ git rebase --abort
在解决冲突后继续一个重新定义
$ git rebase --continue
使用配置合并工具保存冲突
$ git mergetool
手动编辑解决冲突并在解决冲突之后标记保存文件
$ git add
<resolved-file>
删除标记保存的文件
$ git rm
<resolved-file>
- 7、撤销
在工作目录中丢弃所有本地修改
$ git reset --hard HEAD
丢弃指定文件的本地修改
$ git checkout HEAD
<file>
撤销一个提交(撤销会产生一个新的提交)
$ git revert
<commit>
回退到一个之前的提交,并丢弃之后的所有修改
$ git reset --hard
<commit>
回退到一个之前的提交,并撤销暂存区的修改(即重新放回工作区)
$ git reset
<commit>
回退到一个之前的提交,并保留未提交的本地修改
$ git reset --keep
<commit>
4.rm
Linux rm命令用于删除一个文件或者目录。
- 语法
rm [options] name...
参数
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
- 实例
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
5.chmod
Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。
- 使用权限
所有使用者 语法
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :[ugoa...][[+-=][rwxX]...][,...]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数
c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
实例
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该文件拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
语法为:
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
- 若要rwx属性则4+2+1=7;
- 若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的权限
以上是关于Linux命令的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段