Linux打卡3

回顾:

shell: type,which, 环境变量PATH

[[email protected] ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

引用变量:${变量名}

变量:命名的内存空间,在shell中直接可以找到

使用帮助:

# help 命令

# 命令  --help

# man [section] 命令

1-8: 1, 8, 5

1G:翻到第一行

G:翻到最后一行

q

# info

# 应用程序自带的文档:README, INSTALL, /usr/share/doc

# google

# 发行版的官方文档

命令的使用格式:

命令  选项   参数

export LANG=en

新课程:

系统管理类的命令:

shutdown [option]...  TIME

-r: 重启

-h:关机

-c:取消重启或关机命令  shutdown -c

时间格式:

now

+#: #分钟以后

hh:mm  在指定时间进行关机

reboot

halt -p

poweroff

日期时间管理类命令:

date(系统时钟), hwclock(硬件时钟)

# date

# date MMDDhhmm[CC]YY.ss  月日时分年.秒

[[email protected] ~]# date 100711032015.22

Wed Oct  7 11:03:22 EDT 2015

使用这个可以直接设置系统时间

# date [+FORMAT]

%Y:四位年份

%y: 2位年份

%m: 月

%M:分

%d: 日

%h: 月份

%H: 时

%S:秒

%D: 日期

%F: 日期

[[email protected] ~]# date +%F

2015-10-07

[[email protected] ~]# date +%Y-%m-%d

2015-10-07

[[email protected] ~]# date +%F-%H-%M-%S

2015-10-07-11-31-04

时间都是大写,日期都是小写。

unix元年:1970-01-01 00:00:00

%s: timestamp

[[email protected] ~]# date +%s

1444232025

#cal 查看日历

Linux有两个时钟:

硬件时钟:刚开机时使用

软件时钟:开机时读取硬件时钟

hc

sys

hwclock可以设定两个时钟同步:

-s: 以硬件时钟为准, --hctosys

-w: 以系统时钟为准, --systohc

[[email protected] ~]# hwclock ;date

Sat Oct  3 12:02:47 2015  -0.787231 seconds

Wed Oct  7 11:12:49 EDT 2015

[[email protected] ~]# hwclock -w

[[email protected] ~]# hwclock ;date

Wed Oct  7 11:13:04 2015  -0.424462 seconds

Wed Oct  7 11:13:03 EDT 2015

总结:man, info, help, date, hwclock, cal, shutdown, reboot, halt, poweroff, type, cd, which, dirname, basename, who, which, whatis, makewhatis, echo, hash, tty

/: 根分区,根文件系统,rootfs,关联分区进行挂载和卸载操作。

文件和目录管理类的命令:

当前所在的目录:工作目录

家目录,主目录  cd ~可以实现回到家目录

shell的命令行展开:能够把一个特殊字符换成别的字符;

~: 指定用户的家目录;

{,}: 展开为多个条目;

x/{a,b} = x/a, x/b

目录:

cd ~[username] 回到某个用户的目录,只有root可以操作

cd -:回到上一次所在目录;

/usr/share/doc/yum-3.2.1

cd - = /usr/share/doc

cd - = /usr/share/doc/yum-3.2.1

cd -

路径:

相对路径中:

.: 当前目录

..: 父目录

pwd: print working directory

mkdir: 创建目录

-p: 先创建父目录(parent);

-v: 显示详细信息;

mkdir /a/b/c/d

x/a, x/b, x/a/m, x/a/n

mkdir -pv x/{a/{m,n},b} 同时创建父目录

[[email protected] ~]# mkdir -pv x/{a/{m,n},b}

mkdir: created directory `x‘

mkdir: created directory `x/a‘

mkdir: created directory `x/a/m‘

mkdir: created directory `x/a/n‘

mkdir: created directory `x/b‘

a_c, a_d, b_c, b_d

mkdir a_c a_d b_c b_d

mkdir {a,b}_{c,d}

(x+y)(m+n) = xm + xn + ym + yn

rmdir:删除空目录,是删除目录不是文件,如果目录下有文件,则无法删除

rmdir -p /x/c/v  指的是删除v,但如果一线单传的都是空的话就全删

练习:创建/tmp/mylinux/usr/local/bin, /tmp/mylinux/usr/local/sbin, /tmp/mylinux/etc/sysconfig, /tmp/mylinux/etc/init.d, /tmp/mylinux/bin, /tmp/mylinux/sbin

# mkdir -pv /tmp/mylinux/{usr/local/{bin,sbin},etc/{sysconfig,init.d},bin,sbin}

命令的执行结果:

mkdir: created directory `/tmp/mylinux‘

mkdir: created directory `/tmp/mylinux/usr‘

mkdir: created directory `/tmp/mylinux/usr/local‘

mkdir: created directory `/tmp/mylinux/usr/local/bin‘

mkdir: created directory `/tmp/mylinux/usr/local/sbin‘

mkdir: created directory `/tmp/mylinux/etc‘

mkdir: created directory `/tmp/mylinux/etc/sysconfig‘

mkdir: created directory `/tmp/mylinux/etc/init.d‘

mkdir: created directory `/tmp/mylinux/bin‘

mkdir: created directory `/tmp/mylinux/sbin‘

练习:创建/tmp/a b

[[email protected] tmp]# mkdir ‘a b‘    也可以使用双引号,和下划线

[[email protected] tmp]# ls

a b  yum.log

shell中的引用:

‘‘:强引用(输入什么值就显示什么值),变量替换不会进行

"":弱引用,能够执行变量替换

``(反引号):命令替换,引用命令的执行结果;命令替换的另外一符号:$(命令);

反引号里面是指令

[[email protected] ~]# echo "time is `date +%T`"

time is 12:37:06

双引号中用了反引号

变量替换:${变量名}    得到的是变量名对应的值

echo

练习:创建以当前时间命令目录,例如2014-02-11-16-25-20;

# mkdir `date +%F-%H-%M-%S`

# mkdir $(date +%F-%H-%M-%S)

练习:

1、创建/tmp/etc/rc.d, /tmp/etc/rc.d/init.d, /tmp/etc/rc.d/rc0.d, /tmp/etc/sysconfig, /tmp/etc/pam, /tmp/etc/yum.repos.d/

mkdir -pv etc/{rc.d/{init.d,rc0.d},sysconfig,pam,yum.repos.d}

2、创建/tmp/etc/rc.d, /tmp/etc/rc.d/init.d, /tmp/etc/rc.d/rc0.d, /tmp/etc/sysconfig, /tmp/etc/pam, /tmp/etc/yum.repos.d/, /tmp/usr, /tmp/usr/share, /tmp/usr/share/doc, /tmp/usr/share/man, /tmp/usr/bin, /tmp/usr/sbin, /tmp/usr/lib, /tmp/usr/lib64

命令总结: pwd, mkdir, rmdir

shell的特性之三:命令历史

bash保存的过去曾经执行过的命令的列表;

当前shell进程的保存在缓冲区中;

缓冲区中的命令会在shell退出时保存至文件中, .bash_history

使用上下箭头键可以翻看此前曾经执行过的命令;

history快捷方式(以前输入过的指令):以下直接输入即可

!#: #为命令历史列表中的命令编号;可用执行第#条命令;

!!: 执行上一条命令;

!-#: 执行命令历史列表中的倒数第#条命令;

!string: 执行命令历史列表中的最近一次以string开头的命令;

!$: 引用上个命令的最后一个参数; ESC, .

history

-c: 清空列表

-d #: 删除指定的历史命令

-a: 追加当前会话的命令历史至历史文件中去;

-n: 将历史文件的指令附加到list中

-a:将list的指令附加到历史文件中

命令历史相关的环境变量:

HISTSIZE:命令历史中List中可以保存的命令的个数;  echo $HISTSIZE

HISTFILE: 命令历史文件,文件的位置

HISTFILESIZE:命令历史文件可以保存的命令的个数;

[[email protected] ~]# echo $HISTFILE

/root/.bash_history

[[email protected] ~]# echo $HISTFILESIZE

1000

HISTCONTROL: 控制命令历史的生成;下面3个是HISTCONTROL的可以赋的值

ignoredups: 忽略记录重复的命令;连续的相同命令才为重复;

ignorespace: 不记录以空白字符开头的命令;

ignoreboth: 同时具有上面两种特性;

补充:Linux文件系统的另一特性:以点号开头的文件为隐藏文件; ls -a

shell中的变量赋值:

变量名=值

注意:变量在赋值时不能使用$;

变量名只能包含字母、数字和下划线,而且不能以数字开头;

变量名区别大小写;

FHS: 文件层次结构标准

/bin: 所有用户可执行的程序,可执行程序,操作系统启动自身运行就会用到的程序

/sbin: 管理员可执行的程序,可执行程序,操作系统启动自身运行就会用到的程序

/usr/bin,为了保证操作系统具备基本功能,提供的基本操作程序

/usr/sbin,为了保证操作系统具备基本功能,提供的基本操作程序

/usr/local/bin,用来安装第三方程序的,例如oracle,mysql

/usr/local/sbin,用来安装第三方程序的

/boot: 存放系统引导文件:内核、ramfs文件、bootloader(grub);

/dev: 设备文件存放目录,是特殊文件的一种类型;

/etc: 配置文件的存放目录;

/etc/sysconfig:

/etc/init.d: 系统服务脚本,和运行级别相关的

/home: 普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录;

/root: 管理员的家目录;

/lib, /lib64:库文件,这里存放的是标准的库文件,/bin和/sbin和/usr/bin和/usr/sbin的程序需要的库文件都在这里,而/usr/local/bin不是,它有自己的库文件

/media: 专用挂载位置,通常用来挂载便携式设备,例如插入个U盘,其文件挂载在media下。

/mnt: 专用挂载位置,挂载额外存储设备,例如新加了一个硬盘

/misc: 备用目录

/opt: 备用目录,但通常用来安装第三方软件;

/proc: 伪文件系统,内核参数的映射,这里面显示的是内核的运行状态参数,一关机就没了,表现为文件:文件名为参数名,内容为value。

/sys: 伪文件系统,系统级别的用于配置外围设备的参数,硬件参数,表现为文件:文件名为参数名,内容为value。

/srv: 为服务提供数据存放位置;

/tmp: 临时文件系统;

/usr: 共享文件  s: shared(文件可以在所有遵循FSH规范的所有linux系统上使用), r:readonly(只读)

/usr/include: 头文件

/var: 频繁发生变化的文件

/var/log  日志

/var/lock  锁文件,服务

/var/run

/var/cache

普通用户只有tmp和家目录下可以创建自己的文件。

时间: 2024-08-01 21:09:01

Linux打卡3的相关文章

linux HBA 卡驱动安装

系统环境操作系统 : RHEL5.0设备 DL580G5  HBA 卡:Qlogic 2343连接存储: EVA8100----------------------------------------------------------------------------------HBA 卡 HP 网站下载地址:ftp://ftp.hp.com/pub/softlib/software10/COL19426/co-74973-1/hp_qla2x00-2009-03-17.tar.gzftp:

Kali Linux 安装 卡在 探测网络硬件 解决方法

在虚拟机上安装 Kali 的时候什么问题都没有,在实体机上安装就出现问题了. 首先选择的是 Install,就是文字安装,安装的时候经过选择国家语言,到探测网络硬件,屏幕上显示"探测网络硬件",然后就一直卡在那.然后又用了 Graphical Install,结果还是一样,等了半个小时还是卡着不动. 在网上找了有方法可以跳过探测网络硬件的,但是我试过了发现还是不行,因为他跳过探测网络硬件的话,后面的获取网络地址还是会卡住. 然后没办法了,就准备先从 Live 进系统看看,进这个倒是一点

Linux SD卡建立两个分区

本文主要介绍Linux 环境下SD卡建立两个分区的操作流程: 操作环境:Linux Ubuntu 2016.4 操作目的:将 SD 卡分为两个分区:第一分区格式为 FAT32,大小500M.第二个分区为 ext4,占剩下的所有空间,用来装 Ubuntu的文件系统 具体操作如下: 一 . 使用 lsblk 或者 fdisk -l 查看系统上的存储设备,找出SD卡的设备名,我的系统上SD卡的设备名是:/dev/sdb,包含一个分区,分区名是sbb1 二 . 使用命令fdisk开始分区 1. sudo

Linux RAID卡优化

介绍 我们的生产服务器经常会做raid存储,但是单单做了raid就能保证性能高效和数据安全吗?答案是否定的,我们一般建议使用带电池保护的RAID卡,这样既能保证性能有能保证数据安全,但是也需要经常对电池进行维护:由于成本原因一般的RAID卡会使用锂电池,因为锂电池有较强的惰性,它在非充电状态下会缓慢地自放电(电池特性),一段时间后电量就会和刚充满电时不同,为了能够及时校准电量避免电池因为自放电而导致电量不明确,于是阵列卡控制器会对电池进行周期性地充放电操作(Relearn),以此保证电量的准确性

学习日志---linux打卡2

这个是计算机组成: 在系统启动时,除了启动系统空间守护进程以外,在用户空间会启动一个init进程,这是用户空间进程的祖宗进程,由该进程可以启动shell进程(外壳进程),这样就可以由外壳去启动其他的与用户交互的用户进程. 学习记录: Unix: Linux: Unix-like, 类Unix系统 Linux: 内核,linux就是指的核心 GNU自由软件组织:GPL, gcc, emacs, vi, GNU/Linux: 结合,使用内核+其他的应用程序 Linux: www.kernel.org

学习日志---Linux打卡1

直接操作硬件的,由cpu的特权指令集去操作,一般的操作都是普通指令集.cpu有指令集,不同的cpu可能指令集都不同. API:Application Programing Interface ABI: Application Binary Interface ANSI: 编译前的是调用API,编译后的是ABI,程序在哪里编译就在哪里运行. 预处理->编译->汇编->链接 dll: Dynamic Link Libraries动态链接库   window上 so: shared objec

学习日志---Linux打卡6

回顾: 文件管理:ls, cat, tac, tail, head, more, less, cp, mv, rm, touch, stat, file, nano 用户管理:useradd, usermod, userdel, passwd, groupadd, groupmod, groupdel, id, su, chage, chfn, chsh, newgrp, gpasswd 用户类型: 管理员:0 一般用户:1-65535 系统用户:1-499, 这些用户的作用是系统刚启动是用来启

学习日志---linux打卡10

练习:写一脚本,实现如下功能: 1.让用户通过键盘输入一个用户名 2.如果用户存在,就显示其用户名和UID: 3.否则,就显示用户不存在: #!/bin/bash read -t 10 -p "Enter a username: " userName       -t是等待时间 # userName=${userName:-root}                      不输入则使用默认值 if id $userName &> /dev/null; then use

linux kernel 卡在提示信息Waiting for root device /dev/mmcblk0p1...处

一.背景 1.1 移植linux-4.14内核的过程中,此时使用的是ext4文件系统,并且将根文件系统存储在sd卡的第一个分区上 1.2 内核打印完Waiting for root device /dev/mmcblk0p1...这一句信息之后并没有panic,而且串口还可以回应 二.分析 既然处在一直等待根文件系统挂载,那么可以去扒一下内核代码,请看 /* * Prepare the namespace - decide what/where to mount, load ramdisks,