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、用户管理
-
添加用户:useradd 用户名
-
设置用户密码:passwd 用户名
-
查看用户:id 用户名
-
切换用户:su 用户名
-
删除用户:userdel 用户名(删除用户保留主目录)userdel -r 用户名(删除用户及主目录)
5、用户组管理
-
添加组:groupadd 组名
-
删除组:groupdel 组名
-
修改组:groupmod -n 新组名 旧组名
-
修改用户主组:usermod -g 组名 用户名
-
查看用户和附加组的映射关系:cat /etc/group
-
将用户添加到附加组:usermod -aG 组名 用户名
6、文件属性
r w x => 4 2 1
-
变更权限1:chmod [{ugoa} {+-=} {rwx}] 文件/目录
-
变更权限2:chmod [mode=421] 文件目录
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o)
-
变更所有者、所属组:
chown [-R][新用户:新用户组][文件/目录] -R表示递归操作
7、find查找文件/目录
find [搜索范围][选项] -name指定文件名 -user指定用户名 -size指定大小 +-=、
8、grep过滤查找以及管道符 “|”
指令 | grep [选项] 查找内容 -n显示结果在原文本中的行号 -v反向过滤
如:find / -name mysql | grep -n mysql
9、压缩与解压缩
1、g格式
-
压缩文件(只能是文件):gzip 文件名
-
解压缩文件(只能是文件):gunzip 文件名
2、tar格式
tar [c v z x f] XXX.tar.gz 将要打包进去的内容(压缩后的文件格式.tar.gz)
-
压缩文件:-Z(打包同时压缩)C(产生.tar打包文件)V(显示详细信息)F(指定压缩后的文件名)
-
解压缩文件:-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、特殊变量
-
# 表示注释
-
$+全大写 表示系统变量 如:$PATH
-
接收参数:使用$0~$...
其中$0表示文件本身,$1表示第一个参数,$2表示第二个参数...超过9要用${10}以此类推
-
$# 表示输入参数个数(用于循环、判断参数个数是否正确)
-
$* 将输入参数全部作为一个整体(循环时不会智能解析)
-
$@ 将输入参数全部作为一个整体(循环时会智能解析)
-
$? 最后一次执行的命令的返回状态 0成功,非0失败
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、正则表达式
-
邮箱正则
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$
-
手机号正则
/^1((34[0-8])|(8\d{2})|(([35][0-35-9]|4[579]|66|7[35678]|9[1389])\d{1}))\d{7}$/
更多推荐
所有评论(0)