Linux基础

Linux文件目录结构

Bin:该目录存储二进制文件,文件都是可以被运行的

Dev:该目录中主要存放外接设备。在其中的外接设备是不能直接使用的,需要挂载

Etc:该目录主要存储一些配置文件

Home:表示除了root用户以外其他用户的家目录,类似于window下的User/用户目录

Proc:process,该目录主要存储的是Linux运行时候的进程

Root:该目录是root用户自己的家目录

Sbin:super binary,该目录存放一些可以执行的二进制文件,但是必须要有super权限的用户才能执行

Tmp:当系统运行时产生的临时文件会在这个目录存着

Usr:存放用户自己安装的软件

Var:存放的程序/系统的日志文件的目录

Mnt:当外接设备需要挂载时,就需要挂载到Mnt目录下

路径:

相对路径:../【上一级目录下】

绝对路径:从根“/”开始寻找对应路径

Linux的基本指令

Linux 通用的格式: #指令主体 [选项] [操作对象],一个指令只能包含一个指令主体,可以包含多个选项,多个操作对象

1、 ls(list):列出当前工作目录下的所有文件和文件夹名称

常用选项

// -l:表示以详细列表得形式进行展示

//-a:表示显示所有得文件/文件夹(包括隐藏文件/文件夹【一般以“.”开头】)

//-h:在显示文档大小时以可读性较高的形式显示

2、 pwd(print working directory):打印当前工作目录(绝对路径)

3、 cd(change directory):用于切换当前工作目录

4、 mkdir (make directory):创建目录【路径可以是直接的文件名也可以是路径】

mkdir /root/yu    //在root目录下创建一个叫yu的文件夹

//-p:一次创建多层不存在的目录

5、 touch:创建文件  【路径可以是直接的文件名也可以是路径】

6、 cp(copy):复制文件/文件夹到指定位置

cp 被复制的文档路径 文档被复制到的路径

//-r:复制目录,表示递归复制

7、 mv(move):移动文档到新的位置,类似剪切

 mv 需要移动的文档路径 需要保存的位置路径

//重命名也用mv

8、 rm(remove)移除,删除

//-f:强制删除,不提示

//-r:删除目录

//*表示通配符,意思表示任意的字符,Linux*则表示只要文件以linux开头,后续字符则不管。

9、 vim:文本编辑器

10、输出重定向:将一些命令的执行结果保存到文件中进行后续的分析

//>:覆盖输出

//>>:追加输出

11、cat:直接打开文件/对文件进行合并

cat 待合并的文件路径  待合并的文件路径2 ……待合并的文件n > 合并之后的文件路径

进阶指令

1、 df:查看磁盘空间

// -h:可读性较高的形式展示大小

2、 free:查看内存情况

//-m:表示以mb为单位查看

3、 head:查看一个文件的前n行,如果不指定n,默认显示前10行

4、 tail:查看一个文件末n行,如果不指定,默认显示后10行

//-f:动态显示文件后n行

5、 less:查看文件,以较少的内容进行输出

6、 wc:统计文件内容信息

//-l:行数

//-w:字数

//c:字节数

VIM

#vim 文件路径   //打开指定文件

#vim +数字 文件的路径  //打开指定的文件,并且将光标移动到指定行

#vim +/关键词 文件路径 //打开指定的文件,并且高亮显示关键词

命令模式

1、 光标移动

光标移动到行首 :shift+6

光标移动到行尾 :shift+4或$

光标移动到首行 :gg

光标移动到末行 :G

向上翻屏 :ctrl+b

向下翻屏:ctrl+f

2、 复制操作

复制光标所在行 yy

粘贴:p

撤销:u

3、 搜索

# /关键词

在搜索结果中切换上/下个结果:N/n

4、 替换

:s/搜索的关键词/新的内容    //替换所在光标行的第一个内容

:s/搜索的关键词/新的内容/g    //替换所在光标行的所有内容

:%s/搜索的关键词/新的内容/g    //替换整个文档的内容

lsof

  lsof (List Open Files)是 linux 下的一个非常实用的系统级的监控、诊断工具。Linux下一切皆文件,可以用lsof获取任何被打开文件的信息

1、查看文件、设备被哪些进程占用

1    $ lsof /dev/tty1
2    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
3    bash       1770 jian    0u   CHR    4,1      0t0 1045 /dev/tty1
4    bash       1770 jian    1u   CHR    4,1      0t0 1045 /dev/tty1
5    bash       1770 jian    2u   CHR    4,1      0t0 1045 /dev/tty1
6    bash       1770 jian  255u   CHR    4,1      0t0 1045 /dev/tty1
7    startx     1845 jian    0u   CHR    4,1      0t0 1045 /dev/tty1
8    startx     1845 jian    1u   CHR    4,1      0t0 1045 /dev/tty1
9    ...

2、指定目录、挂载点,查看哪些进程打开了其下的文件

1    $ lsof /data/
2    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
3    bash    15983 jian  cwd    DIR    8,5     4096 8252 /data/backup
4    ...

3、列出某个目录下被打开的文件

