Linux基础命令

1.  常用的目录操作命令

命令:                  功能:

ls                        显示文件和目录列表     

cd                       切换目录

pwd                    显示当前工作目录

mkdir                  创建目录

rmdir                   删除空目录

tree                     显示目录树

 

2. 当前工作目录

可用 cd 命令来切换目录

一些特殊字符的特殊含义:

.” 表示当前目录

..” 表示当前目录的上一级目录(父目录)

-” 表示用 cd 命令切换目录前所在的目录

~” 表示用户主目录的绝对路径名

# cd  -     --在上一次工作的目录和当前目录之间切换

# cd  ..    --返回上一级目录

# cd  ~     --返回root用户家目录(仅限root用户使用)

 

3.路径 (path)

路径是指文件或目录在文件系统中所处的位置

绝对路径:

              以斜线(/)开头

              描述到文件位置的完整说明

              任何时候你想指定文件名的时候都可以使用

        相对路径:

不以斜线(/)开头

 指定相对于你的当前工作目录而言的位置

 可以被用作指定文件名的简捷方式

4. ls命令

显示文件或目录信

选项:     说明:

-a      列出目录下的所有文件,包括以 . 开头的隐含文件。

-l      列出文件的详细信息,通常称为“长格式”。

-d      输入参数是目录时,只显示该目标本身。

-A      显示除“.”和“..”外的所有文件。

-R      递归地列出所有子目录下的文件。

-h      以人类易读的单位显示文件大小。

-S      以文件大小排序输出。

-t      以时间排序输出。

-i      输出文件前先输出文件系列号(i节点号:i-node num-ber)。

 

5. mkdir 、rmdir和tree命令举例

mkdir  创建目录命令

  mkdir  aa                      --在当前目录创建一个aa目录

       mkdir  aa bb  cc           --在当前目标创建多个目录

  mkdir  /opt/aa              --在opt目录下创建aa目录

  mkdir -p  a/b/a/d         --创建多级目录,创建多级目录不加-p参数会报错

rmdir  删除空目录

  rmdir  aa                       --删除当前目标下的aa目录,-f参数表示强制删除

tree  显示目录树

  yum -y install tree        --安装tree目录树

  tree  /var/www/html    --显示/var/www/html目录树

 

6. 常用的文件操作命令

命令:                功能:

touch                 创建一个空文件

cp         复制文件或目录

mv        移动文件或目录、文件或目录改名

rm         删除文件或目录

ln        建立链接文件

 

6.1  rename  批量重命名命令

例:  touch {a..z}.txt

    rename .txt  .php *.txt     --将当前目录下的所有.txt结尾文件改为.php结尾文件  

6.2  cp   命令

例:  cp 1.txt  /                         --将当前目录下的1.txt文件复制到 / 目录下

    cp  -r   aa  /                      --将当前目录下的aa目录复制到 / 目录下,拷目录需要加-r参数

6.3   mv  命令

例:  mv  1.txt   /                       --将当前目录下的普通文件1.txt移动到 / 目录下

    mv   aa  /                          --将当前目录下的aa目录移动到 / 目录下

注意:cp和mv命令都有“重命名的作用”

例:   cp  aa   bb                       --在复制的同时将aa文件改名为bb

     mv  bb   cc        --在移动的同时将bb文件改名为cc

6.4  rm  命令

例: rm a.txt                             --删除a.txt文件,会提示你是否删除?

   rm -f  a.txt                        -- -f参数强制删除文件,不会有提示

   rm -rf  abc                        --强制删除目录,不会有提示

6.5 文件的时间戳

  GNU/linux 文件的3种类型的时间戳:

  mtime:最后修改时间(modify time),文件内容发生改变

  ctime:状态改变时间(change time),元数据,文件属性

  atime:最后访问时间(access time)

stat  命令                                    --查看文件的元数据(文件本身的信息)

6.6 ln 命令

建立链接文件,链接文件分为两种。

1. 硬链接

  为一个文件设置一个目录项,而不是新建一个文件,所以硬链接是共用原始文件的i节点号,每当为一个文件创建一个硬链接都会在长格式列表的第二列种增加一位数,没有硬链接的文件则显示为1,。硬链接的好处:创建硬链接后,只要inode号不为0,那么该文件就不会被删除。

注意:不能对目录创建硬链接;不能跨文件系统创建硬链接。

