linux常用命令

man --manuel 查看命令name 或者文件/选项
配置文件 NAME存放信息 文件格式
whatis 命令简短信息
apropos 配置文件
whereis
whichis
which
man帮助命令
--help查看命令选项
help 查看内核的内置命令,比如help umask,help if查看if 怎么写的
用户管理---
useadd增加用户
passwd
securecrt
who查看远程登入信息tty本地终端 pts-1远程终端 谁登入系统第二部分登入终端 登入时间
登入主机
w查看更多登入信息 up运行时间linux运行时间 负载值 

-----压缩文件---
常见的压缩格式.gz
gzip 只能压缩文件不保留源文件
gunzip 解压文件

tar可以压缩目录
tar -zcfv Japan.tar.gz Japan 压缩
tar -zxfv Janpan.tar.gz 解压缩
tar -cjf 压缩成bz2文件
tar -xjf 解压bz2文件 .tar.bz2

zip xxx.zip xxx文件
zip -r xxx.zip xxx目录
uzip xx

bzip2 是gzip得升级版
bunzip2 解压文件

网络命令-----
write 用户名
ctrl + D保存结束
在线用户

wall (write all) xxxx
所有用户都能收到及时信息

ping -c ip地址

ifconfig eth0


mail 发送邮件

last 查看系统日志信息**重要命令
lastlog -u uid 查看某个用户登入信息
traceroute 显示数据包和主机之间的路径

netstat -tlun 查看本机监听端口
netstat -an查看本机所有连接端口
netstat -rn查看当前计算机路由列表,网关

setup 配置网络
mount /dev/sr0 /mnt/cdrom 挂载设备
umount /dev/sr0卸载挂载

关机重启
shutdown -h now 关机
shutdown -r now 重启

init 7个级别,可以通过cat /etc/inittab
runlevel 运行级别
logout 退出登录

--------vi编辑器-------
命令行,编辑模式,插入模式
aioAIO插入模式,a是字符后,i字符前,o光标下插入一行 大写字母相反
:set nu 设置行号
:set nonu 取消设置行号
:n 跳到多少行
gg第一行
G最后一行
$到行尾
0到行首

删除命令
x删除字符
nx删除字符后多少个字符
dd删除行 ndd 
dG删除本行到末尾行
D删除光标后的所有字符
:999,1008d 删除指定范围的行

剪切复制
yy复制
nyy复制几行
p复制到光标下面 P复制到光标上面

替换命令
r替换一个字符
R替换字符,esc结束
u 取消上一次操作

搜索
/string 区分大小写
要是不区分大小写,set ic


-------软件包------
软件包有两种
1源码包,需要时间长,编译时间长
2rpm包 也就是二进制包,速度快,不需要编译

rpm三种依赖关系
树形依赖a-b-c
环形依赖a-b-c-a
模块依赖
www.rpmfind.net

挂载光驱
mount /mnt/sr0 
rpm -ivh xxxxx
-v (verbose)显示详情
-h (hash)显示进度
-i (install) 安装
mount 显示挂载情况
rpm -Uvh U(upgrade)
rpm软件包升级
rpm -e (erase) httpd 卸载apache
rpm -q(query) httpd 查询Apache包
rpm -qa | grep httpd 查询所有好友httpd 字符的包
rpm -qi 查询包的信息
-i(infirmation)
-(list)列表

rpm -ql 查看包安装在哪
rpm -qlp 查看未安装包要安装在哪里
rpm -qf 系统文件名
通过文件名查看是哪个安装包安装的
rpm -qRp 查看未安装包的依赖信息
-R(required)依赖

rpm-V(Verify) httpd
查看安装包文件修改信息

md5文件检验 winMD5校验软件

文件提取
rpm2cpio xxxxx|cpio -idv ./bin/ls


-------网络配置和yum管理rpm包------
yum 在线管理rpm包,可以不联网引用光盘方式
setup 配置网络最简单方法,linux自带的图形界面
DHCP*☞删除 自动分配ip必须得有自动分配ip的服务器
vi /etc/syscofig/networkscript/ifconfig-eth0
ONBOOT="no"修改成yes