1     $ lsof +D /var/log/
2     
3    COMMAND   PID   USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
4    rsyslogd  488 syslog   1w   REG    8,1     1151 268940 /var/log/syslog
5    rsyslogd  488 syslog   2w   REG    8,1     2405 269616 /var/log/auth.log
6    console-k 144   root   9w   REG    8,1    10871 269369 /var/log/ConsoleKit/history

4、列出被指定进程名打开的文件

01    $ lsof -c ssh -c init
02     
03    COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
04    init         1       root  txt    REG        8,1   124704  917562 /sbin/init
05    init         1       root  mem    REG        8,1  1434180 1442625 /lib/i386-linux-gnu/libc-2.13.so
06    init         1       root  mem    REG        8,1    30684 1442694 /lib/i386-linux-gnu/librt-2.13.so
07    ...
08    ssh-agent 1528 lakshmanan    1u   CHR        1,3      0t0    4369 /dev/null
09    ssh-agent 1528 lakshmanan    2u   CHR        1,3      0t0    4369 /dev/null
10    ssh-agent 1528 lakshmanan    3u  unix 0xdf70e240      0t0   10464 /tmp/ssh-sUymKXxw1495/agent.1495

5、指定进程号,查看该进程打开的文件

01    $ lsof -p 2064
02    COMMAND  PID USER   FD   TYPE     DEVICE SIZE/OFF    NODE NAME
03    firefox 2064 jian  cwd    DIR        8,6     4096 1571780 /home/jian
04    firefox 2064 jian  rtd    DIR        8,6     4096       2 /
05    firefox 2064 jian  txt    REG        8,6    44224 1985670 /usr/lib/firefox-12.0/firefox
06    firefox 2064 jian  mem    REG        8,6 14707012  925361 /usr/share/fonts/chinese/msyhbd.ttf
07    firefox 2064 jian  mem    REG        8,6 15067744  925362 /usr/share/fonts/chinese/msyh.ttf
08    firefox 2064 jian  mem    REG        8,6 16791251 1701681 /usr/share/fonts/wenquanyi/wqy-zenhei.ttc
09    firefox 2064 jian  mem    REG       0,16 67108904   10203 /dev/shm/pulse-shm-3021850167
10    ...

6、查看指定端口有哪些进程在使用

1    $ lsof -i:22
2    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
3    sshd    1569 root    3u  IPv4  10303      0t0  TCP *:ssh (LISTEN)
4    sshd    1569 root    4u  IPv6  10305      0t0  TCP *:ssh (LISTEN)
5    ...

7、查看指定应用程序打开的文件

1    $ lsof -c firefox
2    COMMAND  PID USER   FD   TYPE     DEVICE SIZE/OFF    NODE NAME
3    firefox 2064 jian  cwd    DIR        8,6     4096 1571780 /home/jian
4    firefox 2064 jian  rtd    DIR        8,6     4096       2 /
5    firefox 2064 jian  txt    REG        8,6    44224 1985670 /usr/lib/firefox-12.0/firefox
6    firefox 2064 jian  mem    REG        8,6 14707012  925361 /usr/share/fonts/chinese/msyhbd.ttf
7    firefox 2064 jian  mem    REG        8,6 15067744  925362 /usr/share/fonts/chinese/msyh.ttf
8    firefox 2064 jian  mem    REG        8,6 16791251 1701681 /usr/share/fonts/wenquanyi/wqy-zenhei.ttc
9    ...

PS

  PS(process status)用来列出系统中当前运行的那些进程

  linux上进程有5种状态: 
    1. 运行(正在运行或在运行队列中等待) 
    2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
    3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
    4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 
    5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 
  ps工具标识进程的5种状态码: 
    D 不可中断 uninterruptible sleep (usually IO) 
    R 运行 runnable (on run queue) 
    S 中断 sleeping 
    T 停止 traced or stopped 
    Z 僵死 a defunct (”zombie”) process 

  推荐使用命令 ps –ef 

root@R740-2-3:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 9月12 ?       00:44:16 /sbin/init splash
root         2     0  0 9月12 ?       00:00:05 [kthreadd]
root         4     2  0 9月12 ?       00:00:00 [kworker/0:0H]
root         6     2  0 9月12 ?       00:00:00 [mm_percpu_wq]
root         7     2  0 9月12 ?       00:15:15 [ksoftirqd/0]
root         8     2  0 9月12 ?       02:42:25 [rcu_sched]
root         9     2  0 9月12 ?       00:00:00 [rcu_bh]
root        10     2  0 9月12 ?       00:00:29 [migration/0]
root        11     2  0 9月12 ?       00:00:17 [watchdog/0]

压缩与解压缩

 zip命令

$zip -r myfile.zip 
// 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.

$unzip -o -d /home/sunny myfile.zip
// 把myfile.zip文件解压到 /home/sunny/
// -o:不提示的情况下覆盖文件;
// -d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

 tar命令

$tar –cvf jpg.tar *.jpg 
//将目录里所有jpg文件打包成jpg.tar

$tar –czf jpg.tar.gz *.jpg 
//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

$tar –xvf file.tar 
//解压 tar包

$tar -xzvf file.tar.gz
 //解压tar.gz
原文地址:https://www.cnblogs.com/yuxiaoba/p/9382326.html