day04 Linux基础命令

查看帮助信息命令

1、man命令:man命令的功能是查看指定命令的详细解释。
	格式:man [具体需要被查看的命令]
        [root@localhost ~]# man reboot
        [root@localhost ~]# man cd
	
	搜索快捷键:
			第一步:按 / 键
			第二步:输入搜索的内容
			第三步:回车,会定位搜索内容,搜索不到没有反应
			第四部:按q退出
2、help命令:help命令查看出来是精简过后的解释。
	格式:--help
	[root@localhost ~]# shutdown --help

系统快捷键

Tab键(必须唯一) 补全命令

Ctrl键 +  d		退出当前登录的用户

Ctrl键 +  a  	将当前的光标移动命令行的行首

Ctrl键 +  e  	将当前的光标移动命令行的行尾

Ctrl键 +  c		取消当前的操作  

Ctrl键 +  u		剪切当前光标所在位置及向前的所有内容

Ctrl键 +  y		粘贴剪切板上面的内容  

Ctrl键 +  k		剪切当前光标所在位置及向后的所有内容

delete			从前往后删除一个字符

Ctrl键 +	 w		从后往前删除一组字符串,默认以空白字符为分割符

Ctrl键 +	左方向键	把光标位置向左移动一组字符串,默认以空白字符或者特殊字符为分割符

Ctrl键 +	右方向键	把光标位置向右移动一组字符串,默认以空白字符或者特殊字符为分割符

Ctrl键 +  l			清屏  clear

Ctrl键 +  r			搜索历史的执行的命令,直接执行

Ctrl键 +  s			锁屏

Ctrl键 +  q			解锁  

Ctrl键 +	 z			将前台运行的执行暂停到后台

Esc键 +  .			获取上一条命令最后的参数或者其它内容

!!					执行上一条命令 

!命令				  找到最近的一次符合条件的命令执行

linux操作系统目录路径相关命令

pwd命令

1、pwd 命令: 查看当前所在目录的路径(绝对路径)
	实际上使用的是系统环境变量中的PWD的值
    [root@localhost ~]# cd /etc
    [root@localhost etc]# pwd
    /etc

2、printenv : 打印系统环境变量
	系统环境变量:系统默认给咱们定义的变量
	 [root@localhost ~]# printenv 

cd命令:切换目录

绝对路径:一个文件完整的路径(注:绝对路径的参照物是根目录)	
相对路径:一个目录参照路径(注:相对路径的参照物一般是当前目录)

特殊的路径:
    ~ 	: 代表家目录
    . 	: 代表当前目录
    ..	: 代表上级目录
    - 	:代表上一次待的目录

案例1:切换目录的几种操作
        [root@localhost ~]# cd /etc/sysconfig/network-scripts # 切换到network-scripts目录
        [root@localhost network-scripts]# cd /etc # 切换到etc目录
        [root@localhost network-scripts]# cd ../../ 切换到etc目录
        [root@localhost etc]# cd -  # 切换到上一次待的目录
        /etc/sysconfig/network-scripts # 上一次目录

案例2:切换到家目录的几种方式
    [root@localhost ~]# cd /root   # 切换到root目录
    [root@localhost ~]# cd ~       # 切换到家目录

mkdir命令:创建目录

mkdir命令:创建目录的命令
    格式:mkdir [选项(非必须)] [被创建的目标路径]
    选项:-p    自动创建父目录
    	 -m	   创建目录时并设置权限
	     -v    显示创建过程
	[root@localhost ~]# mkdir meng               # 创建单层目录    
	[root@localhost ~]# mkdir -p /root/meng/nb   # 自动创建多层目录

文件目录相关命令

touch创建文件命令

touch 命令:创建文件命令
    格式:
    	touch [选项] [被创建的文件的路径]
	创建多次文件:
        {} : 表示循环
        ..  : 连续
        ,	: 不连续
        
案例1:
	[root@localhost ~]# touch /root/meng/nb/666     # 创建666这个文件(前提是有这些文件夹)
	[root@localhost ~]# touch                       # 创建一个文件
	
案例2:创建meng1~meng100中所有的文件
    [root@localhost ~]# touch meng{1..100}           # 创建1-100所有的文件

案例3:创建meng111~meng199的所有目录,并在其中目录创建1-100文件
    [root@localhost ~]# mkdir meng1{11..99}          # 先创建目录,说明目录也是可以循环的
    [root@localhost ~]# touch meng1{11.99}/meng      # 在meng文件夹中,创建文件
    
案例4:创建meng003、meng005、meng006三个目录
    [root@localhost ~]# mkdir meng00{3,5,9}          # 逗号可以跳着创建目录
    [root@localhost ~]# mkdir meng00{3,5,9} /meng    # 逗号可以跳着创建文件

ls命令查看目录文件命令

