linux学习笔记——基础命令
最近看了一些老男孩linux运维视频,挺不错的,特此记录一下
linux组成
gun组件 shell等
linux内核
其他软件 linux主要内核:
linux kernel2.2
linux kernel2.4
linux kernel2.6 发行商:
rehat
suse
centos
ubuntu rehat9.0之后分版本收费
分为rehat3.x rehat4.x rehat5.x rehat6.x
Fedora :rehat的一个分支,可以认为是rehat的预发布版本 Centos:rehat的另外一个分支,是把rehat里面收费的东西去掉,再编译发布 CentOS是国内使用最多的一套linux系统 ------------------------------------------------------------
分区
主分区,扩展分区,逻辑分区
egg:
5个分区(一般最多4个主分区)
1p+le(4个L)P1 L5 L6 L7 L8
2p+le(3个L) P1 P2 L5L6L7
3p+le(2L)
p+e<=4
e(扩展分区)最多只能有一个
L(逻辑分区)只能从5开始
IDE 接口 /dev/hd
hda 第一块盘
hda1 第一个分区
hda2 第二个分区
hdb 第二块盘
SCI 接口:SAS/SATA/SSD
/dev/sd*
sda 第一块盘
sda1
sda2
sdb 第二块盘
linux的分区要求
/根分区,只有一个,存放系统程序,及文件
交换分区swap,相当于win的虚拟内存,内存不够的时候会用到
/boot分区,linux系统的引导分区,一般100--200M 文件系统
ext2/ext3/ext4
ext4效率更高,建议ext4 uname -r 内核版本
uname -a 所有 ----------------------------------------------------------
#表示超级管理员
echo 111 1>xx.log 2>xc.log
1> 表示正常输出
2>表示错误输出 命令 --help 命令的简单帮助
man 命令 命令帮助
help 命令 bash的内置命令帮助 find /root/data -type f(文件) d(目录) filename
find /root/data -type f -exec rm -f {} \;
按照文件类型查找 -exec 对前面的结果进行处理
rm -f 对前面的查找的内容进行处理
{} 表示查找的内容
\;转移 特殊字符按
\ 让一个有意义的字符按,脱掉马甲
比如. 当前目录,\.就代表点 find /root/data -type f | xargs rm -f
xargs 把查找到结果在后面一个个处理 find /root -type f !-name "oldgirl.txt" | xargs rm -f
linux 命令可以接多个参数,and的作用,! 非,取反
-a and
-o or
find ./ -type d maxdepth 1
maxdepth 1 查找的深度为一级 find /log -type -f -name "*.log" -mtime +7 | xargs rm -f -mtime 文件的修改时间 -----------------------------------------------------
grep 过滤器,linux三剑客,老三 grep -v "oldbody" test.txt -v 除了oldboy -B 匹配的行前面多少行
-A 匹配的行后面多少行
-C 匹配的前后多少行
-E 可以过滤多个字符串
grep -E "hicloud|hello" xx.log grep -C 'Exception' 20 root.log
输出异常的前后20行
grep --color=auto "Exception" root.log 过滤的字符加颜色输出 -------------------------------------------------------
cat >test.xtx<<EOF
test
hello
EOF ----------------------------------------------------
sed命令,三剑客老二,过滤(擅长取行)
sed -n(取消默认完整输出) '/oldboy/p' test.txt
sed -n(取消默认完整输出) '/过滤的内容/处理的内容' test.txt -i 改变文件内容 p 打印
d delete,删除 sed -n "20,30p" xx.txt 取20--30行 sed 's#oldboy#oldgirl#g' xx.txt 把oldboy 替换成oldgirl,并未改变文件实体 -i 改变文件实体
-r 不用转义 g 代表全局替换
# 可以用其他符号替换,比如= / @做分隔符 fing ./ -type f -name "xx.txt" | xargs sed "s#olgboy#olggirl#g" eg:
old fff
2old fff
3old fff
sed -r 's#(.*) fff#\1#g' xx.txt
\1 取的是(.*)
old
2old
3old
尽可能的往后匹配 ---------------------------------------------------- mkdir -p /data01/hicloud 递归创建 yum update -y 更新所有软件到最新版本,线上系统最好不做 yum remove 会删除所有依赖的包,所以最好不用 rpm -qa tree 查询这个包(已经安装) tree /root/ 展示目录结构 /bin/cp /mnt/test.txt /tmp/ 覆盖copy
\cp /mnt/test.txt /tmp/ env 环境变量 alias 别名
ll='ls -l'
cp='cp -i' 全路径可以屏蔽这个别名,所以可以直接覆盖,不再提示 定义别名
alias rm='echo "rm can not be used "' unalias 取消别名 别名的位置
cat /root/.bashrc
所有用户生效
/etc/bashrc /etc/profiles
source /etc/profiles ---------------------------------------------- ~ 用户的家目录 root用户就代表 /root
zp 用户就代表zp seq 2 5 序列
2
3
4
5 seq 1 2 10 只打印奇数
seq 2 2 10只打印偶数 seq -s ":" 5 -s是指定分隔符 {1..10}
{a..z}
类似seq ----------------------------------------------------------------- awk 三剑客的老大
一门语言,擅长过滤(取列),打印,删除 awk 'print $1' 文件 $1第一列,$2第二列 egg:
oldboy oldgirl
ddd fff awk '{print $1}' xx.txt
结果:
oldboy
ddd awk -F ":" 'print $1' xx.txt 指定分隔符 awk -F "[, ]" '{print $1 " " $3}' xx.log
多个分隔符 $NF 最后一列
awk 'if(NR<31 && NR>19) prinf $1 "\n"' test.txt ls -l | awk '/^d/' 过滤目录 正则表达式
[root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $2}'????? 1 [root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $3}' 2 [root@oldboy ~]# echo ---1:::::2|awk -F '[-:]+' '{print $3}'
2 awk也可以过滤
[root@masters ~]# ifconfig eth0 | awk '/inet addr/'
inet addr:192.168.1.106 Bcast:192.168.1.255 Mask:255.255.255.0 ---------------------------------------------------
cd - 切换到上次的目录
bash
which 查找命令所在的路径,PATH的路径,
linux里面大多数的命令都会在PATH里面去找
which cp
whereid -b useradd
locate useradd linux 时间同步的问题
date -s "xxx" 设置时间 echo "ssssssss" >> /var/spool/cron/root
/dev/null 空设备 黑洞 文件描述符
ulimit -n 查看文件描述符
调整文件描述符
ulimit -nSH 65535
/etc/rc.local
less 按屏或者行查看文件 ==========================================================
用户管理 useradd oldboy
/etc/passwd
/etc/group
/etc/shadow 添加一个用户,信息会保存在这三个文件里面
passwd oldboy 为oldboy设置密码 su - root 切换到root环境
su 直接切换,环境变量还是原来的用户
所以要带- -------------------------------------------------------- 系统的优化
SELinux
/etc/selinux/config
/etc/inittaab 运行级别,一般3模式,没桌面
init 3,切换运行级别 开机自启动:
1,setup
2,chkconfig
chkconfig --level 查看服务
chkconfig --level 235 hicloud off
把hicloud自启动235级别的关掉 --------------------------------------------------------
正则表达式
.单个任意字符
*重复前面多个字符
.* 匹配任意字符
^ 以什么开头的,^old 代表以old开头
$ 以什么结尾的, /$ 以/结尾的
^$ 空行 grep "0*" root.log 匹配至少前面一个0的
grep -o "0*" root.log 精确匹配的
[abc] 匹配括号里面任意一个字符
[a-z] 匹配a-->z
[^a-z] ^在括号里面是取反,即排除a-z
0{3} 重复前面000,
grep -E "0{3}" root.log 0{3,} 至少三次
0{,3} 之多三次
0{3,5} 至少三次 sed -n "s#^.*ddr:##g" xx.log ^.*: 以目标前的匹配
Bc.*$目标后的匹配
第二个#之间不要写东西,相当于把匹配的替换成空的
[root@masters log]#
[root@masters log]# ifconfig | sed -n "2p" | sed -r 's#(^.*dr:)##g' | sed -r 's#( Bc.*$)##g'
192.168.1.106 [root@masters ~]# ifconfig eth0 | sed -nr 's#^.*dr:(.*) Bc.*$#\1#gp'
192.168.1.106
\1 取值(.*) sed -ir 's#()#oldboy#g' xx.txt
r 不用转义 主要就是用在三剑客上面 扩展的正则表达式:
主要是用在Egrep 或者grep-E + 重复一个或者一个以上的前面字符
| 查找多个字符串 -----------------------------------------------------------
内核
/etc/sysctl.conf -----------------------------------------------------------
目录:
/etc/sysconfig/network-scripts/ 网卡目录
/etc/init.d/network restart 网卡生效
ifdown eth0 停掉网卡
ifup eth0 启动网卡 /etc/resolv.conf dns配置
/etc/hosts 相当于局域网的dns,主机名和ip的解析
ip 域名
192.168.1.106 hicloud.test.com 更改主机名:
hostname hicloud 临时生效
/etc/sysconfig/network 永久生效 ------------------------------------------------------------------- /etc/fstab 有关文件系统的静态信息
开机挂在磁盘,设置文件系统挂在信息的文件,使得能够开机自动挂在 df -h 查看磁盘挂在信息 mkfs.ext4 /dev/sbd1 格式化磁盘 挂在:
1,mount -t ext4 -o noexec /dev/sbd1 /mnt
2.fstab 设置fstab自动挂在
/dev/sdb1 /mnt/ ext4 defaults 0 0 mount -a 自动挂在生效 fstab配置错了之后,系统起不来,不能挂在网络设备,只能挂在本机设备
1,开机提示,输入密码,修复
2,救援模式,rescue -------------------------------------------------------
/etc/rc.local 类似windows的启动
开机启动:
1,chkconfig
2,rc.local 建议 用/etc/rc.local,linux启动流程最后的加载文件 ---------------------------------------------------------- /etc/inittab 运行级别文件 ----------------------------------------
/etc/init.d yum/rpm安装的大部分在这下面
--------------------------------------------
/etc/profile.d 登陆的时候执行下面的脚本 -----------------------------------
usr/local 相当于win prog --------------------------------------
/var 路径
/var/log/messages 系统日志
/var/log/srcure ssh连接日志
/var/spool/cron/crontab 定时任务 ----------------------------------------------------- chkconfig
处理的命令在/etc/init.d/ sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
数字值的是运行级别,分别对应
drwxr-xr-x. 2 root root 4096 Mar 21 2015 rc0.d
drwxr-xr-x. 2 root root 4096 Mar 21 2015 rc1.d
drwxr-xr-x. 2 root root 4096 Mar 21 2015 rc2.d
drwxr-xr-x. 2 root root 4096 May 21 06:27 rc3.d
drwxr-xr-x. 2 root root 4096 Mar 21 2015 rc4.d
drwxr-xr-x. 2 root root 4096 Mar 23 2015 rc5.d
drwxr-xr-x. 2 root root 4096 Mar 21 2015 rc6.d 比如运行界别是3
在rc3.d下面
S***sshd-->../init.d/sshd 代表on状态
K***sshd-->../init.d/sshd 代表off状态
也可自己创建删除软连接,实现on off的状态
S55sshd -> ../init.d/sshd
55是怎么来的?
是在服务脚本里面的配置的,前几行 #!/bin/bash
#
# sshd Start up the OpenSSH server daemon
#
# chkconfig: 2345 55 25
# description: SSH is a protocol for secure remote shell access. \
# This service starts up the OpenSSH server daemon.
# ----------------------------------------------------------------------
tar 打包以及压缩,尽量切换到打包文件的上一级目录
tar zcvf etc.tar.gz /etc 压缩
tar tf etc.tar.gz 查看里面的文件 ------------------------------------------
cut
cut -d" " -f2,3 xx.log 指定分隔符,取2,3列 ----------------------------
wc -l /etc/passwd 显示行数
ps -ef | grep tomcat | wc -l ---------------------------
linux学习笔记——基础命令的更多相关文章
- linux学习之——基础命令
Linux体系基础命令: Linux是一个命令行组成的操作体系!精华在命令行,岂论图形界面成长到什么水平这个原理是不会变的,Linux命令有许多壮大的效用:从简单的磁盘操作.文件存取.到举办庞大的多媒 ...
- Linux学习笔记--which命令(搜索命令的命令)
which.哪一个的意思.作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名. which命令特点: 1) "which" 命令仅仅能查找系统命令.不能搜索普通文件. ...
- linux/linux学习笔记-常用命令(mooc)
一.命令基本格式及文件处理命令 1.linux命令格式 简化选项用-表示,完整选项用--表示 注:linux通过权限位第1位(-:文件 / d:目录 / l:链接文件 来区分文件类型) 2.linux ...
- Linux学习笔记--终端命令
~ 表示用户目录路径 ls 显示当前目录下的文件或目录 -l 列出文件纤细信息l(list) -a 列出当前目录下所有文件及目录, 包含隐藏的a(all) mkdir 创建目录 -p 创建目录 ...
- linux学习笔记基础篇(一)
一.IP操作 1.临时修改IP ,执行命令 ifconfig 网卡名称 新ip :例如 ifconfg nescc 192.168.1.110 ,重启失效 2.重启网络 ,执行命令 syste ...
- linux 学习笔记 rpm命令
软件包管理 用rpm命令来管理rpm 软件包 1>遵循GPL 规则 2>安装 foo-2.0-1.i386.rpm软件包 #rpm -ivh foo-1.0-1.i386.rpm 3> ...
- Linux学习笔记--ps命令(显示当前进程的命令)
ps:英文名process,进程的意思. 1. 命令格式: ps [选项] 2. 经常使用选项: "ps -a" 显示一个终端的全部进程.除了会话引线 "ps -e&qu ...
- Linux学习笔记--cp命令(复制)
cp:英文名copy,复制的意思. 1. 命令格式: cp [选项] 源文件或文件夹 目标文件或文件夹 cp [选项] 源文件1 源文件2 源文件3 ... 目标文件夹 2. 经常使用选项: &quo ...
- linux学习笔记-dump命令的使用
http://blog.chinaunix.net/uid-29797586-id-4458302.html
随机推荐
- CM添加kafka服务
下载所需的包: 在http://archive.cloudera.com/kafka/parcels/latest/ 选择合适parcel下载: ubuntu14.04的cdh5.5.1对应包 htt ...
- a链接事件点击函数
<script> <!-- function ChangeStarCommunity(o){ var o = document.getElementById(o); if( docu ...
- 查看最点CPU的语句
select c.last_execution_time,c.execution_count,c.total_logical_reads, c.total_logical_writes,c.total ...
- Django中提示TemplateDoesNotExist?
用的是1.9版本.需要在settings.py文件中设置TEMPLATES下的DIRS如下: TEMPLATES = [ { 'BACKEND': 'django.template.backends. ...
- bzoj1051 [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4773 Solved: 2541[Submit][Sta ...
- xcode 8 去除无用打印信息
更新Xcode8之后,控制台会默认打印一坨东西,屏蔽的方法如下:Xcode8里边 Edit Scheme-> Run -> Arguments, 在Environment Variable ...
- 安装mysql步骤
1.yum install lrzsz 安装上传功能2.查看系统是否装有MySql :rpm -qa | grep mysql3.查看系统Mysql位置 :whereis mysql4.卸载Mysq ...
- windows 下 gvim/vim lua支持问题,neocomplete等插件支持
此文是按照知乎 https://www.zhihu.com/question/29333426 "windows下vim的lua支持问题?" 一文汇总的解决方案. 题主提供了不错的 ...
- sqlserver如何关闭死锁进程.
1.首先我们需要判断是哪个用户锁住了哪张表. --查询被锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity ...
- android开发--多线程
android中的几种多线程实现方式: 1)Activity.runOnUiThread(Runnable) 2)View.post(Runnable) ;View.postDelay(Runnabl ...