2. 软链接(符号链接)

  软链接相当于Windows系统上的快捷方式,删除符号链接后不会对源文件造成影响。

  符号链接和硬链接的区别就是,符号链接是确确实实新建了一个文件,只是把这个文件的内容指向了我们想要的文件而已,所以符号链接拥有自己的i节点号,如果把源文件删掉了,那么我们做的软链接就会失去效果,不过如果你在之前的路劲上再次创建和之前那个文件相同名称的文件,该软链接将会自动找到该文件并链接起来。

ln 命令    --创建链接命令,不加任何参数,就是创建硬链接文件,加 -s 参数创建软连接。

  命令格式: ln [选项] 源文件 目标文件

例:ln /test/a.txt b.txt   --为/test目录下的a.txt文件在当前目录创建b.txt的硬链接。

  ln -s /test/1.txt 2.txt  --为/test目录下的1.txt文件在当前目录创建2.txt的软链接。

 

7. 文本显示命令

命令:           举例:

cat /etc/passwd      滚屏显示文件/etc/passwd的内容

cat -s /etc/passwd    将多个相邻的空行合并成一行显示

cat -b /etc/passwd    从1行开始不以空行进行编号显示

cat -n /etc/passwd    从1行开始进行编号显示

more /etc/passwd     分屏显示文件/etc/passwd的内容

more +10 /etc/passwd   从第10行分屏显示文件/etc/passwd的内容

less /etc/passwd     分屏显示文件/etc/passwd的内容

head -4 /etc/passwd    显示文件/etc/passwd前4行的内容

tail -4 /etc/passwd   显示文件/etc/passwd后4行的内容

tail -n +10 /etc/passwd  显示文件/etc/passwd从10行开始到文件尾的内容

tail -f /var/log/messages  跟踪显示不断增长的文件结尾内容

  

8. 文本编辑器 vim

 

 

1.一般普通模式:

移动光标的方法

--  h 向左箭头键(←) 光标向左移动一个字符

--  j 向下箭头键(↓) 光标向下移动一个字符

--  k 向上箭头键(↑) 光标向上移动一个字符

--  l 向右箭头键(→) 光标向右移动一个字符

--  ctrl+b 向上翻页  = page up

ctrl+f 向下翻页  = page down

    +       光标移动到非空格符的下一行

    -       光标移动到非空格符的上一行

--  0或home键      行首

--  $或end键       行尾

--  G       文件最后一行

--  gg      文件第一行

    n<Enter>    移动n行

复制粘贴和删除

    x,X        x向后删除一个字符,X向前删除一个字符

--  dd          删除一行

    ndd         删除n行

    dG          删除光标所在行到文件最后一行的内容

    d$          删除光标所在处,到该行的最后一个字符

    d0          删除光标所在处,到该行的最前面一个字符

--  yy          复制一行

--  nyy         复制n行    yank

    p,P        粘贴    paste

    J           将光标所在行与下一行的数据结合成同一行

--  u           还原,撤销

--  ctrl+r      重做

2.插入模式:

--  i,I            i光标所在处插入,I光标所在行行首插入

    o,O            o下一行插入,O上一行插入

    a,A            a光标所在下一个字符处插入,A光标所在行行尾插入

    r,R            r替换一个字符,R会一直替换光标所在的文字,直到按下ESC为止

--  [Esc]           退出编辑模式,回到一般普通模式中

3.命令行模式

查找

--  /xxx或者?xxx        查找某个单词

    n           向下接着找

    N           向上接着找

替换

--  :n1,n2s/old/new/g   从n1到n2行将old替换成new,g表示替换所有的

    :1,$s/old/new/g 或:%s/old/new/g    将整个文件的old替换成new

    :1,$s/old/new/gc    c=确认

        y/n/a/q/l/^E/^Y

        y:替换当前内容

        n:不替换

        a:替换所有

        q:退出

        l:替换当前内容,并退出

        Ctrl + E :向后查找

        Ctrl + Y :向前查找

 

    :w          存档

    :q!         quit,退出,!,强制

--  :wq!        保存并退出,加了!表示强制保存退出

--  :x          保存并退出

--  ZZ          保存并退出

--  ZQ          不保存退出

    :w [filename]       另存为

    :r [filename]       将另外一个文件读入到正在编辑的文件

    :n1,n2 w [filename] 将n1到n2的内容储存成filename文件

--  :set nu         显示行号

