Linux常用语法小记
ls 浏览| -a 全部| -l 详细信息| -d 查看目录属性| -h人性化信息显示
drwxr-xr-x:第1位是文件类型,2-4位所有者u的权限,5-7位所属组g的权限,8-10其他人o的权限
r:read读取权限,w:write写入权限,x:执行权限,-:无权限
pwd 显示当前目录
mkdir 创建目录
rmdir删除空目录
rm 删除文件| -r 目录| -f 强制删除
cp 复制| -r 目录| -p 保留文件属性
mv 剪切| -r目录
touch 创建空文件
cat 浏览文件内容| -n显示行号
tac 反向浏览文件内容
more 分页显示文件内容(只能向下显示)| 空格、f 翻页| enter 换行 q 退出
less 分页显示文件内容(可上下翻页显示)| ↑↓上下行显示| PgUp/PgDw上下页显示
head 显示前十行| -n指定显示行数
tail 显示尾十行| -n指定行数| -f动态刷新显示
ln 链接命令|-s 创建软链接文件|无-s 则创建硬链接,类似于复制,并且会同步更新源文件的内容
软链接:快捷方式,可以为目录创建软链接,可以跨分区,源文件删除则失效
硬链接:复制并同步更新,不可为目录创建硬链接,不可跨分区,源文件删除依然存在
chmod 权限管理
chmod ugoa +-= rwx 文件或目录名
u:所有者,g:所属组,o:其他人,a:所有用户
+:增加权限,-:减少权限,=:取消原有权限,赋予当前权限
r:4,读取权限,
w:2,写入权限,
x:1,执行权限,
0:无任何权限
权限使用代数相加代替表示。
-R:递归修改,修改当前目录的权限并修改目录下所有文件的权限,
类似windows修改文件下所有内容的权限属性
chown 更改所有者
chown 用户 文件或目录名
chgrp 更改用户组
chgrp 用户组名 文件或目录
umask -S 显示当前新建文件的缺省权限
umask 显示缺省权限掩码,掩码翻译方法:777-显示值
umask 缺省权限掩码
find 文件搜索
find 搜索范围 匹配条件
|-name 指定文件名
|*文件名* 模糊查询
|? 文件名补位符,一个问号占用一个字符
|-iname 不区分大小写
|-size +- 文件大小(数据块,1K=2个数据块) 查找大于小于或等于某文件大小的文件|-user 根据所有者查找
|-group 根据所属组查找
|-amin 访问时间
|-cmin 文件属性修改时间|-mmin 文cd 件内容修改时间
|-type 按照文件类型 f 文件 d 目录 l 软链接文件
|-inum 根据i节点查找
-a 同时满足2个条件|-o 满足其中1个条件
-exec/-ok 命令条件 {} \; -ok询问是否执行
locate 在文件资料库中查找文件,新生成的文件一般未及时更新资料库,则该命令找不到
updatedb 更新文件资料库,无法更新临时/tmp目录下的文件
|-i 不区分文件名大小写
which 搜索命令,查找命令所在路径和别名
whereis 搜索命令,并给出帮助信息路径
grep 搜索文件内容
grep -iv 内容 文件
|-i 不区分大小写
|-v 排除指定字符串 同sql not like
|^ 代表开头
man 查看帮助信息
man 命令名称
date 查看当前时间
help 获得shell内置命令的帮助信息
help 命令名称
useradd 增加用户
useradd 用户名
passwd 添加密码
passwd 用户名, 再根据提示输入密码
who 查看当前用户信息 |tty 本地登陆
w 详细用户登陆信息
gzip 压缩文件,压缩格式.gz,压缩后不保留原始文件,只保留压缩包,只能压缩文件,不能压缩目录等。
gzip 文件名
gunzip 解压缩.gz文件
gunzip 文件名|gzip -d 文件名
tar 打包文件
tar 对象名称|-c 打包|-v 显示详细信息|-f 指定文件名|-z 打包同时压缩
常用例子 tar -zxvf 对象名,解压解包
tar -zcvf 压缩包,打包压缩
zip 压缩包,.zip格式,压缩后会保留源文件
zip 压缩后文件名 文件或目录 |-r 压缩目录
bzip2
write 向用户发信息,ctrl+D完成保存并发送
wall 向所有用户发送信息
mail 向用户发邮件
last 统计所有用户登录信息
lastlog 列出所有用户,统计最后登陆信息
traceroute 显示数据包到主机间的所有路径
setup 配置网络
shutdown 选项 时间 保存后关机
|-c 取消前一个关机命令
|-h 关机
|-r 重启
init 系统运行级别
|0 关机|1 单用户|2 不完全多用户,不含nfs服务|3 完全多用户|4 未分配|5 图形界面|6 重启
runlevel 查看系统运行级别
用户配置文件 /etc/passwd
用户密码文件 /etc/shadow
用户组配置文件 /etc/group
用户组密码文件 /etc/gshadow
默认创建用户配置 /etc/default/useradd
其他用户默认配置 /etc/login.defs
usermod 修改已有账户信息
chage修改用户密码状态,chage -d 0 用户名,将用户密码更改间隔归零,用于用户初次登陆时候,强制要求修改密码,保证服务器安全性。
userdel -r 用户名 删除用户并删除其家目录
su -/c 切换用户的同时,并同时切换环境变量/只执行一次(暂时使用指定账户,并执行一次自定义的操作)。
acl权限,类似于windows的用户权限,可以直接为某目录增加指定用户的相关权限,不同于linux传统的一个文件所属组权限,便于细化个别权限设置
永久为挂载点增加acl权限,目前系统默认所有挂载点都有acl权限
vim /etc/fstab,在需要增加acl权限的挂载点,defaults后增加,acl
getfacl 文件名 查看acl权限
setfacl 选项 文件名 设定acl权限
例子:setfacl -m u:st:rx /project/ 为st用户设定project目录的rx权限,u用户(g所属组,m是mask特殊):st(用户名):rx(具体权限)
-m 设定acl权限
-x 删除指定的acl权限
-b 删除所有的acl权限
-d 设定默认acl权限
-k 删除默认acl权限
-R 递归设定acl权限
mask 最大有效权限 rwx,所有新增用户或组的acl权限实际是与mask的有效权限进行“相与”计算得出,即相同则有,不相同则为无
例子:mask:rwx test:r-x
mask有r权限,test也有r权限,“相与”计算后得出,都有r权限,所以test实际就有r权限
mask有w权限,test的为-权限(没有w权限),“相与”计算后得出,没有w权限,所以test实际就没有x权限
setfacl -m u:st:rx -R /project/ 递归acl权限,父目录下的子目录
setfacl -m d:u:st:rx -R /project/ 默认acl权限,目录下所有新目录自动获得设定的acl权限,仅针对新增文件或者目录
文件系统属性权限 chartr [+-=] 选项
选项:
i :对文件-不允许对文件进行删除、改名、增加、修改数据,只能;对目录-只能修改目录西文件数据,不允许新建删除文件
a:对文件-只能在文件中增加数据,不能删除修改文件里的数据;对目录-只能在目录中新建修改文件,不能删除文件
sudo 超级管理员给指定用户授权系统命令后,指定用户可以执行该命令
主分区:最多4个
扩展分区:扩展分区只能有1个,算为主分区中的1个,扩展分区无法写数据和格式化,必须在扩展分区下划分逻辑分区,逻辑分区可以进行数据读写和格式化
逻辑分区:扩展分区中划分的
mount -l 查看挂载设备
mount -a根据/etc/fstab配置文件,进行自动挂载
mount [-t 文件系统] [-L 卷标] [-o 特殊选项] 设备文件名 挂载点
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660(光驱)等文件系统
-L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项
remount重新挂载已经挂载的文件系统,一般用于指定修改特殊权限
exec/noexec 执行/不执行,设定是允许在文件系统中执行可执行文件,默认exec允许
fdisk 磁盘管理
磁盘分区挂载:
1. 虚拟机增加硬盘空间
2. fdisk -l 查看新硬盘名称
3. fdisk /dev/新硬盘名称
4. m帮助;n新建分区;p查看当前硬盘分区情况
5. 起始扇区,默认回车
6. 起始扇区号,默认1,默认回车
7. 分区类型,p主分区;l逻辑分区;e扩展分区 (先扩展,才能在扩展分区下进行逻辑分区)
8. 设定分区大小 +size单位(K,M,G) 例:+2G 分配2G的大小
9. w写入保存并退出
10. partprobe 强制重新读取分区列表
11. 格式化磁盘分区 mkfs -t 文件类型 磁盘分区路径 例:mkfs -t ext4 /dev/sdb1
12. 新建挂载点 mkdir
13. 挂载磁盘分区 mount 磁盘分区路径 挂载点 例:mount /dev/sdb1 /disk1/
磁盘分区卸载:
1. umount 挂载点
2. fdisk 磁盘路径
3. d 删除分区
4. w写入保存并退出
5. partprobe 强制重新读取分区列表
6. 关机,移除磁盘
获取设备UUID: dumpe2fs -h 设备路径
/etc/fstab文件修复(仅适合根分区以外的分区配置写错导致的系统崩溃)
一旦出现文件内容写错,会导致系统崩溃,服务器重启后无法启动。
输入root密码后,进入系统安全模式,此时/etc/fstab文件为只读,此时需要执行
mount -o remount,rw / 重新挂载根挂载点,此时/etc/fstab文件为读写,进入修改错误的内容
free 查看内存空间和swap空间
变量 $
$? :上一次命令执行情况,成功为0,不成功则为具体数值
$$ :当前进程号PID
$! :后台运行的最后进程号PID
read [选项][变量名] 接收键盘输入
-p :提示信息,等待read输入时,输出提示信息
-t :秒数,read等待用户输入,该选项用来指定等待时间
-n :read只接受指定的字符数,才会执行
-s :隐藏输入的数据,类似密码输入等
变量1=$(($变量2+$变量3)) 变量运算
source 配置文件 强制配置文件即刻生效
列截取输出
cut [选项] 文件名
-f 指定列号,多列用逗号隔开
-d 指定分隔符
行截取输出
printf ‘输出类型格式’ 输出内容
%ns : 输出字符串。n为输出的字符数量
%ni : 输出整型
%m.nf :输出浮点型,m整数位数,n小数位数
流编辑器
sed [选项]‘[动作]‘ 文件名
选项:
-n : 只输出经过sed处理的行内容
-e :可以使用多条sed命令编辑
-i : 用sed处理结果直接修改文件内容
动作:
n :行数,范围使用起始行号,中间用逗号隔开
nd : delete删除第n行
na:add在第n行后增加
ni :insert 在第n行后插入
排序
sort [选项] 文件名
-f :忽略大小写
-n:以数值型进行排序
-t:指定分隔符
-k n,m:指定字段范围排序,n起始位,m结束位
-r:反向排序
统计
wc [选项] 文件名
-l:只统计行数
-w:只统计单词数
-m:只统计字符数
服务分类
/etc/init.d:启动脚本位置,独立服务
kill [信号][pid] :终止进程
killall []选项[信号][进程名]:根据进程名终止其所有进程
pkill [选项][信号][进程名/终端号]:同killall,但主要用于踢出用户
命令 & ,或者命令执行后,使用ctrl+z快捷键 :将当前命令任务放入后台,前者是后台执行,后者是后台暂停
jobs -l :查看后台运行的任务
bg %任务号:无交互的后台任务恢复到前台
fg:恢复有交互的任务到前台执行
vmstat [刷新间隔] [刷新次数] : 系统资源查看
dmesg:开机时内核检测信息
free [选项]:内存使用状态
-b:以字节为单位显示;
-k:以KB为单位显示;
-m:以MB为单位显示;
-g:以GB为单位显示
/proc/cpuinfo :cpu信息文件,每次重启服务器后,重新检测并写入该文件
dmidecode [选项] [代号]:查看硬件信息,具体参考man命令
例子:
dmidecode|grep -A16 "Memory Device"|grep ‘Speed‘ :查看内存速率
uname [选项]:当前系统的内核相关信息
-a:查看系统所有信息;
-r:查看内核版本
-s:查看内核名称
file /bin/ls:判断系统位数
lsblk:查看硬盘块信息,类似df -lh
service命令所查询的目录: /etc/init.d/
systemctl命令所查询的目录:/usr/lib/systemd/system/
crontab [选项] :系统任务配置
-e:编辑定时任务
-l:查询任务
-r:删除所有crontab任务
init [级别代码] :切换运行级别
0:关机;
1:单用户模式,类似windows安全模式;
2:不完全的命令行模式,不含NFS服务(linux与linxu系统间文件共享服务);
3:完全命令行模式;
4:系统保留;
5:图形模式;
6:重启。
runlevel:查看运行级别
dump [选项] 备份后文件名 原始文件 :分区支持增量备份,文件只能完整备份
-level:0-9备份级别;
-f 文件名:指定备份后文件名;
-u:备份成功后,把备份时间记录在//etc/dumpdates 文件;
-v:显示备份过程中更多的输出信息;
-j:将备份文件压缩为.bz2格式;
-W:显示允许被dump的分区的备份等级及备份时间。
restore [模式] [选项]:
模式:
-C:比较备份数据和实际数据的变化;
-i:进入交互模式,手工选择需要恢复的文件;
-t:查看模式,查看备份文件中的数据;
-r:还原模式,还原数据;
选项:
-f:指定备份的文件名。
hostname:查看当前主机名
hostname [新主机名]:临时设置主机名
hostnamectl set-hostname:永久设置主机名
ifdown [网卡设备名]:禁用指定网卡
ifup [网卡设备名]:启用指定网卡
nslookup [网址/ip]:域名服务解析查看
netstat [选项]:查看网络服务列表
-t:查看tcp协议端口
-u:查看udp协议端口
-l:仅查看在件套状态的网络服务
-n:不使用域名和服务名,使用IP和端口号
-a:查看所有网络连接
密钥对登陆(使用了密钥对登陆后,建议禁用ssh密码登陆)
在linux客户机操作:ssh-keygen -t rsa 生成rsa密钥对,该密钥对存放在~/.ssh/目录下
id_rsa和id_rsa.pub,私钥和公钥;
通过scp命令将公钥上传到目标服务器的目录下,scp id_rsa.pub 用户名@IP:/目录名;
通过ssh命令远程到目标服务器,ssh 用户名@IP;
将私钥内容追加到密钥对验证文件中, cat id_rsa.pub >> /root/.ssh/authorized_keys
去掉验证文件的所属组和其他人的读写执行权限 chmod 600 authorized_keys
关闭SELinux服务,
vim /etc/selinux/config
修改SELINUX=Disabled ,重启服务器
samba服务
清理旧内核:
uname -r #查看当前使用的内核版本
rpm -qa | grep kernel #查看所有已安装的内核版本
yum remove 内核版本名称 #卸载旧的内核版本
iptables端口映射转发
*nat
:PREROUTING ACCEPT [2:656]
:INPUT ACCEPT [2:656]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8083