上网必须得有ip 子网掩码 dns 网关

网络yum源
vi /etc/yum.repos.d/Centos-Base.repo
yum list
yum search 包名
yum -y install 包名
-y自动回答yes
yum -y install gcc c语言编译器
不接包名的话会把

修改光盘的yum源
步骤1:挂载光盘
步骤2:让网络yum源失效,修改网络yum的名字
步骤3:修改yum源文件
vim Centos-media.repo

-------源码包和rpm包区别------
启动服务都需要使用绝对路径,比如
/etc/rc.d/init.d/httpd start
service httpd start
service是红帽专有命令,其他的版本不一定好用
service命令是到rpm安装的目录下搜索这些命令,不能用于源码包的安装,
源码包的安装位置/usr/local/下

-------源码包的安装-------
winscp实现文件传输

./configure
make
make install
在安装目录下
INSTALL是安装说明
REDEME使用说明

--------脚本安装-------
命令行ctrl + backspace 退格键
webmin linux图形管理工具

------用户和用户配置文件-----
用户配置文件(4个配置文件用户和组)
/etc/passwd 用户的基本信息
/etc/shadow 存放密码文件 SHA512加密
查看配置文件
man 5 passwd 不能用绝对路径,系统记录了配置文件

一共7个字段
x有密码 参照/etc/shadow
uid=0为超级用户
1-499伪用户
500-65535普通用户
GID初始组id
登录shell 要是/sbin/nologin 禁止登录

影子文件是因为权限000
/etc/shadow 得第二个字段,密码前加!,相当于把这个用户禁用掉

-----用户相关文件----
/var/spool/mail/用户名 用户邮箱位置
/etc/skel/ 模板目录 ,每添加一个用户就会添加这个目录下的内容
/etc/default/useradd下修改添加用户默认选项
/etc/login.defs

echo "123" | passwd --stbin user1
手动设定密码

usermod -c 用户添加说明
-G
-g
-L 锁定用户
-U 解锁用户
change -d 0 lamp
用户最后一次修改密码的时间,要是为0的话,登入系统会提示用户修改密码

userdel -r 用户名 删除用户以及家目录
id 用户名
查看用户自己所属组的命令

su - 用户名
-切换环境变量,很重要

env 查看用户变量

su -c root "useradd user3"只执行一次用户切换

groupadd 组名 增加新的组
groupmod -n 新组名 原组名

----------acl权限----------
setfacl -m u:group:rx 文件名 修改文件用户acl权限
setfacl -m g:group:rx 文件名 修改组的用户acl权限
getfacl 文件名

-----acl最大权限以及删除权限------
setfacl -m m:rx 文件
修改文件mask值
setfacl -x g:group 文件名 删除文件的组acl权限
setfacl -b 文件名 删除文件所有acl权限
--------权限管理--------
setfacl -m u:user:rx -R 文件名 
递归给子文件增加权限
setfacl -m d:u:user:rx -R 文件名 
给文件设定默认acl权限,新增加的文件也有acl权限

-------文件特殊权限-------
chmod 4755文件名 setUID 执行时获得属主身份
chmod 2755 文件名 setGID 执行时获得属组身份
chmod g+s setGID
chmod 1755 文件名 sticky BIT
定期检查setUID
这个权限很可怕

locate 比 find 快,因为从数据库查询

----------文件属性---------
chattr +i 文件名 文件锁起来,所有用户修改不了数据以及文件名,对于root权限也生效
如果是目录的话,目录的内不能新建文件,但是能修改数据
chattr +a 文件只能追加内容(append),不允许删除
echo 444 >> 文件名
lsattr -a 查看文件特殊属性

-----------sudo权限---------
root用户给普通用户赋予sudo权限,替代root执行命令
visudo 也就是/etc/sudoers
用户名 ALL=/sbin/shutdown -r now
给用户赋予重启命令
su - 用户名