--  :set nonu       取消行号

vim 环境设定:      /etc/vimrc      vim配置文件

 

9.  匹配、排序及显示指定内容

  1. grep命令    过滤、筛选

命令格式:grep  [选项] 查找模式 [文件名1,文件名2...]

     grep [选项] [-e 查找模式|-f 文件] [文件名1...]

常用选项:        说明:

-c                           只显示匹配的行的次数

-i                                 搜索时不区分大小写

-n                                输出匹配行的行号

-v                                输出不匹配的行(取反)

-r          对目录(子目录)的所以文件递归进行

-l          列出匹配PATTERN的文件名

--color                       对匹配内容高度显示

-A num        同时输出匹配行的后num行

-B num        同时输出匹配行的前num行

-C num        同时输出匹配行的前、后各num行

 

正则表达式的元字符:

2. cut命令      切割文件内容

命令格式:cut [要处理的文件] [选项1] [选项2]

常用参数:-c                --字符

     -d      --指定分隔符

        -f       --列,指顶多少列

     --output-delimiter   --指定输出分隔符

3. sort 命令

命令格式: sort [选项]  文件名

  -u       --去重复项

  -r        --降序排列,默认是升序

  -o       --将排序结果重定向到原文件

  sort默认是把结果输出到标准输出,所以要用重定向才能将结果写入文件,如 sort filename > newfile。但是,如果想把排序结果输出到原文件中用重定向就不行了。而加-o参数就可以将结果写入原文件中了,如 sort filename -o filename

  -n  --以数值排序

  -t和-k  --当一行数据有多列的情况时,可以指定以什么作为分隔符,取第几列的值进行排序,  如 sort -n -t : -k 2 facebook.txt   -t: 指定分隔符  -k: 指定列

 4. uniq 命令

uniq删除文本文件中连续的重复的行

常用选项:

选项

说明

-c

显示输出时,在每行的行首加上该行在文件中出现的次数

-d

只显示重复的行

-f

--skip-fields=n 忽略比较前n个字段

-s

--skip-chars=n  忽略比较前n个字符

-u

--unique    只显示文件中不重复的行

 

10. 比较、统计及查找文件内容

1. comm  命令

对两个以排序好的文件进行一行一行的比较

选项:只有一个

-123   选项1,2和3分别表示不显示comm输出的第一列,第二列和第三列

2. diff  命令

 

diff命令比较两个文本文件,并找出它们的不同,它比comm命令完成更复杂的检查,并且不需要两个文件先排序好。该命令会逐行对两个文件进行比较,然后列出它们的不同之处,还会告诉我们如果要使两个文件相同需要修改它们的哪些地方,如果两个文件完全一致,则不会输出任何内容。

常用选项:

选项

说明

-b

忽略空格造成的差别

-c

输出格式是带上下文的三行格式(不同点上下方各显示三行内容)

-C n

输出格式是带有上下文的n行格式,如: -C 4 输出格式是带有上下文的4行格式

-i

忽略字母的大小写区别

-r

当文件1和文件2都是目录时,递归比较找到的各个子目录

 

 3. wc  命令   统计文本

命令格式: wc [选项] [文件]

常用参数:-c       --统计字节数

     -w   --统计单词个数

     -l   --统计行数

4. find  命令     查找文件命令

命令格式:find 查找路径  [选项]  查找内容

常用选项:-name   --按名字查找

               -i    --忽略字母大小写

       -type      --按文件类型查找

        b:块设备文件(能够随机访问固定大小数据片(chunks)的设备。如:硬盘)

                         d:目录

                      c:字符设备文件(在I/O传输过程中以字符为单位进行传输的设备。如:键盘、打印机)

                         p:管道文件(管道是一个固定大小的缓冲区)

                          l:符号链接文件

                          f:普通文件

      -uid    按uid查找

                  -gid    按gid查找

                   -user   按username查找

                   -group  按groupname查找

                   -perm   通过权限查找

                   -size   通过文件大小查找

                   +n    查找出大于n的文件

                    -n    查找出小于n的文件

按时间查找:

    -mtime  n   --代表n天前的24小时内

                         +n  代表n天前(不包含n天本身的24小时)

                         -n  代表n天内

# find / -mtime 0       --0代表目前当天的24小时

# find / -mtime +1      --修改时间48小时之前

# find . -mtime -1      --修改时间往后推24小时到现在甚至到将来

