linux基础命令(date、history、bash特性、命令拼接、热键、passwd、su、who、int、w、uname、uptime、last、free、dmesg、free)

(待修改)

一、基础命令

1、date 补充
系统时间(System Time):由内核维护的时间
硬件时间(Hardware Time):由BIOS提供的时间
查询修改系统时间:date
查询修改硬件时间:hwclock
将系统时间写入硬件时间:hwclock -w

UTC时间:UTC + 时区差=本地时间

硬件时间:
[root@localhost ~]# clock
[root@localhost ~]# hwclock #显示硬件时间
[root@localhost ~]# clock -s  #硬件时间同步为系统时间
[root@localhost ~]# clock -w  #系统时间同步为硬件时间

时间同步:
[root@localhost ~]# yum install ntpdate
[root@localhost ~]# ntpdate ntp1.aliyun.com
[root@localhost ~]# clock -w

 


 

 


 

 

2、查看历史命令(history):

history -c             删除所有条目从而清空历史列表。
history -d 行数     从指定位置删除历史列表。
history -r             读取历史文件并将内容追加到历史列表中
history -a             将当前会话的历史行追加到历史文件中
history -n             从历史文件中读取所有未被读的行

history -w             将当前历史写入到历史文件中,并追加到历史列表中
history -p ``          对每一个 ARG 参数展开历史并显示结果,而不存储到历史列表中
history -s ``          以单条记录追加 ARG 到历史列表中
HISTFILE="/.xuankui"   :历史命令的路径和文件名

 


3.、bash的别名机制
alias vimif(别名)="vim /etc/sysconfig/network-scripts/ifcfg-ens32"   #定义别名
 \vimif(还原别名的真实含义)


ls --color=auto(=ls)

[root@client ~]# unalias vimif(取消别名)

4、HISTFILESIZE(限制history文件大小)

du .bash_history(文件名):查看文件大小

du -h .bash_history(文件名):查看文件具体大小

HISTTIMEFORMAT=`date` :打印时间戳

HISTFILESIZE=1024:限制历史命令文件大小
HISTSIZE=1000:历史条目

5、取命令

.+ESC  或!$  :取出上一条参数到命令行(但!$会执行)


[root@client ~]# echo $_  :打印出上一条命令的参数

6、

echo $HISTCONTROL

HISTCONTROL=ignorespace:忽略以空白字符开头的命令

HISTCONTROL=ignoredups:忽略重复的命令

HISTCONTROL=ignoreboth:以上两者同时生效

 

二、bash特性:变量

1、分类:
1)、本地变量:作用域, shell进程中的某代码片段。(生效范围为当前shell进程中的某段代码片,通常指函数)

         局部变量:又称标准变量或普通变量 ,生效范围为当前shell(bash)进程,对当前shell之外的其他进程包括子进程无效
环境(全局)变量:生效范围为当前shell(bash)进程及其子进程。
[root@client ~]# export name=wangzhe(自定义)   全局变量定义

2.支持特殊符号 
(1)、管道:把一个程序的输出直接连接到另一个程序的输出。
(2)、进程间通信的方式:

a、管道(无名管道、高级管道、有名管道): 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

b、消息队列 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

c、信号量 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

d、信号信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

e、共享内存共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

f、套接字 套解字也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

3、文件描述符:内核利用文件描述符来访问文件。文件描述符是非负整数,打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
    
    

 

 



     
   
     三、
1、[root@client ~]# vim /etc/security/limits.conf 
#<domain>      <type>  <item>         <value>
#
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
第一列表示用户和用户组(@开头)
第二列表示软限制还是硬限制。
hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。
第三列表示限制的资源类型。
core是内核文件,nfile是文件描述符,nproc是进程,一般情况下只限制文件描述符数和进程数就够了
第四列表示限制的最大值。

2、查看系统当前打开的文件描述符数量
[root@client ~]# 
1152   0    95096
第一个数表示当前系统分配后已使用的文件描述符数,
第二个数表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
第三个数等于最大值file-max。

3、查看某个进程打开的文件描述符数量
下载:yum install lsof -y
[root@client ~]# lsof -p 7919 |wc -l

 
     

 

     标准输入:0
     标准输出: 1
     错误输出: 2
     
    

 

4、命令拼接
【;】: 不存逻辑关系判断,即使前一个命令执行失败,后面的命令依然执行
eg:[root@localhost ~]# ls -a;w

【&&】  存在逻辑判断,前一个命令执行成功,后一个命令才会执行
 

【||】  存在逻辑判断,前一个命令执行不成功,后一个命令也会执行
 

【``】: 解析shell命令
[root@client ~]# echo `date`

【''】: 强引用,所见即所得

【""】: 弱引用,会解析变量

echo 出入时对于转义不受强引弱引的限制,与echo的“-e”参数有关