sudo -l 列出sudo权限
sudo /sbin/shutdown -r now
不要改工具类命令赋予sudo 很危险

------分区和文件系统--------
三个主分区,一个扩展分区,扩展分区不可以直接使用,只有把它分成逻辑分区才可以使用
sda1-sda3 主分区
sda4扩展分区
sda5-逻辑分区可以使用了,逻辑分区只能从5开始
分区格式化就相当于把给硬盘分块,
ext2,ext3,ext4文件系统形式

---------dt du fsck dumpe2fs----------
df 查看系统分区情况
统计的容量大,包含文件,命令,系统,进行占用空间,
du 查看目录大小
只统计文件的空间
时间长不重启会有大量的临时文件,定期重启服务器
fsck手工修复系统分区

---------mount---------
mount 挂载
-l 显示卷名
-a 根据/etc/fstab配置文件,自动挂载
mount -o remount,noexec /home 让home下.sh不可执行
mount -o remount,exec /home 让home下.sh不可执行
umont 文件名或者挂载点 卸载光驱
挂载U盘一定把鼠标点进虚拟机,要不然是windows识别U盘

fdisk -l 查看U盘设备名,文件系统
mount -t /etc/sdb1 /mnt/usb

linux 不支持NTFS系统,不识别硬盘,苹果笔记本是UNIX系统,所以不能修改硬盘的内容

支持NTFS系统,需要安装驱动,有两种方式
1,内核编译
2,NTFS-3G插件
安装完成后
mount -t ntfs -3g /dev/sr0 /mnt/usb

安装gcc
更换本地yum源
查看INSTALL文件,查看安装说明
./configure
make 编译
make install 安装

--------fdisk手动分区---------
fdisk -l 查看被系统识别的硬盘
新增加一块硬盘,通过虚拟机增加
启动系统,fdisk -l 查看分区情况
fdisk /dev/sdb
如果分区出现异常partprobe 重新读取加载硬盘
mkfs -t ext4 /dev/sdb1 格式化分区
mount /dev/sdb1 /disk1 手动挂载,每次重启电脑都得重新挂载。
------自动挂载-------
修改/etc/fstab
dumpe2fs -h /dev/sdb1查看超级块的UUID
mount -a
检查下/dev/sdb1文件内容是否写错,不至于重启系统启动不了
mount -o remount,rw / 把根目录重新读写
----------shell----------
shell分很多种,Bash,csh,sh
linux系统支持的事bash ,它是borne shell得一种
查看 /etc/shells 查看系统支持哪些shell
可以直接输入sh
--------shell简单执行命令--------
echo "helllo world" 有空格得用双引号
echo 'hello world!' 有叹号必须用单引号或者转义字符
echo -e "\b\n"

hello.sh
#!/bin/bash
这句话不是注释,是声明该脚本是shell
写完脚本
chmod 755 hello.sh
执行脚本可以用路径,也可以用bash hello.sh

linux下的shell脚本和在windows下shell脚本不一致
^m windows下回车符号查看所有隐藏字符
$ linux下回车符号查看所有隐藏字符
dos2unix 文件名 
cat -A 文件名 查看文件的隐藏字符

---------历史命令及补全---------
history 查看家目录下的.bash_history
-w 保存缓存中的命令
-c 清除历史命令
!n执行第n条历史命令

tab 一下 自动补全,如果下午多个不补全,
tab 两次 查看多个补全项

--------别名,快捷键--------
alias vi='vim'
alias 查看所有别名
别名顺位大于环境变量$PATH得顺位
~.bashrc修改这个文件,别名才能永久生效
ctrl+u删除光标前所有字符
ctrl+y 粘贴ctrl+u得所有内容
ctrl+r在历史命令中搜索

--------输入输出重定向---------
命令 > 文件名 输出正确的结果重定向到文件中 覆盖
命令 >> 文件名 追加

命令 2> 文件名 错误输出到文件中 覆盖
命令 2> 文件名 错误输出到文件中 追加
要是想正确输出和错误的输出到文件中
命令 >> 文件名 2>&1 正确和错误的结果输出到文件中

