linux基础命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础命令相关的知识,希望对你有一定的参考价值。

        


初学linux者可能会出现忘掉命令的时候,这时候就应该把一些常用的命令记下了,这样每天都可以敲敲,日子一长就会在脑海中有了深刻的印象。下面是我记录的一下linux常用命令,以及服务的配置,都是非常实用的,但适合有点基础的人:


一.Linux系统日志的一些信息,日志配置文件syslog.conf

系统日志一般都存在/var/log下
常用的系统日志如下:
核心启动日志:/var/log/dmesg
系统报错日志:/var/log/messages
邮件系统日志:/var/log/maillog
FTP系统日志:/var/log/xferlog
安全信息和系统登录与网络连接的信息:/bar/log/secure
登录记录:/var/log/wtmp
News日志:/var/log/spooler
RPM软件包:/var/log/rpmpkgs
XFree86日志:/var/log/XFree86.0.log
引导日志:/var/log/boot.log
cron(定制任务日志)日志:/var/log/cron
网络:/etc/sysconfig/network-scrip/ifcif-etho



 

二、 常用命令

find ./ -mtime 0:返回最近24小时内修改过的文件。./代表需要查找的文件夹


/etc/motd  远程登录时显示提示信


sed -n ‘5,10p‘ filename 这样你就可以只查看文件的第5行到第10行


yum instll xxx   安装xxx包       
    
/etc/inittab      系统内核命令


mkfs -t ext3 -c /dev/sdb3  格式化分区


fdisk -l      磁盘详细信息

fdisk /dev/sdb1   |  fdisk -l  磁盘分区


chkconfig  [服务]  --list status|stop  服务开启关闭


/etc/fstab  扩展槽开机挂载


/etc/sysconfig/iptables    //防火墙的配置文件
service iptables stop/start    //启动和关闭
-A INPUT -s 192.168.0.3 -p tcp ——dport 22 -j ACCEPT   防火墙配置:只允许这台机器用SSH连接
iptables -I INPUT -s 59.151.119.180 -j DROP   //封IP连接,
iptables -I INPUT -s 211.1.0.0/16 -j DROP    //封ip段


ulimit -f 10240  限制用户创建档案的容量
            
parted /dev/sdb  print  查看分隔槽
            
cp /etc/skel/.{bash_profile,bashrc} 

ifconfig | grep ‘inet addr‘ | awk ‘{ print $2 }‘ | sed ‘s/addr://g‘   查看某一列字段
      
read -p  人机交互,输入一个值再执行

netstat -t -u l -p 网络追踪

dmesg | grep -i hd eth 分析核心讯息

vmstat -a -fs -S -d -P  系统资源变化,侦测


vim ~/.bashrc    bashrc可以设置快捷命令





alias so=‘source ~/.bashrc‘  保存设置


alias PS11=‘echo PS1="[\[email protected]\h \w \A #\#]\$"‘  终端显示


alias sk=‘echo cp /etc/skel/.{basg_profile,bashrc} ~‘  当终端显示出现错误时运作


alias grep=‘grep --color=auto‘  grep显示颜色


alias al=‘vim ~/.bashrc‘   alias快捷变量


export   |   set      查看变量


setup  补充说明:setup是一个设置公用程序,提供图形界面的操作方式



cal 2017 8 可查看日历

usermod -g stdent(组) index(用户)   改变用户所属组

chgrp stdent(组) ipconfig(文件)     改变文件所属组

chown liu(用户) ipconfig(文件)     改变文件所属用户

useradd   创建用户
groupadd  创建群组


PATH="$PATH":/root 快捷方式path的用法


rpm -ivh  xx.rpm    安装rmp包



dd if=/dev/hdc1 of=/tmp/boot.whole.disk   备份

restore -t -f /root/boot.dump    还原文件或目录




三、详细设置


防火墙配置

iptables -F    //清除配置

 /etc/rc.d/init.d/iptables

1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT






网络设置:

/etc/sysconfig/network-scripts/ifcfg-eth0  网络配置

ONBOOT=YES   //开机启动
BOOTRPOTO=static     //静态ip
DNS1=192.168.1.1     //DNS
IPADDR=172.16.2.1   
NETMASK=255.255.255.0       //子网掩码
GATEWAY=172.16.1.1        //网关
service network restart       重启网络






限制ip登录:

/etc/hosts.deny 拒绝登录列表

/etc/hosts.allow 允许登录列表

一般采用 在拒绝登录列表里 设定所有IP
比如
sshd : all

再在允许登录列表中设定想要允许的IP
比如
sshd : 10.10.10.1
sshd : 192.168.1.1 : allow




crontab  定时任务

crontab -l    //列表
crontab -e    //编辑
crontab -d     //删除

服务 crond.service

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令





shell l脚本调试方法

-n
读一遍脚本中的命令但不执行,用于检查脚本中的语法错误

-v
一边执行脚本,一边将执行过的脚本命令打印到标准错误输出

-x
提供跟踪执行信息,将执行的每一条命令和结果依次打印出来







touch命令    (写脚本的时候有用)

CC表示世纪
YY表示年
MM表示月
DD表示日
hh表示小时
mm表示分钟
ss表示秒
201001311200.34
CCYYMMDDhhmm ss


touch xxxx     //创建xxx文本


 -t:   后面可接时间,其格式如上所述
    -d:后面接时间
      -a:仅修改access time            //状态更改,比如执行了,或被读取
      -c:仅修改ctime时间,而不建立文件        //权限与属性被更改
      -m:仅修改mtime            //内容改变

