• Linux命令(一)


    Linux命令(一)

    文件管理

    1.cat

    • cat 命令用于连接文件并打印到标准输出设备上。
    • 使用权限
      所有使用者
    • 语法格式
    cat [-AbeEnstTuv] [--help] [--version] fileName
    

    参数说明:

    1. -n 或 --number:由 1 开始对所有输出的行数编号。

    2. -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

    3. -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

    4. -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

    5. -E 或 --show-ends : 在每行结束处显示 $。

    6. -T 或 --show-tabs: 将 TAB 字符显示为 ^I。

    7. -A, --show-all:等价于 -vET。

    8. -e:等价于"-vE"选项;

    9. -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

    注:

      1. OUTFILE 指输出的镜像文件名。
      1. IMG_FILE 指镜像文件。
      1. 若从镜像文件写回 device 时,device 容量需与相当。
      1. 通常用制作开机磁片。

    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的权限

  • 相关阅读:
    属性与字段的区别
    修改LVDS支持1024*600分辨率
    Altium designer 10如何设置标题栏
    嵌入式C开发人员的最好的0x10道笔试题
    进程线程及堆栈关系的总结
    GDB调试
    c语言
    如何使用autotools生成Makefile
    ubuntu NFS
    Ubuntu安装配置TFTP服务
  • 原文地址:https://www.cnblogs.com/jason1999/p/11664352.html
Copyright © 2020-2023  润新知