Linux 常用指令

常用指令

命令参数注释
ls显示文件或目录
-l$列出文件详细信息l(list)
-a列出当前目录下所有文件及目录,包括隐藏的a(all)
-p创建目录,若无父目录,则创建p(parent)
cd切换目录
touch创建空文件
echo查看文件内容
cp拷贝
mv移动或重命名
rm删除文件
-r递归删除,可删除子目录及文件
-f强制删除
find在文件系统中搜索某文件
wc统计文本中行数、字数、字符数
grep在文本文件中查找某个字符串
rmdir删除空目录
tree树形结构显示目录,需要安装tree包
pwd显示当前目录
ln创建链接文件
more、less分页显示文本文件内容
head、tail显示文件头、尾内容
ctrl+alt+F1命令行全屏模式

在Linux中查看文件的命令有

catmorelessheadtail

cat

  • cat 显示文件连接文件内容的工具
    cat 是一个文本文件(查看)和(连接)工具,通常与more搭配使用,与more不同的是cat可以合并文件。查看一个文件的内容,用cat比较简单,就是cat后面直接接文件名。
    $cat /usr/local/logs/a.log
  • cat 语法结构
    cat [选项] [文件]...
------选项--------------------注释----
-A, --show-all           等价于 -vET 
-b, --number-nonblank    对非空输出行编号 
-e                       等价于 -vE 
-E, --show-ends          在每行结束处显示 $ 
-n, --number             对输出的所有行编号 
-s, --squeeze-blank      不输出多行空行 
-t                       与 -vT 等价 
-T, --show-tabs          将跳格字符显示为 ^I 
-u                       (被忽略) 
-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 
--help                   显示此帮助信息并离开  
  • cat 查看文件内容实例
$cat /etc/profile    注:查看/etc/目录下的profile文件内容; 
$cat -b /etc/fstab    注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始; 
$cat -n /etc/profile    注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示; 
$cat -E /etc/profile    注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号; 

cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;  
$cat -n /etc/profile 
$nl /etc/profile 

cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;  
$cat /etc/fstab /etc/profile 

cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;  
$cat /etc/fstab /etc/profile | more 

more

  • more 文件内容或输出查看工具
    more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比
    $more /etc/profile
  • more 的语法、参数和命令
    more [参数选项] [文件]
--参数----------注释---------------
+num           从第num行开始显示; 
-num           定义屏幕大小,为num行; 
+/pattern      从pattern 前两行开始显示; 
-c             从顶部清屏然后显示; 
-d             提示Press space to continue, 'q' to quit.(按空格键继续,按q键退出),禁用响铃功能; 
-l             忽略Ctrl+l (换页)字符; 
-p             通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似; 
-s             把连续的多个空行显示为一行; 
-u             把文件内容中的下划线去掉退出more的动作指令是q 
  • more 的参数应用举例
$more -dc /etc/profile       注:显示提示,并从终端或控制台顶部显示; 
$more +4 /etc/profile        注:从profile的第4行开始显示; 
$more -4 /etc/profile        注:每屏显示4行; 
$more +/MAIL /etc/profile    注:从profile中的第一个MAIL单词的前两行开始显示; 
  • more 的动作指令
我们查看一个内容较大的文件时,要用到more的动作指令,比如
ctrl+f(或空格键)是向下显示一屏,  
ctrl+b是返回上一屏;  
Enter键可以向下滚动显示n行,要通过定义,默认为1行; 

Enter        向下n行,需要定义,默认为1行;  
Ctrl+f       向下滚动一屏;  
空格键       向下滚动一屏; 
Ctrl+b      返回上一屏;  
=           输出当前行的行号; 
:f          输出文件名和当前行的行号; 
v           调用vi编辑器;  
! 命令      调用Shell,并执行命令; 
q      退出more当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;  

less

  • 进入less后,我们得学几个动作,这样更方便 我们查阅文件内容;最应该记住的命令就是q,这个能让less终止查看文件退出
--动作----------

回车键    向下移动一行; 
y    向上移动一行;  
空格键    向下滚动一屏; 
b    向上滚动一屏;  
d    向下滚动半屏;  
h    less的帮助;  
u    向上洋动半屏;  
w    可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;  
g    跳到第一行;  
G    跳到最后一行;  
p n%    跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;  
/pattern    搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词; 
v    调用vi编辑器;  
q    退出less  
!command    调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件; 