# find / -mtime  1      --往前推24小时到往前推48小时之内

# find ./ -type f –name “*.log” –mtime +30 –exec rm –rf {}\;  删除当前目录30天前所有.log结尾的文件。

# find / -mmin +30 -mmin -150   --查看30分钟前到150分钟前之内的两个小时内有哪些文件被修改过内容

 

11.  进程管理

1.  ps 命令     查看当前系统运行的进程信息

命令格式:ps [选项]

命令选项:

选项:          说明:

-a        线束系统中与当前终端有关的进程信息

-e        显示系统中所有的进程信息(可用“-A”代替)

-f         显示进程的所有信息

-l         以长格式显示进程信息

-u          以用户为主的进程状态

-x          通常与a这个参数以前使用,可列出较完整信息

 

2. kill  命令     终止一个进程

命令格式:kill [选项]  进程pid

常用选项:-l        列出所有kill命令的选项

     -1  终端断线

       -2  中断(同Ctrl+c)

     -3  退出(同ctrl+\)

       -9       强制终止(最常用)

       -15   终止

     -18     继续进程

     -19     暂停进程

 

 3. job 管理

&                             --后台运行符

例:firefox  http://192.168.1.10 &

vim /etc/passwd     --在这里按下ctrl + z,作用是把job暂停到后台

jobs                         --列出后台job列表,别的终端的看不到

jobs -l       --还要列出pid号

fg %1                      --把1号的job调到前台

kill %1                     --终止1号job

 

4. top  命令

 

uptime  命令              --显示的与top命令显示的第一行相同

 free  命令                 --查看内存使用的情况(实际使用掉的内存=used + buff/cached)

 

12. 系统信息显示命令

常用的系统信息显示命令:

 

命令

功能

hostname

显示主机名称

uname -a

显示操作系统信息

dmesg

显示系统启动信息

lsmod

显示系统加载的内核模块

date

显示系统时间(cal 可以显示系统时间的日历)

env

显示系统环境变量

locale

显示当前语言环境(cat /etc/sysconfig/i18n)

cat /proc/cpuinfo

显示CPU信息

rpm -qa

显示系统已安装的所有软件包

 

 

1. date 命令                           --显示系统时间

如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式,详细格式如下:

%Y : 完整年份 (0000-9999)

%m : 月份 (01-12)

%d : 日 (01-31)

%H : 小时(00-23)

%M : 分钟(00-59)

%S : 秒(00-60)

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

%A : 星期(一-日)

%F : 显示当前的年月日

如果要显示的时间不是当前时间,而是经过运算的时间,则可以用-d选项。

例:显示三年前的时间:

 date "+%Y-%m-%d %H:%M:%S" -d "-3 year"

 用 -s 选项可以设置系统时间:

例:有多种格式

  date -s "20170809 10:10:10"

  date -s "2017-08-09 10:10:10"

  date -s "2017/08/09 10:10:10"

  date -s "8/9/2017 10:10:10"

  date -s "10:10:10 20170809"

2.  passwd  命令           --修改用户密码

例:passwd                  --修改当前用户密码

  passwd test    --修改test用户密码

注意:

1. root用户可以修改所有用户的密码。

2. 普通用户只能自己修改自己的密码,且要知道旧密码才能更改。

 

3. seq  命令                 --产生一个序列

例:seq 1 10

       1 2 3 4 5 6 7 8 9 10

 

 选项: -s                     --在序列间加入分隔符

例:seq -s ":" 1 10

       1:2:3:4:5:6:7:8:9:10

选项: -w                      --序列的宽度(位数)相等

例:seq -w -s ":" 1 2 50   --产生一串位数相等且步长为2的数字,echo的写法步长在后面。

       001:003:005:007:009:011:013:015:017:019:021:..

 

13. 常用的资源显示命令

命令

功能

top

显示当前系统中耗费资源最多的进程

free

显示当前内存的使用情况(cat /proc/meminfo)

du -h

显示指定的文件(目录)已使用的磁盘空间的总量

df -h

显示文件系统磁盘空间的使用情况

uptime

显示系统运行时间、用户数、负载

fdisk -l

查看所有分区

mount

查看已经挂装的分区

swapon -s

查看所有交换分区

ps -ef

查看所有进程

pstree

显示进程树

chkconfig --list

列出所有系统服务

 

14. 常用的网络信息显示命令

 

命令

功能

ifconfig

