学习笔记之文件处理命令

文件管理:
   ls:查看目录
   cd:切换目录
   pwd:打印目录
   mkdir:创建空目录   mkdir -pv /mnt/x/{m,n}
      -p:递归创建目录     mkdir -p /x/y/z
      -v:显示创建过程的详细信息
   tree:查看目录树
   rmdir:删除空目录 -p
   touch:创建文件
      -m:修改modify time
      -a:修改access time
      -c:修改change time
      -t:指定时间
   rm:删除文件  –>\rm 使用rm本身,忽略别名
      -i:删除前询问
      -f:force,强行删除
     -r:递归删除
cp:copy 复制文件–>cp src dest   cp file1 file2 目录
    -r/-R:复制目录
    -f:force,强制执行
    -i:复制前询问
    -p:保留文件原有的属组、权限等
    -a:保留文件原有所有属性
mv:move,移动文件  mv src dest
cut:
   -d:指定分隔符,默认是空格
   -f:指定显示的字段 -f 1,3   -f 1-3
sort(排序):
   -n:数值排序
   -r:降序排序
   -t:指定字段分隔符
   -k:以哪个字段为关键字排序
   -u:排序后相同的行只显示一次
   -f:排序是忽略字符大小写
uniq:
   -d:只显示重复的行
   -c:显示重复的个数
wc(文本统计):
  -l:line,显示文本行数
  -w:word,只显示单词数
  -c:只显示字符数
  -L:显示最长的一行包含多少字符

Linux文件系统

文件系统:
      根文件系统:rootfs
     /boot:系统启动相关的文件,如内核、initrd以及grub(bootleader)
    /dev:设备文件
   块设备:随机访问
  字符设备:线性访问,按字符为单位
   /etc: 配置文件
   /home:用户的家目录,默认为/home/username
   /root:root的家目录
   /lib:库文件和内核模块文件(/lib/modules)
   /media:挂载点目录:移动设备
   /mnt:挂载点目录:额外的临时设备
   /opt:可选目录
  /sys:伪文件系统,跟硬件设备相关的属性映射文件
   /tmp:临时文件,一个月自动删除
   /var:可变化文件
   /bin:可执行文件,用户命令
   /sbin:管理命令

Linux之命令在线帮助

命令使用帮助:
      内部命令:help COMMAND
     外部命令:COMMAND –help
     命令手册:man COMMAND
     man命令分章节:
          1:用户命令
          2:系统调用
          3:库调用
          4:特殊文件(设备文件)
          5:文件格式(配置文件的语法)
          6:游戏
          7:杂项
          8:管理命令(/sbin、/usr/sbin、/usr/local/sbin)
    查看命令有哪些章节:whatis COMMAND
   []可选项   <>必选项  …可以出现多次 {}分组
   NAME:命令名称和功能简要说明
   SYNOSIS:用法说明
   DESCRIPTION:命令功能的详尽说明,可能包括一个选项的详细说明
   OPTIONS:说明每一个选项的意义
  FILES:此命令相关的配置文件
  EXAMPLES:使用示例
 SEE ALSO:另外参照
翻屏:
     向后翻一屏:SPACE
     向前翻一屏:b
     向后翻一行:ENTER
     向前翻一行:k
查找:
      /KEYWORD 向后  n:下一个  N:前一个
     ?KEYWORD 向前
退出:q

DNS解析——www.baidu.com解析过程

当访问www.baidu.com这个网站时,客户端会先到本地的DNS服务器上查找是否有www.baidu.com的缓存,如果有直接返回IP地址给客户端。如果没有,本地的DNS服务器就会向根服务器发起请求,根服务器收到这个请求后,知道它是com.这个顶级域下的,所有会返回com的主机名和IP地址,然后本地服务器再向com这个域名服务器发起请求,com域知道这个请求是baidu.com这个域,就返回baidu.com的ip地址。最后本地DNS服务器向baidu.com这个域发起请求,baidu.com收到后,查了发现有www.baidu.com这台主机,就把他的IP地址返回。这样就能访问www.baidu.com这个网站了。

在DNS解析过程中涉及两个过程:递归和迭代。所谓递归就是客户端向本地DNS服务器发起请求,本地DNS服务器将一个准备的IP返回。而迭代是指本地DNS服务器向根域、com域发起请求,而这些服务器并不直接返回准备的IP地址,而是告诉你另一台DNS服务器的地址。

Linux常用命令——useradd

[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] \
> -[Mm] [-c 说明栏] [-d home] [-s shell] username
参数:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个群组名称,该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料喔!
-M :强制!不要建立使用者家目录
-m :强制!要建立使用者家目录!
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~
-d :指定某个目录成为家目录,而不要使用默认值;
-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)
-s :后面接一个 shell ,预设是 /bin/bash 的啦~

例1:创建一个用户,用户名bzq1,所属组bzq
[root@localhost ~]# useradd -u 888 -g bzq bzq1
[root@localhost ~]# ls -l /home
总用量 8
drwx——. 26 bzq bzq 4096 1月 26 19:49 bzq
drwx——. 4 bzq1 bzq 4096 2月 7 20:21 bzq1
例2:创建用户nologin,设置shell为/sbin/nologin,并指定家目录
[root@localhost ~]# useradd -s /sbin/nologin -d /home-nologin nologin
[root@localhost ~]# tail -1 /etc/passwd
nologin:x:889:889::/home-nologin:/sbin/nologin

grep练习

1.显示/etc/passwd文件中以bash结尾的行
[root@localhost ~]# grep “bash$” /etc/passwd

2.显示/etc/passwd文件中的两位数或三位数
[root@localhost ~]# grep -o “\<[[:digit:]]\{2,3\}\>” /etc/passwd

3.显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
[root@localhost ~]# netstat -tan |grep “LISTEN.*$”

4.添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
[root@localhost ~]# useradd bash
[root@localhost ~]# useradd basher
[root@localhost ~]# useradd -s /sbin/nologin nologin
[root@localhost ~]# grep “^\(\<[[:alnum:]]\+\>\).*\1$” /etc/passwd

5.显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
[root@localhost ~]# useradd centos
[root@localhost ~]# useradd user1
[root@localhost ~]# cat /etc/passwd |cut -d: -f1,3,7 |egrep “^root|centos|user1”

6.找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
[root@localhost ~]# egrep “\<[[:alpha:]_]+\>\(\)” /etc/rc.d/init.d/functions

7.使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
[root@localhost ~]# echo /etc/rc.d/init.d/functions |egrep “([^/][[:alnum:]]+)$” 取出路径基名

[root@localhost ~]# echo /etc/rc.d/init.d/functions |egrep “.*/” 取出目录名

8.找出ifconfig命令执行结果中1-255之间的数字
[root@localhost ~]# ifconfig |egrep “\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\>)”

世界,你好!

自从进入IT行业,就想搭建一个属于自己的网站,准备了很久,终于在今天搭建好了。

既然搭建的是一个博客,我将在这上面分享一些我自己的学习笔记和学习经验。

同样我会将我自己的搭站经验分享出来,帮助大家搭建自己的博客。

希望未来和大家一起成长。