It's our wits that make us men.

linux基础知识

Posted on By Junliang Huang

1.linux基础知识

1.1 目录介绍

1.1.1 管理类

  • /bin 执行程序。
  • /sbin 管理员执行程序。
  • /dev 设备
  • /etc 配置文件
  • /boot 启动文件、内核
  • /var 存放程序运行时信息,如系统日志、用户信息、缓存等。

1.1.2 用户类

  • /root root目录
  • /home 普通用户主目录存放地
  • /usr 是系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。
    虽然看起来像user,但是跟里面没有用户文件。

里面存放这许多Linux系统文件。

1.1.3 信息类

  • /proc 查询各种系统信息
  • /lost-found 备份重要信息

1.1.3 应用类

  • /opt 安装用户应用软件,内核日志
  • /lib 存放供可执行程序使用的各种代码库。代码库分为静态库和共享库,/lib目录下一般只有共享库。

2.shell常用命令

2.1 时间和时区设置

date -s 2017-4-12 [将系统日期设定成2017年4月12日的命令]
date -s 10:35:00  [将系统时间设定成10点35分0秒的命令]
[root@ccd-sdv6 ~]# ls /etc/localtime
/etc/localtime
[root@ccd-sdv6 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 38 Oct 16  2016 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
[root@ccd-sdv6 ~]#  mv /etc/localtime /etc/localtime.bak
[root@ccd-sdv6 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 
[root@ccd-sdv6 ~]# ll /etc/localtime
lrwxrwxrwx 1 root root 33 Sep  7 02:41 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

查看系统当前时间:
[root@ccd-sdv6 ~]# date
Thu Sep  7 02:41:20 CST 2017

按照"年-月-日 小时:分钟:秒"的格式:
[root@ccd-sdv3 ~]# date "+%Y-%m-%d %H:%M:%S"
2017-11-17 14:58:04

设置系统时间为2017年11月17日3点27分
[root@ccd-sdv3 ~]# date -s "20171117 15:27:30"
Fri Nov 17 15:27:30 CST 2017

查看本地系统时区:
[root@ccd-sdv3 ~]# date "+%Z"
CST

查看星期几:
[root@ccd-sdv3 ~]# date "+%A"
Friday

查看当前是上午还是下午:
[root@ccd-sdv3 ~]# date "+%p"
PM

判断今天是一年中的第几天:
[root@ccd-sdv3 ~]# date "+%j"
321

[root@ccd-sdv6 ~]# date -s 2017-9-6
Wed Sep  6 00:00:00 CST 2017
[root@ccd-sdv6 ~]# date -s 14:42:22
Wed Sep  6 14:42:22 CST 2017
[root@ccd-sdv6 ~]# date
Wed Sep  6 14:42:24 CST 2017
[root@ccd-sdv6 ~]# hwclock --systohc [系统时间和硬件时间同步]
[root@ccd-sdv6 ~]# hwclock
Wed 06 Sep 2017 02:42:50 PM CST  -0.829138 seconds
#注意:hwclock(clock) --hctosys是硬件时间与系统时间同步
#sys代表系统时间,hc代表硬件时间

2.2 cat tac rev的区别:

cat是显示文件夹的命令,全称是concatenate,tac是cat的倒写,意思也和它是相反的。cat是从第一行显示到最后一行,而tac是从最后一行显示到第一行,而rev 则是从最后一个字符显示到第一个字符.

[root@localhost ~]# cat test
abcd
123456
[root@localhost ~]# tac test
123456
abcd
[root@localhost ~]# rev test
dcba
654321
[root@localhost ~]#

2.3 查看系统的挂载信息及磁盘空间使用情况:

mount column -t 用一个很不错的格式与规范列出所有挂载文件系统。
[root@ccd-sdv9 ~]# mount |column -t
/dev/nvme0n1p2                              on  /boot                                               type  xfs              (rw,relatime,attr2,inode64,noquota)
/dev/nvme0n1p1                              on  /boot/efi                                           type  vfat             (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
192.168.199.52:/share/images                on  /share/xvs/img                                      type  nfs4             (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.199.169,local_lock=none,addr=192.168.199.52)
192.168.199.52:/share/tools                 on  /share/xvs/tools                                    type  nfs4             (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.199.169,local_lock=none,addr=192.168.199.52)
192.168.199.52:/share/log/ccd-sdv9/results  on  /share/xvs/results                                  type  nfs4             (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.199.169,local_lock=none,addr=192.168.199.52)
tmpfs                                       on  /run/user/1000                                      type  tmpfs            (rw,nosuid,nodev,relatime,size=3200100k,mode=700,uid=1000,gid=1000)
gvfsd-fuse                                  on  /run/user/1000/gvfs                                 type  fuse.gvfsd-fuse  (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sda2                                   on  /run/media/m2/82ef97ec-68ee-46f5-9709-90aa2d995ded  type  xfs              (rw,nosuid,nodev,relatime,attr2,inode64,noquota,uhelper=udisks2)
tmpfs                                       on  /run/user/0                                         type  tmpfs            (rw,nosuid,nodev,relatime,size=3200100k,mode=700)
[root@ccd-sdv9 ~]# df -h
Filesystem                                  Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root                       111G   45G   60G  43% /
devtmpfs                                     16G     0   16G   0% /dev
tmpfs                                        16G  100K   16G   1% /dev/shm
tmpfs                                        16G   11M   16G   1% /run
tmpfs                                        16G     0   16G   0% /sys/fs/cgroup
/dev/nvme0n1p2                             1014M  340M  675M  34% /boot
/dev/nvme0n1p1                              200M  9.5M  191M   5% /boot/efi
192.168.199.52:/share/images                2.0T  857G  1.1T  45% /share/xvs/img
192.168.199.52:/share/tools                 246G  6.9G  227G   3% /share/xvs/tools
192.168.199.52:/share/log/ccd-sdv9/results  8.0T  2.5T  5.2T  32% /share/xvs/results
tmpfs                                       3.1G   12K  3.1G   1% /run/user/1000
/dev/sda2                                  1014M   41M  974M   5% /run/media/m2/82ef97ec-68ee-46f5-9709-90aa2d995ded
tmpfs                                       3.1G     0  3.1G   0% /run/user/0
[root@ccd-sdv9 ~]#

扩展与延伸:
若想开机自动挂载,只要修改/etc/fstab文件即可。
文件挂载的配置文件:/etc/fstab [root@ccd-sdv9 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Dec 30 16:54:07 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       ext4    defaults        1 1
UUID=f76e5df9-fa2a-4800-9f13-8312eba36b65 /boot                   xfs     defaults        0 0
UUID=77B3-50A7          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

每行定义一个要挂载的文件系统;

其每行的格式如下:

要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
dev/mapper/rhel-root / ext4 defaults 1 1

要挂载的设备或伪文件系统:设备文件、LABEL(LABEL=””)、UUID(UUID=””)、伪文件系统名称(proc, sysfs)

挂载点:指定的文件夹

挂载选项:defaults

转储频率:

0:不做备份

1:每天转储

2:每隔一天转储

自检次序:

0:不自检

1:首先自检;一般只有rootfs才用1;

3.其它

1)find ./ -name  '*' | grep "qemu" 

2)xargs 将标准输入转换成命令行参数
例如:
linux 删除不同文件夹内相同的文件
	find A -name c.txt | xargs rm -rf
	#之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令

3)2>&1 > /dev/null
	#不让信息显示在屏幕,不论正确与否,都输出到/dev/null

4)uptime 命令用于查看系统的负载情况

我经常会用”watch -n 1 uptime”来每秒刷新一次获得当前系统的负载情况,输出内容分别为系统当前时间、系统已运行时间、当前在线用户以及平均负载值。
而平均负载分为最近1分钟、5分钟、15分钟的系统负载情况,负载值越低越好(小于1是正常)。

[root@ccd-sdv3 ~]# uptime
 14:49:43 up  1:08,  5 users,  load average: 2.56, 2.33, 2.05
[root@ccd-sdv3 ~]#