Linux常用操作

仅为针对自己工作中常用命令进行总结记录。

包括常用命令及知识

定制指令

.bashrc是home目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

在 shell启动文件~/.bashrc中添加一些定制指令:

1
2
3
4
5
6
alias gv="gvim"
alias g="gvim -p"
alias la="ls -a"
alias lla="ll -a"
alias ..="cd ../"
alias gt="/usr/bin/gnome-terminal --tab&"

也可在~/.bashrc设置环境变量,如:

1
2
3
4
5
6
7
8
9
export VERDI_HOME=/home/synopsys/verdi/Verdi_O-2018.09-SP2
export SCL_HOME=/home/synopsys/scl/2018.06
export DC_HOME=/home/synopsys/syn/O-2018.06-SP1
export LC_HOME=/home/synopsys/lc/O-2018.06-SP1
export SPYGLASS_HOME=/home/synopsys/SpyGlass-L2016.06/SPYGLASS_HOME/
export PT_HOME=/home/synopsys/pts/O-2018.06-SP1
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$VERDI_HOME/share/PLI/lib/LINUX64"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$VERDI_HOME/share/PLI/IUS/LINUX64/boot"

配置完成~/.bashrc文件后,通过source ~/.bashrc命令使其立即生效(只针对这个terminal

常规命令

  • 终端字符

$:普通用户

#:root用户

1690009946693

  • 目录切换cd(change directory)

pwd:显示当前路径

cd ~:进入home目录

cd ..:进入上一层目录,(定制为..

cd dir:进入dir目录,绝对路径。相对路径以./开始

  • 目录操作

mkdir [dir_name]:新建目录

rmdir [dir_name]:删除目录

tree -L 3:按树显示文件目录,展开3级

文件操作

  • 文件查看(list)

ls [option] [dir]:显示dir目录下文件,默认为当前目录。

ls -a:显示所有文件(当前目录)。

ls -l:显示文件详细信息,包括权限、日期、大小等(定制为ll)。

-t :将按照修改时间排序,最新的文件在最前面。

很多命令可以使用通配符:

* :代表所有,如*.txt表示所有txt后缀文件;/home/later/work/*表示/home/later/work/目录下所有内容。

  • 文件复制(copy)

cp [src dir] [des dir]

-f:强行复制文件或目录,不论目标文件或目录是否已存在。

-r:递归处理,将指定目录下的所有文件与子目录一并处理。

常用:cp -rf dirA dirB ,将dirA所有文件递归复制到dirB。

cp /a/ /b

cp /a/* /b

  • 移动(move)

mv [src dir] [des dir]

同目录移动,仅改变名称就是重命名。

  • 删除(remove)

rm -rf [dir]

-f :强制删除文件或目录

-i :删除已有的文件或目录之前先询问用户

-r :递归处理,将指定目录下的所有文件与子目录一并处理

  • 查看文件

cat [filename]:将文件内容打印在终端上

gvim [filename]:使用gvim打开文件

>>:重定向到指定文件,可以接在任何有终端输出的命令后。

压缩解压缩

1
2
3
4
5
*.tar         //    tar程序打包产生的文件

*.gz // gzip程序压缩产生的文件
*.bz2 // bzip2程序压缩产生的文件
*.zip      //   zip压缩文件
  • 打包、压缩/解压缩

将多个文件打包成一个文件,不进行压缩,保证传输可靠,后缀为tar。

参数意义:(cx是相对的,加上zj则调用gzip和bzip2程序进行压缩解压缩,f是指定已有/待生成压缩文件)

-c: 建立新的压缩文件

-x: 从压缩的文件中提取文件

-z: 支持gzip解压文件

-j: 支持bzip2解压文件

-v: 显示操作过程

-f: 指定压缩文件

tar -cvf new.tar a.txt b.txt:将两个txt文件打包为new.tar

tar -xvf new.tar a.txt b.txt:将new.tar解包

tar -zcvf new.tar.gz ./a/:将a目录打包并压缩

tar -zxvf new.tar.gz ./test:将文件解压到test目录下

zip/unzip:

zip -r new.zip ./a/:将目录a下所有文件递归压缩为new.zip文件

unzip a.zip [-d dir]:解压a.zip到当前[dir]目录

查找命令

  • 查找文件(find)

find [路径] [选项] [操作]

常用选项有:

name:根据文件名查找

find [dir] -name [filename]:知道文件名,进行查找。

find [dir] -name [*na*]:知道部分文件名,使用通配符进行查找。

1690012137263

  • 查找文件内容(grep)

grep [options] [pattern] file

从文本文件或管道数据流中筛选匹配的行和数据,可以再配合正则表达式进一步筛选,将符合内容打印出来。

options参数:

-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
–color=auto :可以将找到的关键词部分加上颜色的显示。

pattern正则表达式主要参数:正则表达式:要学,不详述。
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
*:所有字符,长度可以为0。

示例:

cmd | grep "size" -in:(cmd的输出会给到后一个指令)在cmd输出的内容中找”size“,i部分大小写,n显示行号。

grep "vcs" -in Makefile:在Makefile文件里查找”vcs“字段。

1690013513160

权限相关

* 文件权限(chmod)

看chmod前先看下ll命令的显示内容:

调用权限分为三级 : 档案拥有者(u,user)、群组(g,group)、其他 (o,others),三级所有则是(a,all)。这和赋予权限的对象是对应的。

第1列表示文件类型,d表示目录,-表示常规文件,l表示连接文件。

第2+9列表示三级享有权限情况,r表示read权限,w表示write权限,x表示执行权限,-表示无此项权限。rwx-对应数值为4210。

1690013921732

用户权限

+:追加某个权限

-:删除某个权限

=:赋予权限

常用示例:

chmod -R 777 [dir]:递归给dir目录下给三级权限都设置为可读可写可执行。

chmod u+x [filename]:给user的filename文件给追加执行权限。

权限设置还是按需设置比较好。

文件比较

这个开发中还是比较常用的

diff、bcompare、meld都可以,个人喜欢bcompare

windows下还有bcompare、winmerge