Linux常用命令

VIM

vim

  • 一般指令模式(Command mode):VIM 的默认模式,可以用于移动游标查看内容;
  • 编辑模式(Insert mode):按下 “i” 等按键之后进入,可以对文本进行编辑;
  • 指令列模式(Bottom-line mode):按下 “:” 按键之后进入,用于保存退出等操作。

在指令列模式下,有以下命令用于离开或者保存文件。

命令 作用
:w 写入磁盘
:w! 当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关
:q 离开
:q! 强制离开不保存
:wq 写入磁盘后离开
:wq! 强制写入磁盘后离开

文件与目录的基本操作

1. ls

列出文件或者目录的信息,目录的信息就是其中包含的文件。

 ls [-aAdfFhilnrRSt] file|dir
-a :列出全部的文件
-d :仅列出目录本身
-l :以长数据串行列出,包含文件的属性与权限等等数据

2. cd

更换当前目录。

cd [相对路径或绝对路径]

3. mkdir

创建目录。

mkdir [-mp] 目录名称
-m :配置目录权限
-p :递归创建目录

4. rmdir

删除目录,目录必须为空。

rmdir [-p] 目录名称
-p :递归删除目录

5. touch

更新文件时间或者建立新文件。

touch [-acdmt] filename
-a :更新 atime
-c :更新 ctime,若该文件不存在则不建立新文件
-m :更新 mtime
-d :后面可以接更新日期而不使用当前日期,也可以使用 --date="日期或时间"
-t :后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]

6. cp

复制文件。如果源文件有两个以上,则目的文件一定要是目录才行。

cp [-adfilprsu] source destination
-a :相当于 -dr --preserve=all
-d :若来源文件为链接文件,则复制链接文件属性而非文件本身
-i :若目标文件已经存在时,在覆盖前会先询问
-p :连同文件的属性一起复制过去
-r :递归复制
-u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制
--preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了

7. rm

删除文件或目录。

rm [op] target
-f :强制删除(force),系统将不再询问
-i :和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息询问是否删除
-r :递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件
-v :输出删除信息,把删除的文件打印出来

8. mv

移动文件。

mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

修改权限

可以将一组权限用数字来表示,此时一组权限的 3 个位当做二进制数字的位,从左到右每个位的权值为 4、2、1,即每个权限对应的数字权值为 r : 4、w : 2、x : 1。

chmod [-R] xyz dirname/filename

示例:将 .bashrc 文件的权限修改为 -rwxr-xr–。

chmod 754 .bashrc

也可以使用符号来设定权限。

chmod [ugoa]  [+-=] [rwx] dirname/filename
- u:拥有者
- g:所属群组
- o:其他人
- a:所有人
- +:添加权限
- -:移除权限
- =:设定权限

示例:为 .bashrc 文件的所有用户添加写权限。

chmod a+w .bashrc

符号链接

1. 实体链接

在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。

删除任意一个条目,文件还是存在,只要引用数量不为 0。

有以下限制:不能跨越文件系统、不能对目录进行链接。

2. 符号链接

符号链接文件保存着源文件所在的绝对路径,在读取时会定位到源文件上,可以理解为 Windows 的快捷方式。

当源文件被删除了,链接文件就打不开了。

因为记录的是路径,所以可以为目录建立符号链接。

mklink [[/D] | [/H] | [/J]]  Link  Target
- /D				创建目录符号链接。默认为文件符号链接。
- /H				创建硬链接而非符号链接。
- /J				创建目录联接。常用
- Link				指定新的符号链接名称。
- Target			指定新链接引用的路径(相对或绝对)。

删除链接可用rm或者rmdir 命令

获取文件内容

1. cat

取得文件内容。

cat [-AbEnTv] filename
-n :打印出行号,连同空白行也会有行号,-b 不会

2. tac

是 cat 的反向操作,从最后一行开始打印。

3. more

和 cat 不同的是它可以一页一页查看文件内容,比较适合大文件的查看。

4. less

和 more 类似,但是多了一个向前翻页的功能。

5. head

取得文件前几行。

head [-n number] filename
-n :后面接数字,代表显示几行的意思

6. tail

是 head 的反向操作,只是取得是后几行。

7. od

以字符或者十六进制的形式显示二进制文件。

解压缩

压缩指令只能对一个文件进行压缩,而打包能够将多个文件打包成一个大文件。tar 不仅可以用于打包,也可以使用 gzip、bzip2、xz 将打包文件进行压缩。

tar [-z|-j|-J] [cv] [-f 新建的 tar 文件] filename...  ==打包压缩
tar [-z|-j|-J] [tv] [-f 已有的 tar 文件]              ==查看
tar [-z|-j|-J] [xv] [-f 已有的 tar 文件] [-C 目录]    ==解压缩
-z :使用 zip;
-j :使用 bzip2;
-J :使用 xz;
-c :新建打包文件;
-t :查看打包文件里面有哪些文件;
-x :解打包或解压缩的功能;
-v :在压缩/解压缩的过程中,显示正在处理的文件名;
-f : filename:要处理的文件;
-C 目录 : 在特定目录解压缩。

查看进程

1. ps

查看某个时间点的进程信息。

示例:查看自己的进程

ps -l

示例:查看系统所有进程

ps aux

示例:查看特定的进程

ps aux | grep threadx

2. pstree

查看进程树。

示例:查看所有进程树

pstree -A

3. top

实时显示进程信息。

示例:两秒钟刷新一次

top -d 2

4. netstat

查看占用端口的进程

示例:查看特定端口的进程

netstat -anp | grep port

参考资料