【{}】参数替换

         [root@client ~]# cp ip.txt  ip.txt.bak 
         [root@client ~]# cp ip.txt{,.baitao} 
         [root@client ~]# cp ip{.txt,.hehe}   

【*】匹配任意长度的任意字符

[root@client bak]# ll *.txt   #匹配任意多个字符
[root@client bak]# ll ?.txt   #匹配单个字符
[root@client bak]# ll [a-z,A-Z,0-9_&%$.?].txt
[root@client bak]# ll [^_].txt

5、支持热键 
(1)CTRL +l    #清屏
(2)CTRL +c    #终止当前进程
(3)CTRL +A    #光标调到命令开头
(4)CTRL +E    #光标调到命令结尾
(5)CTRL +U    #删除光标所在位置之前的内容
(6)CTRL +K    #删除光标所在位置之后的内容
 

6、passwd
1)、root 可以修改普通用户的密码,普通用户无法修改其他用户的密码,普通用修改自己密码,秘钥需要复合复杂性规则要求。
2)、passwd honey(在根用户下指定用户名并修改密码)
         vim /etc/shadow 
 

*honey:用户名
*$6$jtEKmdb.$xDyDmifI5DlClJ43fk453O5ZfVhg.yLS0VZmRt...:加密后的密码
*18467:最后一次修改密码的日期距1970,1,1,时间戳  (天)
*0: 必须要保留的最小天数,0意味着任何时间都可修改密码,从当前开始
*99999: 在此时间之后,必须修改密码,从当前开始(天)
*7:密码过期之前多少天告警
*  :密码过期之后几天,任然可登陆,但是需要提示用户修改密码
*  :禁用;1970,1,1
*  :预留。
3)、相关命令

passwd -S 用户名   #报告已命名帐号的密码状态(只有根用户才能进行此操作)
 passwd -d 用户名   #删除已命名帐号的密码(只有根用户才能进行此操作)
 passwd -e 用户名   # 终止指名帐户的密码(仅限 root 用户)
 passwd -l  用户名   #锁定指名帐户的密码(仅限 root 用户)
 passwd -u 用户名   #解锁指名账户的密码(仅限 root 用户)
 passwd -k 用户名   #保持身份验证令牌不过期
 passwd -i 10 用户名    #当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
 passwd -w 10 用户名  # 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
 passwd -n 100 用户名 #密码的最短有效时限(只有根用户才能进行此操作)
 passwd -x 100 用户名 #密码的最长有效时限(只有根用户才能进行此操作)

 passwd -f  用户名        #强制执行操作
 chage -M 400 用户名  #修改过期时间

 echo "123456" | passwd --stdin 用户名   #从输入修改密码

7、su

1)、su和su -的区别:

su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 后的环境变量已经变了。

 

 

8、yum clean all (清除缓存)

     yum makecache(生成缓存)

 

9、who

1)、

第一列:登录用户
第二列:终端
第三列:登录时间
第四列:客户端的IP

2)、

 who im a(who -m) #打印当前系统登录的用户信息(用户名 终端设备 登录时间 客户端IP)


 

who -q#显示用户数

who -r(运行级别 3 2020-07-13 16:34)

who -b( 系统引导 2020-07-13 16:34)
who -a(who -all)
           

10、int
0 : 关机
1 : 单用户
2 : 不带网络文件系统的多用户
3 : 多用户
4 : 预留
5 : 图像化 x-window
6 : 重启

       
         



   
     
    

11、w

[root@server ~]# w (系统登陆时间,状态)

 

[root@server ~]# w -h


12、unmae

uname -v   #内核的发行日期

uname -n   # 查看用户名
uname -r    # 查看内核发行版
uname -m  #主机架构
uname -p   #CPU架构
uname -i    #硬件平台架构
uname -o   #操作系统名

[root@nidaye proc]# cat /proc/version 

 

13、uptime
[root@nidaye proc]# uptime 
 系统时间  系统状态 系统运行时长 目前系统上运行的用户个数 cpu平均负载
 补充: CPU负载:在特定时间间隔内运行队列中的平均进程数.
             CPU使用率:CPU实际真正处理任务的时间和总时间的比值.

   
 14、last  (当前与过去登入系统的用户相关信息)
 
 last -n 4


last -f /var/log/lastlog 


 last -a


 lastlog   #系统用户的登录历史
  users#显示用户
1)、/var/log/lastlog
该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用 lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示为"**Never logged in**"。该命令只能以root权限执行。 
 

2)、/var/log/wtmp
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常 运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文 件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录。

3)、/var/run/utmp
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系 统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时 更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

4)、以上提及的3个文件是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故 不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。

 15、dmesg
[root@nidaye ~]# more /var/log/dmesg(开机内容)


16、 free(查看内存)
 free -s 5


 cat /proc/meminfo

 free -h
         

 



 
   
   

 
 


 

 




          
    
 

 

 

  

 

 

 

 

 
 
 


 
 




 

 

  

 


 


 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值