就less的动作来说,内容太多了,用的时候查一查man less。

  • head 工具,显示文件内容的前几行
    head 是显示一个文件的内容的前多少行;
    用法比较简单:
    head -n 行数值 文件名;
    比如我们显示/etc/profile的前10行内容,应该是: $head -n 10 /etc/profile

tail

  • tail 是显示一个文件的内容的最后多少行
    tail -n 行数值 文件名;
比如我们显示/etc/profile的最后5行内容,应该是:   
$tail -n 5 /etc/profile 
$tail -f /var/log/syslog   显示文件 syslog 的后十行内容并在文件内容增加后,且自动显示新增的文件内容。 
备注:最后一条命令tail非常有用,尤其在监控日志文件时,可以在屏幕上一直显示新增的日志信息。 

grep

  • Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
    grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
  • 格式 grep [options]
  • [options]主要参数
    -c:只输出匹配行的计数。
    -I:不区分大 小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及 行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。
  • pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    >:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    。:所有的单个字符。
    *:有字符,长度可以为0。
  • grep命令使用简单实例
#显示所有以 t 开头的文件中, 包含 test 的行:
[root@Finn tmp]# ll
-rw-r--r-- 1 root root  10 Jan 22 14:41 tee.txt
-rw-r--r-- 1 root root 159 Jan 22 14:39 test.txt

[root@Finn tmp]# grep 'test' t*
tee.txt:tee-test  
test.txt:test  
test.txt:test1  
test.txt:test2

#显示在 a , b , c 文件中匹配 test 的行: 
[root@Finn tmp]# ll
-rw-r--r-- 1 root root 13 Jan 22 14:46 a
-rw-r--r-- 1 root root 44 Jan 22 14:47 abc
-rw-r--r-- 1 root root 11 Jan 22 14:46 b
-rw-r--r-- 1 root root 20 Jan 22 14:46 c
[root@Finn tmp]# grep 'test' a b c
a:aaaaaaa-test  
b:bbbb- test  
c:cccccc  ---  test::

#显示所有包含每个字符串至少有5个连续小写字符的字符串的行: 
[root@Finn tmp]# cat a
aaaaaaa-test  
aaaaaa  
bbbbbb  
ccc  
dddd  
eeeee  
q  
w  
tr  
asd

[root@Finn tmp]# grep '[a-z]\{5\}' a
aaaaaaa-test  
aaaaaa  
bbbbbb  
eeeee

#显示匹配内容的前或后或前后行的内容
[root@Finn tmp]# cat line 
000000  
111111  
222222  
333333  
444444  
555555  
666666  
777777  
888888  
999999

#可以显示匹配内容以及后面的1行内容
[root@Finn tmp]# cat line | grep '55' -A 1
555555  
666666  
#可以显示匹配内容以及前面的2行内容
[root@Finn tmp]# cat line | grep '55' -B 2
333333  
444444  
555555  
#可以显示匹配内容以及前后面的3行内容
[root@Finn tmp]# cat line | grep '55' -C 3
222222  
333333  
444444  
555555  
666666  
777777  
888888  


系统管理命令

命令注释
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 命令不会用了,找男人 如:man ls
clear 清屏
alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

vim使用

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。  
命令模式下:
:q                   退出
:q!                  强制退出
:wq                  保存并退出
:set number          显示行号
:set nonumber        隐藏行号
/apache              在文档中查找apache 按n跳到下一个,shift+n上一个
yyp                  复制光标所在行,并粘贴  
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)  

文件权限管理

三种基本权限
R     读      数值表示为4  
W     写      数值表示为2  
X     可执行  数值表示为1

[root@Finn tmp]# ll
-rw-r--r-- 1 root root 54 Jan 22 14:50 a
-rw-r--r-- 1 root root 44 Jan 22 14:47 abc
-rw-r--r-- 1 root root 11 Jan 22 14:46 b
-rw-r--r-- 1 root root 20 Jan 22 14:46 c
-rw-r--r-- 1 root root 70 Jan 22 15:21 line

-rw-rw-r--一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。    所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。      所以用数值表示为4+2=6
第八九十个字符“r--”表示其他用户权限。          所以用数值表示为2
所以操作此文件的权限用数值表示为642

#更改权限
$sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名 
例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765

$sudo chmod u+x g+w o+r  filename
上面的例子可以用数值表示
$sudo chmod 765 filename

#增加可执行属性
$sudo chmod +x

itFinn

Keep Think Different