/dev/null 相当于垃圾箱
---------特殊字符---------
''单引号之间都是字符 包括$
""之间是变量
``之间是把执行结果给变量,相当于$()
SYSDATE=$(date)
SYSDATE=`date`
--------自定义变量-------
Bash中所有变量值都是字符串
变量赋值的=两侧不能有空格
price=5
环境变量必须大写,便于区分
set查看系统所有变量
----------环境变量--------
pstree 查看父shell和子shell
环境变量对父shell和子shell都可见
env查看环境所有变量和set一样
uset 变量名 删除变量
export age=5 age就是环境变量

PATH系统查找命令的路径
PS1系统提示符的变量(只有set能查看到)

-------参数位置变量--------
$n 第n个参数
./tmp/sss.sh 11 22 33 
11是第一个参数
$*是把所有参数当成一个参数
$@是把所有参数当成不同参数
$?是查看上一条命令执行的返回值,0正确执行,其他值执行错误
$$显示当前进行PID
$!显示后台进行PID
--------预定义变量---------
从键盘读取输入
read -t 30 -n 1 -p "this is" sex
-t 等待时间
-n 字符数
-p 给某个变量
--------数值运算--------
cc=$(( $aa + $bb))

-------环境变量配置文件-------
source 配置文件
. 配置文件
使配置文件立即生效不用重启系统
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
~/.bash_profile
~/.bashrc

-------注销时生效的环境变量---------
~/.bash_logout注销时需要清空历史命令可以在这里写
/etc/issue 可以修改登录界面的欢迎信息

---------正则表达式--------
通配符*任意多个字符,?只匹配一个字符,[a-z] a-z的字符
grep "^[A-Z]\{3,\}" 文件名

---------cut----------
cut提取字符串,对列的提取,结合grep来用
cut -d ":" -f 1,3 /etc/passwd 
用:分割,提取第一列和第三列

cat /etc/passwd | grep "/bin/bash" | grep -v "root" | cut -d ":" -f 1
提取普通用户
cut 命令能识别制表符 ,不能识别空格

----------awk,sed,print,printf---------
awk 截取列
df -h | awk '{print $1 "\t" $3}'
awk 默认识别空格或者制表符 ,要是想指定分隔符,用FS
awk '{FS=":"} {print $1 "\t" $6}' 会少第一行
awk 'BEGIN{FS=":"} {print $1 "\t" $6}' 

grep -v mm 反选

sed 流编辑
sed -n 文件名 只输出经过处理的行
sed '2,4d' 文件名 输出删除文件的2到4行,到没有真正的删除文件内容
sed -i '2,4d' 文件名 输出删除文件的2到4行,真正的删除了文件内容
sed '2a xxxxx' 文件名 在文件的第二行后边追加文字
sed '2i xxxxx' 文件名 在文件的第二行前边追加文字
sed '4c xxxx' 文件名 第四行替换
sed '4s/77/99/g' 第四行的77替换成99
sed -e 's/sc//g;s/li//g' 允许多个条件执行
-----------sort---------
sort 文件名 默认字符串排序
sort -t ":" -k 3,3 文件名
-----------wc-----------
-l 统计行数
-w 统计单词个数
-m 统计字符数
------------test------------
test -e 文件 判断文件是否存在
查看返回结果
$? 如果是0说明文件存在
等同于
[ -e 文件名 ]

[ -f /etc/passwd ] && echo "yes" || echo "no"
[ -d /etc/] 判断是否是目录

[ 文件1 -nt 文件2 ] 文件1是否比文件2新
[ 文件1 -ot 文件2 ] 文件1是否比文件2旧
[ 文件1 -ef 文件2 ] 文件1和文件2的inode号是否一致
-z 判断字符串是否为空
-n 判断字符串是否为非空
==判断字符串是否相等#
!=不等于
中括号内测必须 有空格要不会报错
[ 条件1 -a 条件2 ] 逻辑与

--------------分支语句------------

