目录操作
Linux 默认目录结构
以下为 Linux 系统默认的目录结构,加粗部分为比较重要的目录,平时应注意不要误删。
- /bin:bin 是 Binary 的缩写,这个目录存放着最经常使用的命令。
- /boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev:dev 是 Device(设备) 的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。
- /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是 linux2.6 内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs。sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- /tmp:这个目录是用来存放一些临时文件的。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
Linux 特殊目录表示
在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。
/
:代表根目录.
:代表当前的目录,也可以使用./
来表示..
:代表上一层目录,也可以../
来代表~
:用户默认登录后进入的就是~
,为用户主目录,一般用来存放用户的文件.目录或文件名
:表示这个目录或文件是一个隐藏目录或文件
创建目录
使用 mkdir
命令创建目录,如:
mkdir $HOME/test
$HOME
即 ~
用户主目录,一般用户的主目录在 /home
下,比如用户 user 的主目录就是 /home/user
,可以用 ~user
表示;而系统管理员的主目录在 /root
。
可以 echo $HOME
查看当前的 $HOME
目录是什么。
切换目录
使用 cd
命令切换目录
- 切换到指定目录:
cd $HOME/test
- 切换到上一级目录:
cd ../
或cd ..
- 进入根目录
/
:cd /
- 进入用户主目录
~
:cd ~
移动目录
使用 mv
命令移动目录
mv $HOME/test /var/tmp
前面为要移动的目录位置,后面为要移动到哪个目录下。
删除目录
使用 rm -rf
命令删除目录,如:
rm -rf /var/tmp/testFolder
参数:
-f
: 强制删除文件或目录,不进行提醒-r
或-R
:递归处理,将指定目录下的所有文件与子目录一并处理-i
:删除已有文件或目录之前先询问用户
查看目录下的文件
使用 ls
命令查看目录下所有文件和文件夹
- 查看当前目录下的文件和文件夹:
ls
- 查看指定目录下的文件和文件夹:
ls $HOME/test
- 查看目录下的文件和文件夹和详情(包括权限,时间等):
ll
;即ls -l
命令的缩写
文件操作
创建文件
使用 touch
命令创建文件
touch $HOME/test/testFile
复制文件
使用 cp
命令复制文件,如:
cp $HOME/test/testFile $HOME/test/testFile2
在 test 目录下复制了一份 testFile
,命名为 testFile2
。
删除文件
使用 rm
命令删除文件, 输入 y
+ 回车确认删除,如:
rm $HOME/test/testFile
查看文件内容
使用 cat 命令查看文件内容,如:
cat ~/.bash_history
.bash_history
文件存储执行过的命令的历史记录。
过滤,管道,重定向
过滤
过滤类似于搜索,使用过 grep
命令进行过滤。
例如,过滤出 /etc/passwd
文件中包含 root
的记录:
grep 'root' /etc/passwd
前面是要过滤出来的内容,后面是要过滤的文件。
递归地过滤出 /var/log/
目录中包含 linux
的记录:
grep -r 'linux' /var/log/
即递归查找出 /var/log/
目录下所有文件中存在 linux
的记录,会列出所有符合的文件及匹配到的内容。
管道
Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入,像 pipe
一样将各个命令串联起来执行,管道的操作符是 |
。
比如,我们可以将 cat
和 grep
两个命令用管道组合在一起,
cat /etc/passwd | grep 'root'
该命令类似于 grep 'root' /etc/passwd
;这里拆成了组合命令,前面部分 cat /etc/passwd
查看了 passwd 文件内容,然后将文件内容作为下半部分的输入,在文件内容中过滤出存在“root”的地方。
又比如,过滤出 /etc
目录中名字包含 ssh 的目录(不包括子目录):
ls /etc | grep 'ssh'
前半部分列出了 etc
目录下的文件和文件夹,将这部分内容作为后半部分的过滤条件,过滤出包含 ssh 的(只是名字包含)。
重定向
可以使用 >
或 <
将命令的输出重定向到一个文件中,如:
echo 'Hello World' > ~/test.txt
以上命令,往 ~/test.txt
文件中写入了“Hello World”。
运维常用命令
ping 命令
对 www.example.com
发送 4 个 ping 包,检查与其是否联通:
ping -c 4 www.example.com
netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等等。
列出所有处于监听状态的 tcp 端口:
netstat -lt
查看所有的端口信息,包括 PID 和进程名称
netstat -tulpn
ps 命令
ps命令用于报告当前系统的进程状态。
例如,过滤得到当前系统中的 ssh 进程信息:
ps -aux | grep 'ssh'
0 条评论
来做第一个留言的人吧!