Linux命令

发布于:2024-08-13 ⋅ 阅读:(134) ⋅ 点赞:(0)

1.cat

   参数:
      -n:显示行号
      -s:压缩连续的空行,只显示一个空行

2.chattr 改变文件属性

语法:
	chattr  [-RV] [+/-/=<属性>][文件或目录]
属性:
	a:让文件或目录仅供附加用途
 	i:不得任意更改文件或目录
 	s:保密性删除文件或目录
 参数:
 	-R:递归处理制定目录下的所有文件以及子目录
 	-V:显示指令执行过程
	+<属性>:开启文件或目录的该属性项
 	-<属性>:关闭文件或目录的该属性项
实例:
   1.chattr +i /etcresolv.conf  ##使用chattr命令防止系统中某个文件被修改
   2.chattr +a /var/log/messages  ##让某个文件只能往里面追加数据,但是不能删除,适用于各种日志文件

3.chgrp 变更文件或目录的所属群组

语法:
	chgrp [参数][所属群组][文件或目录]
参数:
	-v:显示指令执行过程
	--reference=<参考文件或目录>
实例:
	1.chgrp -v bin log2021.log  #改变文件log2021.log的群组属性
	   过程:
	      [root@localhost test]# ll
		  ---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
		  [root@localhost test]# chgrp -v bin log2012.log
		  [root@localhost test]# ll
	      ---xrw-r-- 1 root bin   302108 11-13 06:03 log2012.log
	2.chgrp --reference=log2012.log log2013.log  ##根据执行文件log2012.log的属组更改其他文件log2013.log的群组属性
	    过程:
	      [root@localhost test]# ll
		  ---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log
		  -rw-r--r-- 1 root root     61 11-13 06:03 log2013.log
		  [root@localhost test]#  chgrp --reference=log2012.log log2013.log 
	      [root@localhost test]# ll
		  ---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log
		  -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

4.chmod 修改用户对文件的权限

 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b571c084bd11407e9780277e626ef09b.png)
 	
 语法:
     chmod   [参数] mode 文件
 mode:
     u:文件拥有者 g:与该文件的拥有者属于同一个组的 o:代表其他意外的人 a:这三者都是
     +:代表增加权限 -:代表取消权限  =:表示唯一设定权限
     r:表示可读   w:表示可写  x:表示可执行  
 参数:
     -R:对目前目录下的所有文件与子目录进行相同的权限变更
    
 实例:
     find path/ -type d -exec chmod a+x {} \;   ##允许所有用户浏览或通过目录path/

5.chown 设置文件所有者和文件关联组,需要使用root用户才能执行

语法:
    chown [参数] user[:group] file ...
参数:
    user:新的文件拥有者的使用ID
    group:新的文件拥有者的使用者组
    -R:处理制定目录以及其子目录下的所有文件
实例:
    1.chown root /var/run/httpd.pid   将/var/run/httpd.pid的所有者设置root
    2.chown runoob:runoobgroup file1.txt    将file1.txt文件的拥有者设置为runoob,群体的使用者runoobgroup
    3.chown -R runoob:runoobgroup *  将当前目录下的所有文件与子目录的拥有者都设置为runoob,群体的使用者runoobgroup

6.cut 显示每行从头开始算起num1到num2的文字

参数:
    -d:设置间隔符号
    -f:设置需要查看的列数
实例:
    [root@localhost]# head -n 2 /etc/passwd
    root:x:0:0:root:/root:/bin/nash
    bin:x:1:1:bin:/bin:/sbin/nologin
    [root@localhost]# cut -d: f1 /etc/passwd   使用冒号 : 进行分割,只打印出第一列的数据
    root
    bin

6.ln 为某一个文件在另一个位置创建一个同步链接

语法:ln [参数] [源文件目录][目标文件或目录]

软链接和硬链接:
	硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。
	硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
	不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
	
	软链接:
		1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
		2.软链接可以 跨文件系统 ,硬链接不可以
		3.软链接可以对一个不存在的文件名进行链接
		4.软链接可以对目录进行链接
	硬链接:
		1.硬链接,以文件副本的形式存在。但不占用实际空间。
		2.不允许给目录创建硬链接
		3.硬链接只有在同一个文件系统中才能创建
参数:
    -f:强制执行
    -i:交互模式,文件存在提示用户是否覆盖
    -s:软连接
    -v:显示详细处理过程