将issue文件日期改为2008/07/15 13:13
    touch -t 0807151313    /etc/issue
    touch -m -d 0807151313    /etc/issue
    touch -acmr /bin/ls /etc/sh.conf  把后一个时间改成前一个文件的时间





yum的用法
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况


yum install setuptool安装setup,不过安装后使用运行setup只有Authentication configuration可用。

如想配置IP,安装system-config-network-tui即可。

yum install system-config-firewall-tui安装图形化Firewall配置工具。

yum list system-config*  全部安装。






日期的显示

日期 `date +%Y%m%d-%k`=20160531    //` `这是tab键上面的那个键,不是单引号

%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期和时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
% : 印出
% %n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区








文件比较运算  (写脚本的时候很有用)

-e filename     如果 filename 存在,则为真            [ -e /var/log/syslog ]

  -d filename     如果 filename 为目录,则为真          [ -d /tmp/mydir ]

  -f filename     如果 filename 为常规文件,则为真      [ -f /usr/bin/grep ]

  -L filename     如果 filename 为符号链接,则为真      [ -L /usr/bin/grep ]

  -r filename     如果 filename 可读,则为真            [ -r /var/log/syslog ]

  -w filename     如果 filename 可写,则为真            [ -w /var/mytmp.txt ]

  -x filename     如果 filename 可执行,则为真          [ -L /usr/bin/grep ]

  filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

  filename1 -ot filename2   如果 filename1 比 filename2 旧,则为真  [ /boot/bzImage -ot arch/i386/boot/bzImage ]

  字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

-z string               如果 string 长度为零,则为真               [ -z $myvar ]

  -n string                      如果 string 长度非零,则为真        [ -n $myvar ]

  string1 = string2         如果 string1 与 string2 相同,则为真     [ $myvar = one two three ]

  string1 != string2        如果 string1 与 string2 不同,则为真     [ $myvar != one two three ]

  算术比较运算符

  num1 -eq num2              等于         [ 3 -eq $mynum ]

  num1 -ne num2              不等于       [ 3 -ne $mynum ]

  num1 -lt num2               小于        [ 3 -lt $mynum ]

  num1 -le num2            小于或等于     [ 3 -le $mynum ]

  num1 -gt num2             大于          [ 3 -gt $mynum ]

  num1 -ge num2             大于或等于    [ 3 -ge $mynum ]







四、文本操作命令


sed 用法:

sed ‘1d‘ ab   删除第1行
sed ‘$d‘ ab   删除最后一行
sed ‘1,2d‘ ab           #删除第一行到第二行

sed -n ‘1p‘ ab           #显示第一行
sed -n ‘$d‘ ab           #显示最后一行

sed ‘1,3a drink tea‘ ab #第一行到第三行后增加字符串"drink tea"

 sed ‘1c Hi‘ ab                #第一行代替为Hi

sed -n ‘/ruby/p‘ ab | sed ‘s/ruby/bird/g‘    #替换ruby为bird
sed -n ‘/ruby/p‘ ab | sed ‘s/ruby//g‘         #删除ruby

sed -i ‘$a bye‘ ab         #在文件ab中最后一行直接输入"bye"





awk 用法:

awk :对于文件中一行行的独处来执行操作 。

awk -F “:” ‘{print $1,$4}‘   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来

   <、<=、==、!=、>=、~匹配正则表达式、!~不匹配正则表达式

    匹配:awk ‘{if ($4~/ASIMA/) print $0}‘ temp 表示如果第四个域包含ASIMA,就打印整条

    精确匹配:awk ‘$3=="48" {print $0}‘ temp    只打印第3域等于"48"的记录

    不匹配:  awk ‘$0 !~ /ASIMA/‘ temp      打印整条不包含ASIMA的记录

   不等于:  awk ‘$1 != "asima"‘ temp

    小于:    awk ‘{if ($1<$2) print $1 "is smaller"}‘ temp

    设置大小写: awk ‘/[Gg]reen/‘ temp      打印整条包含Green,或者green的记录

    任意字符: awk ‘$1 ~/^...a/‘ temp    打印第1域中第四个字符是a的记录,符号’^’代表行首,符合’.’代表任意字符

    或关系匹配: awk ‘$0~/(abc)|(efg)/‘ temp   使用|时,语句需要括起来

    AND与关系:  awk ‘{if ( $1=="a" && $2=="b" ) print $0}‘ temp

    OR或关系:   awk ‘{if ($1=="a" || $1=="b") print $0}‘ temp







cut用法:

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除

who|cut -b 3    #每行第三个字节
who|cut -b 3-5,8   #第三到五,以及第八个字节

cat tab_space.txt |cut -d ‘ ‘ -f 1   #区域以空格为分割,取第一段






sort 用法:

以行为单位,相互比较,以字母开头来排序

-u  去掉重复行

-r 降序  

sort -r number.txt -o number.txt   #重定向文件要 -o







五、解压/压缩命令


tar -zxf apr-1.4.5.tar.gz

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName

以上是关于linux基础命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux运维基础:Linux基础命令

Linux运维基础:Linux基础命令

Linux基础命令

Linux基础知识--命令的基础知识

⭐️《Linux 系列》⭐️ Linux 基础命令

⭐️《Linux 系列》⭐️ Linux 基础命令