rate=$(df -h | grep sda1| awk '{ print $5 }' | cut -d "%" -f1)
if [ $rate -ge 80] 
then
echo warning!
else
echo no warning!
fi

mysql 练习备份

nmap 远程扫描
判断apache是否down了,可以选择这个

nmap -sT ip地址 | grep tcp |grep httpd | grep 


-------------for-----------
for time in 1 2 3 4 5 6
do
echo $time

done

-------while--------


-------until--------


--------服务的分类-------
两种分类,1.独立的服务,2.基于xinetd 服务,xinetd得服务是独立的
chkconfig --list 查看系统自启动状态 只能查看rpm包安装的命令,不能查看源码包安装的命令
rpm 默认配置文件 /etc
默认启动脚本 /etc/rc.d/init.d
源码包安装的目录 /usr/local
/etc/rc.d/init.d 启动独立服务的脚本
/etc/xinetd.d 基于xinetd启动的脚本
service 启动服务也是去/etc/rc.d/init.d去查找

------服务自启动方法-----
chkconfig --level 2345 httpd on 开机自启动
修改/etc/rc.d/rc.local 可以修改服务自启动
ntsysv界面管理服务启动

telnet 是基于 xinetd 23端口 不使用,不安全

源码包自启动方式
修改 /etc/rc.d/rc.local

--------进程管理----------
进程管理最重要是判断系统的健康情况
进程应该先用sevice xxxxx stop 
不生效再 kill
ps aux 查看所有运行的进程
top 可以看出系统健康状况
M按照内存排序
P按照cpu排序
?或者h交互模式
pstree查看进程树

kill -1 pid 重启进程
kill -9 pid 强制杀掉进程
killall -9 httpd 杀死所有apache进程
pkill -9 -t tty1 按照终端号踢出用户

---------工作管理---------
tar -zcf etc.tar.gz /etc & 放入后台 继续运行
top 命令再用ctrl + z放入后台,停止状态
查看后台工作
jobs 查看所有后台运行的命令
fg 工作id 恢复到前台运行
bg 恢复到后台

---------系统资源查看-------
vmstat 延时时间 刷新次数 
dmesg 查看开机内核信息
dmesg | grep CPU
free -m 查看系统内存使用情况 
缓冲buffer 系统向硬盘写入数据
缓存cache 系统从硬盘中读取数据
cat /proc/cpuinfo 缓存中文件

uname 查看系统
lab_release -a

lsof 查看进程调用哪些文件


--------定时任务--------
crond 定时任务必须启动的进程
crontab -e 进去定时任务编辑
定时任务识别最小单位是分钟
* * * * * /bin/echo "111"
$( date \%y\%m\%d)

-------日志管理------
rsyslogd和syslogd兼容
/var/log/cron 定时任务运行的日志
/var/log/dmesg 开机自检log
/var/log/btmp 记录用户登录错误信息,要是存在大量的错误信息,警惕 看不懂,得用lastb命令查看

rpm包安装的程序的log也在 /var/log下
/etc/rayalog.conf
linux 日志轮替
/etc/logrotate.conf 修改这个文件实现日志轮替

logrotate -v 显示所有轮替的信息
logrotate -f /etc/logrotate.conf 强制轮替

--------启动管理-------
启动级别:
0关机
1
3切换命令行界面
5启动图形界面
init 0
runlevel 查看运行级别
/etc/inittab 

----------grub系统启动--------
/boot/grub.config 
可以设置两个参数 default timeout

----------数据备份----------
/root
/home/目录
/etc/目录
/var/spool/mail
其他目录

mysql需要备份的文件
var/lib/mysql
apache需要备份的文件
日志文件
配置文件
网页主目录

-------备份方式--------
完全备份 常用
增量备份
差异备份

http://weibo.com/lampsc
dump -0uj -f /root/boot.bak.bz2 /boot
0是完全备份,1是增量备份
cat /etc/dumpdate
dump -W 查看所有分区的备份情况
dump -0j /etc.backup.bz2 /etc

restore -r -f 文件名 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值