zoukankan      html  css  js  c++  java
  • 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的权限

  • 相关阅读:
    129. Sum Root to Leaf Numbers
    113. Path Sum II
    114. Flatten Binary Tree to Linked List
    112. Path Sum
    100. Same Tree
    300. Longest Increasing Subsequence
    72. Edit Distance
    自定义js标签库
    JS 实现Table相同行的单元格自动合并示例代码
    mysql 高版本only_full_group_by 错误
  • 原文地址:https://www.cnblogs.com/jason1999/p/11664352.html
Copyright © 2011-2022 走看看