ls命令:查看指定目录下的所有文件
    格式:ls [选项]  [指定的路径] 
    # 注:
         ls后默认跟的是当前文件夹的路径
         隐藏文件:Linux中以.开头的文件即为隐藏文件
			
	选项(参数):
        -l : 查看文件详细信息   # ls -l简写ll,效果一样
        -1 : 数字,以行的形式显示目录列表
        -a : 查看隐藏文件
        -h : 格式化显示文件大小(前提:必须跟-l参数一起使用)
        -s :显示文件和目录大小
        -t :用文件和目录的更改时间排序
        --full-time:列出完整的日期与时间;
        --color=auto : 显示颜色(注:不能够通过颜色判断文件属性)
        
	文件属性标识符:
			f(FILE    -) 	: 普通文件的标识符
			d(DIRECTORY) 	:  普通文件夹的标识符
			
    # dd:生成一个1000MB的文件
        [root@localhost ~]$ dd if=/root/meng of=meng.txt bs=10M count=100
        if : 指定读取的文件
        of :  指定写入的文件
        bs :  定义一次写入多少内容
        count:定义写入多少次

案例1:
    [root@localhost ~]# ls -a    # 显示文件的隐藏文件
    [root@localhost ~]# ls -l    # 显示文件的详细信息
    [root@localhost ~]# ll       # 显示文件的详细信息,效果和ls -l一样
    total 12                     # 当前目录所有文件的总和
    -rw-------. 1 root root 1776 Sep 14 21:27 anaconda-ks.cfg
    -rw-r--r--. 1 root root 5632 Sep 14 21:31 init.sh             
    drwxr-xr-x. 3 root root   16 Sep 15 15:40 meng                # d 文件夹标识符
文件的属性:
        -  			:文件的属性 
        rw-r--r--.	: 文件的权限
        r : 可读
        w : 可写
        x : 可执行
        - :没有对应的权限
        
权限位:
        属主(自己)
        属组(指定组中的所有的用户的权限)
        其他用户
        1 			: 硬链接个数
        硬链接
        软连接
        root root	: 属主 属组
        1776		: 文件的大小(单位:字节 B)
        Sep 14 21:27 : 文件创建的时间
        init.sh			: 文件的名称

alias别名命令

alias命令:设置别名
    格式: alias 字符="相关的命令"
    
案例:
    [root@localhost ~]# alias               # 查看系统所有的别名
    [root@localhost ~]# alias la="ls -a"    # 给ls -a设置一个别名
    [root@localhost ~]# la                  # 一样可以使用
    .  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  init.sh  .lesshst  meng  .pki  .tcshrc

echo输出命令

echo命令:输出指定的字符串
    格式:echo [输出的内容] [重定向字符(非必须)] [重定向的文件(非必须)]
    选项:
        \a 发出警告声;
        \b 删除前一个字符;
        \c 最后不加上换行符号;
        \f 换行但光标仍旧停留在原来的位置;
        \n 换行且光标移至行首;
        \r 光标移至行首,但不换行;
重定向:
    >		: 覆盖重定向(先将文件中原有的内容清空,然后写入内容到文件)
    >>		: 追加重定向(将内容写入到文件最后边,原有的内容不变)
    重定向	: 把某个内容,通过某种方式输入到指定文件中,即为重定向

案例1:
    [root@localhost ~]# echo "hello baby"   # 直接打印
	hello baby
	
案例2:将Hello Wolrd输出到文件2.txt中
	[root@localhost ~]# echo "hello baby" >mdd.txt  # 把指定的内容传到指定文件,没有文件会创建一个
	[root@localhost ~]# echo "hello baby" >>mdd.txt  # 把指定的内容追加到指定文件后面

cat命令:查看文件内容

cat命令:打印,读取
	格式: cat [读取的文件路径]
    选项:
        -n或-number:有1开始对所有输出的行数编号;
        -b或--number-nonblank:和-n相似,只不过对于空白行不编号;
        -s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

案例:
    [root@localhost ~]# cat /root/meng >mss.txt   # 把root/meng文件内容,传给mss.txt
    [root@localhost ~]# cat mss.txt

    [root@localhost ~]$ cat > mss.txt <<EOF
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    EOF   # 一定要顶格写
    [root@localhost ~]$ cat 4.txt 
    
    [root@localhost ~]$ cat -n mdd.txt  # 读取mdd.txt中的内容,并打印行号

cp命令:复制文件

cp命令:复制文件,拷贝
	格式:cp [选项(非必须)] [原路径] [新路径]
	选项:
		-r		# 递归复制
		-p		# 保持属性
		-d		# 保持链接文件
		-a		===-pdr
		-i		# 文件存在时,提示是否覆盖
		-t		# 把源目标和目标的位置进行调换
		
案例:
    [root@qls opt]# cp  -p  data9.txt  /mnt			#复制的同时,保持文件的属性
    [root@qls opt]# ll /mnt
    
    [root@localhost ~]# cp -p 5.txt /tmp/            # 不更改其创建时间
    [root@localhost ~]# cp  -p  data9.txt  /mnt/data.log		#复制的时候,可以重命名
    [root@localhost ~]# ll /mnt