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