显示网络接口信息

route

显示系统路由表

iptables -nL

显示包过滤防火墙的规则设置

netstat

显示网络状态信息

cat /etc/resolv.conf

显示DNS配置

cat /etc/hosts

显示静态主机解析表

 

 

15. 文件打包和压缩命令

1.  gzip  命令

命令格式:gzip [参数] 文件

常用参数:

  -d          --解开压缩文件

  -v   --显示执行过程

  -c     --把压缩后的文件输出到标准设备,不改变源文件

例:

gzip 1.txt                     --压缩(不保留源文件)

gzip -c 2.txt > 2.txt.gz  --压缩并保留源文件

zcat 2.txt.gz                 --查看gzip压缩包文件内容

mkdir /test

touch /test/{a..g}.txt

gzip /test/*

gzip -d /test/*               --解压

 

2. bzip2  命令

命令格式:bzip2 [参数] 文件

常用参数:

  -k       --保留源文件,默认压缩或解压后是删掉原始文件的

  -v       --显示执行过程

  -d       --解压文件

  -c       --吧压缩后的文件输出到标准输出设备,不改变源文件

例:

bzip2 1.txt                 --压缩(不保留源文件)

bzip2 -k 1.txt             --压缩(保留源文件)

bzcat 1.txt.bz2           --查看bzip2压缩包文件内容

bzip2 -c 1.txt > 1.txt.bz2    --压缩(保留源文件)

bzip2 -d 1.txt.bz2       --解压

 

3. zip  命令

命令格式:zip  [参数]  文件

常用参数:

  -r                            --递归压缩子目录下所有文件

  -d                         --指定文件解压到某个路径下

例:

zip -r test.zip /test                   --压缩test目录,后面为源文件,压缩后会保留源文件

zip -r test.zip file1 file2 file3     --zip 命令能同时处理多个文件和目录,这个命令是将file1 file2 file3一起压缩放入test.zip 中

zip 3.txt.zip 3.txt                       --压缩,后面为源文件,压缩后会保留源文件

unzip 3.txt.zip                           --解压(解压在当前目录,并保留压缩包)

unzip 3.txt.zip -d /opt                --指定解压到/opt目录下

 

4. tar  命令                              --文件的打包和解压

命令格式:tar  [参数]  目录

常用参数:

  -c                                      --用于创建一个新的存档文件,可理解为打包

  -v                                      --显示执行过程

  -f                                    --使用filename指定存档文件名(接文件)

  -j                                       --调用bzip

  -z                                      --调用gzip进行解压或者压缩

  -x                                      --解压

  -t                                       --用于列出一个存档文件中的文件名

例:

tar -cvf test.tar /test                            --打包(前面是打包后的名称,后面是源文件),没有压缩

tar -tf test.tar                                      --列出 test.tar 中的文件

tar -xvf test.tar                                    --解压(默认解压到当前路径下)

tar -xvf test.tar -C /tmp/                      --指定解压到/tmp路径下

tar cjvf test.tar.bz2 /test/                     --打包,并用bzip2压缩

tar xjvf test.tar.bz2                              --对bzip2进行解压

tar czvf  test.tar.gz /test/                     --打包,并用gzip压缩

tar xzvf  test.tar.gz                              --对gzip进行解压

tar xvf test.tar.gz -C /opt/                    --也可以不指定,它会自动调用压缩工具解压

tar xvf test.tar.bz2 -C /opt/

tar cvf test1.tar /test/ --exclude=/test/1.txt    --排除某些文件打包

tar cf test2.tar /test/ --exclude=/test/1.txt      --exclude=/test/2.txt   --排除多个文件

tar cf test3.tar /test/ --exclude=/test/*.txt      --使用通配符,排除相似的一批文件

 

netstat [选项]

常用参数:
-c 每隔1秒就重新显示一遍,直到用户中断它

-l 指Linux
-i 显示所有网络接口的信息,格式同“ifconfig -e”
-n 以网络IP地址代替名称,显示出网络连接情形
-r 显示核心路由表,格式同“route -e”
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况
-v 显示正在进行的工作

-a 显示所有socket,包括正在监听的

netstat –anlt       --用来查看linux的TCP端口使用情况

 

chage [参数] user

chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限。它可以修改账号和密码的有效期。

常用参数:

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-08-29 11:06  Beyond_Bug  阅读(301)  评论(0)    收藏  举报