Linux 命令大全 | 菜鸟教程

Linux 系统目录结构 | 菜鸟教程

一、Linux 系统目录

/bin

bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令

/boot: boot 存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件

/dev :

dev 是 Device 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式相同

/etc:

etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录

/home: Home 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice和 eve。

/lib

lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/proc: proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root: 该目录为系统管理员,也称作超级权限者的用户主目录

/selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的

/tmp: tmp 是 temporary的缩写这个目录是用来存放一些临时文件的

/usr: usr 是 unix system resources(unix 系统资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序

/usr/src: 内核源代码默认的放置目录

/var: var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

注意

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

/bin/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

二、命令行指令

1、重定向

echo 可使用``解析字符串(如:echo `date`)

2、vim编辑器

一般模式、命令模式、编辑模式

3、时间命令

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

4、用户管理

  1. 添加用户:useradd 用户名

  2. 设置用户密码:passwd 用户名

  3. 查看用户:id 用户名

  4. 切换用户:su 用户名

  5. 删除用户:userdel 用户名(删除用户保留主目录)userdel -r 用户名(删除用户及主目录)

5、用户组管理

  1. 添加组:groupadd 组名

  2. 删除组:groupdel 组名

  3. 修改组:groupmod -n 新组名 旧组名

  4. 修改用户主组:usermod -g 组名 用户名

  5. 查看用户和附加组的映射关系:cat /etc/group

  6. 将用户添加到附加组:usermod -aG 组名 用户名

6、文件属性

r w x => 4 2 1

  1. 变更权限1:chmod [{ugoa} {+-=} {rwx}] 文件/目录

  2. 变更权限2:chmod [mode=421] 文件目录

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o)

  1. 变更所有者、所属组:

chown [-R][新用户:新用户组][文件/目录] -R表示递归操作

7、find查找文件/目录

  find [搜索范围][选项] -name指定文件名 -user指定用户名 -size指定大小 +-=、

8、grep过滤查找以及管道符 “|”

指令 | grep [选项] 查找内容 -n显示结果在原文本中的行号 -v反向过滤

如:find / -name mysql | grep -n mysql

9、压缩与解压缩

1、g格式
  1. 压缩文件(只能是文件):gzip 文件名

  2. 解压缩文件(只能是文件):gunzip 文件名

2、tar格式

tar [c v z x f] XXX.tar.gz 将要打包进去的内容(压缩后的文件格式.tar.gz)

  1. 压缩文件:-Z(打包同时压缩)C(产生.tar打包文件)V(显示详细信息)F(指定压缩后的文件名)

  2. 解压缩文件:-ZXVF(.tar.gz) -XVF(.gz)

如:tar -zxvf 1.tar.gz -C tar/ 即:将1.tar.gz包解压到当前目录下的tar文件夹中

10、磁盘管理

1、df磁盘使用情况

disk free 命令:df -h(以GBytes、MBytes、KBytes等格式显示,不加-h默认为k)

2、du磁盘使用情况

统计文件或递归显示目录及子目录磁盘使用空间

du -a(显示当前目录下所有文件目录以及目录大小)

11、进程线程

1、ps显示进程

process status 进程状态

ps [-a所有进程u所有用户所有进程x显示没有终端的进程]

ps -ef显示父进程与子进程之间的关系

2、kill杀死进程

kill [-9不做保存等动作,强迫立即关闭] 进程号

killall 进程名

3、free查看内存

free [-h/m合适的单位显示]

4、top详细信息

top

5、netstat网络、端口信息

netstat -p | grep -v unix 即可过滤掉太多的套接字连接

-p显示网络连接的进程号 -v unix 过滤过多的套接字连接

12、系统定时任务

crontab

三、Shell

1、特殊变量

  1. # 表示注释

  2. $+全大写 表示系统变量 如:$PATH

  3. 接收参数:使用$0~$...

其中$0表示文件本身,$1表示第一个参数,$2表示第二个参数...超过9要用${10}以此类推

  1. $# 表示输入参数个数(用于循环、判断参数个数是否正确)

  2. $* 将输入参数全部作为一个整体(循环时不会智能解析)

  3. $@ 将输入参数全部作为一个整体(循环时会智能解析)

  4. $? 最后一次执行的命令的返回状态 0成功,非0失败

2、运算符

  1. $((算式))

  2. $[算式] 如 x=$[(2+3)*4]

3、条件判断

test [ condition ](条件判断语句和中括号之间要有空格) 如 test 2 -gt 1 再 echo $? 输入0 表示 2>1 为真

多条件判断用 && 和 || 表示与、或

4、流程控制

1、选择

if-else

if [ 条件 ] 
then 
    程序 
fi
if [ 条件 ] 
then 
    程序1 
elif [ 条件 ] 
then 
    程序2 
else 
    程序3 
fi

[ 条件 ] 条件和中括号之间要有空格

if 后要有空格

case

case $变量名 in 
"值 1 ") 
    程序1 
;; # 相当于c中的 break "
"值 2 ") 
    程序2 
;; 
...... 
*) # 相当于c中的 default 所有分支都没有,则执行此程序 
;; 
esac
2、循环

for

for((初始值;循环控制条件;变量条件)) 
do 
    programs... 
done
#! /bin/bash
echo '----------------$*---------------'
for i in "$*"
do
    echo "this is $i"
done

echo '----------------$@---------------'
for i in "$@"
do
    echo "this is $i"
done

如上代码输出:

while

while [ 条件判断式子 ]
do
    程序...
done

四、杂项

1、cut 剪切

cut [选项]

-f 列号,提取第几列

-d 指定分隔符

-c 按字符切割

2、正则表达式

正则表达式 – 语法 | 菜鸟教程

  1. 邮箱正则

^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$

  1. 手机号正则

/^1((34[0-8])|(8\d{2})|(([35][0-35-9]|4[579]|66|7[35678]|9[1389])\d{1}))\d{7}$/

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