实例:
    1.ln -s log2013.log link2013   给文件log2013.log文件创建软链接link2013,如果log2013.log	丢失,则link2013失效
    
      [root@localhost test]# ll
      -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
  	  [root@localhost test]# ln -s log2013.log link2013
	  [root@localhost test]# ll
	  lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
	  -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
    2. ln log2013.log ln2013      给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同  
	  
	   [root@localhost test]# ll
	   lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
	   -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
	   [root@localhost test]# ln log2013.log ln2013
	   [root@localhost test]# ll
	   lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
	   -rw-r--r-- 2 root bin      61 11-13 06:03 ln2013
	   -rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

7.find

语法:find  [路径] [匹配条件][动作]
参数:
    -name:按名字查找
    -type:按类型查找  可以是f(普通文件) d(目录) 
    -size [+-] size [cwbkMG]:按文件大小查找,支持使用+或-表示大于或小于指定大小,单位可以是c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或G(GB)
    -mtime days:按修改时间查找,支持使用+和-指定天数前后
动作:
     -amin n:查找在n分钟内被访问过的文件
     -atime n:查找在n*24小时内被访问过的文件
     -cmin n:查找在n分钟内状态发生变化的文件(例如权限)
     -ctime n:查找在n*24小时内状态发生变化的文件
     -mmin n:查找在n分钟内被修改过的文件
     -mtime n:查找在n*24小时内被修改过的文件        
  在这些参数中,n可以是正数,负数或0。正数表示在指定的时间内修改或访问过的文件,负数表示在指定时间前修改或访问的文件,0表示在当前时间点上修改或访问的文件
  
实例:
    1.查找当前目录以及子目录中文件名后缀为.txt的文件
    	find  -type f -name "*.txt"
    2.查找/var/log中在7天前修改过的,大于1MB的文件
        find  /var/log -mtime +7 -size +1M
    3.查找/var/log目录中更改时间在7天之前的普通文件,并且删除之前询问他们
        find  /var/log -type f -mtime +7 -ok rm {} \;

8.less 支持翻页、搜索浏览文件

语法:
    less  [参数]  文件
参数:
    -i:忽略搜索时的大小写
    -o<文件名>:将less输出的内容在指定文件中保存起来
    b:向上翻一页
    d:向后翻半页
    Q:退出less命令
    u:向前滚动半页
    y:向前滚动一行
    空格:滚动一页
    回车:滚动一行
    [pagedown]:向下翻一页
    [pageup]:向上翻一页 

9.more 类似于cat,但是可以一页一页显示

语法:
   more [参数] [-num] [+/pattern] [+linenum] [filename]
 参数:
      -num:一次显示的行数
      +/pattern:在每个文档显示前搜索改字符串(pattern),然后从该字符串之后开始显示
      +linenum:从第linenum行开始显示
 实例:
     从第20行开始显示文档testfile内容
        more +20 testfile
 常用操作:
      Enter 向下n行,默认1行
      空格    向下滚动一屏      
      Ctrl+B  返回上一屏
      V:调用vi编辑器
      q:退出more      

10.mv 更改文件或目录的名称,或将文件或目录移入其他位置

语法:
	 mv [options] source dest
     mv [options] source directroy
参数:
     -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
	 -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
	 -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
	 -n: 不要覆盖任何已存在的文件或目录。
	 -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
命令格式 运行结果
mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录) 将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录) 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory

11.rm 删除一个文件或目录

语法:
    rm [参数] 文件
参数:
    -i:删除前逐一询问
    -f:直接删除,不询问
    -r:将目录以下的文档逐一删除

12.split 将一个文件分割成数个

语法:
   split [-行数] [-b 字节][-l  行数] [-C 字节][要切割的文件][输出文件名]
参数:
    -<行数>:指定每多少行切成一个小文件
    -b<字节>:指定没多少字节切成一个小文件
    -C<字节>:与-b相似,但是在切割时尽量维持每行的完整性
实例:
     split -6 test.txt   将test.txt文件每6行分割成一个文件,执行完成后,split会将大文件test.txt分割成众多小文件,每个文件只有6行内容。

13.touch 修改文件或目录的时间属性,包括存取时间和更改时间,如果文件不存在,则创建文件。

语法:
    touch  [参数] [-d 日期时间] [-r 参考文件或目录] [-t 日期时间] [文件或目录]
参数:
   a:改变文档的读取时间
   m:改变文档的修改时间
   c:假如目的档案不存在,不会建立新的档案
   d:设定时间和日期,可以使用不同格式
   --no=create:不会创建新档案
实例:
    使用touch修改文件时间为当前系统时间
        $ ls -l testfile                #查看文件的时间属性  
		#原来文件的修改时间为16:09  
		-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile  
	在执行完touch后:
		$ touch testfile                #修改文件时间属性为当前系统时间  
		$ ls -l testfile                #查看文件的时间属性  
  	    #修改后文件的时间属性为当前系统时间  
	   -rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile  

