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修改文件下所有内容的权限属性

 Linux常用语法小记

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:只统计字符数

服务分类

Linux常用语法小记

/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