14.which 查找文件

 实例:
     $ which bash   使用which查找bash的绝对路径

15.whereis 查找文件

参数:
      -b  查找二进制文件
      -B<目录>:只在设置的目录下查找二进制文件
      -f:不显示文件名前的路径名称
      -m:只查找说明文件
      -M<目录>  只在设置的目录下查找说明文件
      -s:只查找原始代码文件
实例:
      1.使用whereis查看bash的位置
            whereis bash
         输出:
            bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz 
         含义(从左到右):查询的程序名,bash路径,bash的man手册路径
       2.查询二进制文件或帮助文件
            $ whereis -b bash
            bash: /bin/bash /etc/bash.bashrc /usr/share/bash    # bash命令的二进制程序的地址  
            $ whereis -m bash
            bash: /usr/share/man/man1/bash.1.gz  #bash命令的帮助文件地址 

16.read 从标准输入(大部分是键盘)读取数据

参数:
    -a:后面跟一个变量,该变量会被认为是一个属组,然后给其赋值,默认是以空格为分割符
    -d:后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志
    -p:后面跟提示信息,在输入前提示消息会被打印出
    -e 在输入的时候可以使用命令补全功能。
	-n 后跟一个数字,定义输入文本的长度,很实用。
	-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
	-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
	-t 后面跟秒数,定义输入字符的等待时间。
实例:
    1.简单读取:
			#!/bin/bash
			
			#这里默认会换行  
			echo "输入网站名: "  
			#读取从键盘的输入  
			read website  
			echo "你输入的网站名是 $website"  
			exit 0  #退出
  	  测试结果:
  	        输入网站名: 
			www.runoob.com
			你输入的网站名是 www.runoob.com
	2.-p 参数,允许在read命令执行时给一个提示
			#!/bin/bash
	
			read -p "输入网站名:" website
			echo "你输入的网站名是 $website" 
			exit 0
     	测试结果:
     	    输入网站名:www.runoob.com
			你输入的网站名是 www.runoob.com
    3.-t 参数指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态。
           #!/bin/bash

			if read -t 5 -p "输入网站名:" website
			then
			    echo "你输入的网站名是 $website"
			else
			    echo "\n抱歉,你输入超时了。"
			fi
			exit 0
		 执行程序不输入,等待 5 秒后:
		
			输入网站名:
			抱歉,你输入超时了
	4、除了输入时间计时,还可以使用 -n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。
			#!/bin/bash

			read -n1 -p "Do you want to continue [Y/N]?" answer
			case $answer in
			Y | y)
			    echo "fine ,continue";;
			N | n)
 				 echo "ok,good bye";;
			*)
			     echo "error choice";;

			esac
			exit 0
	 	 该例子使用了-n 选项,后接数值 1,指示 read 命令只要接受到一个字符就退出。只要按下一个字符进行回答,read 命令立即接受输入并将其传给变量,无需按回车键。
	 5.-s 选项能够使 read 命令中输入的数据不显示在命令终端上(实际上,数据是显示的,只是 read 命令将文本颜色设置成与背景相同的颜色)。输入密码常用这个选项。
			 #!/bin/bash

			read  -s  -p "请输入您的密码:" pass
			echo "\n您输入的密码是 $pass"
			exit 0
		执行程序输入密码后是不显示的:

			请输入您的密码:
			您输入的密码是 runoob
	 6.read会读取文件中的"一行"文本,假设测试文件test.txt内容如下:
	        123
		    456
		    runoob
	   测试代码:
	   		#!/bin/bash

			count=1    # 赋值语句,不加空格
			cat test.txt | while read line      # cat 命令的输出作为read命令的输入,read读到>的值放在line中
			do
				echo "Line $count:$line"
				count=$[ $count + 1 ]          # 注意中括号中的空格。
			done
			echo "finish"
			exit 0
	  执行结果:
	        Line 1:123
			Line 2:456
			Line 3:runoob
			finish

17.sort命令

     参数:
         -b 忽略每行前面开始出现的空格字符
         -r 以相反的方式来排序
         -d 排序时,处理英文字母、数字以及空格字符外,忽略其他字符
         -f 排序时,将小写字母视为大写字母    
         -n 按照数值的大小进行排序
         -u 输出的结果是去重后的         
         -k 按照指定的列进行排序 
            例如  sort textfile -k 2   就是按照第二列进行排序

18.uniq 检查以及删除文本文件中重复出现的行列,一般和sort配合使用


网站公告

今日签到

点亮在社区的每一天
去签到