linux常用命令

1. date

查看日期

2.Ctrl + C

中断目前的程序

3.Ctrl + d

比如我通过dc进入了计算机的程序,现在输入的代码都是执行bc的命令,这时候要退出到linux命令行就需要输入quit退出bc,更简单的就是 ctrl + d 退出.

4.Shift + Page Up/Page Down

翻页,没什么好说的.

5.帮助命令

[Command]  --help

基本上所有的程序都是--help来查看命令提示.z

6.手册

man [Command]

/word,可以在手册中查找word的关键词.

显示手册

7.cal

日历

8.who

查看谁在使用linux

9.shutdown

关机

关机前最好执行sync命令回写内存数据到硬盘中,

10.reboot

重启

11.chgrp

修改文件的用户组 chgrp users filename

要注意users必须存在/etc/group 这个文件中  

12.chown

修改文件的拥有者 chown  lishuaiqi:users  filename

注意lishuaiqi必须存在/etc/passwd中   加上 : 可以一起修改用户组,或者用.直接修改用户组

13.chmod

修改文件的读写权限 -rwxrwxrwx 三个一组,分别代表文件拥有者,群组,其他人的 读 写 执行权限.

 语法有很多:

chmod 777 filename     三个一组,rwx分别代表4 2 1,加起来就是7.

chomod u=rwx,go=rwx filename  u  user 所属个人  g group  所属群组 o others  其他人

chmod a+r filename  代表给所有人添加读取的权限

chmod a-r filename 给所有人删掉读取的权限

 rwx对于目录来说,分别代表能否查询该目录下的文件数据,是否有改变目录结构列表的权限,是否有进入该目录的权限,如cd

14. basename

查看文件的文件名

15. dirname

查看文件的路径

16. cat

查看文件内容,输出所有内容,不经常用

17. tac

cat的反写,和cat输出的顺序不同,从最后输出到第一行

18. nl

输出文件内容的时候加上行号

19.more

翻页输出文件内容,空格翻页,回车往下走一行

20.less

less可以使用pageup,pagedown来上下翻页,这是more不具备的.

21. head  -n  [行号]  [文件]

打印前面几行,如果 行号为负数,则不打印尾部的行数

22.tail  

同 head,不过是尾部开始,多了 -f 参数,可以持续监测尾部的数据更新

23.od -t   [type]   [文件]

根据参数type读取二进制文件,如:od -t c /usr/bin/passwd 用ASCII码输出密码

echo password | od -t oCc  输出 password的ASCII对照表

24. touch [文件名]

如果没有文件则创建文件,有文件则更新 修改时间 状态时间 读取时间这三个时间.

 25. umask 设置文件的默认属性

比如: 

 

 

 最后三位为022,代表分别减去的权限,2代表减去 rwx 中 w权限,也就是不能修改.

用户简历文件的默认权限为  rw-rw-rw,减去w后生成的文件,所以生成的文件权限是 rw-r-r

 

目录的默认权限是rwxrwxrwx,减去 022 后就成了  rwx-r x-r x

 

26. chattr 修改文件的隐藏属性

chattr +i [文件] 让一个文件不能被删除修改

chattr -i [文件] 去除 i属性

+a 只能增加数据,不能删除也不能修改数据

-a 去除 a属性

chattr增加的属性无法通过 ll 或者 ls -l 查看

只能通过 lsattr 命令查看

 

27.查找脚本文件

which ifconfig

查找 ifconfig 命令的所在位置

which默认找的是PATH内所设置的目录

 

28. 文件的查找

whereis [文件名]  只查找特定的目录 可以通过 whereis -l 来查看查找的目录

locate [文件名]   需要安装程序 yum install mlocate; yum install updatedb;updatedb ;  直接 locate -l 5 passwd ,输出passwd相关的五个文件;

因为locate是在数据库中查找的,所以新建立的文件需要更新数据库才能找到,updatedb命令执行就可以.  linux 默认每天更新一次.

find [文件名]  直接在硬盘中查找,比较慢

 

29.查看硬盘使用情况 

df -h 或者 du

du -sb 计算当前目录有多少容量(字节)

 

30.硬链接

ln /etc/crontab .

 不能链接目录,不能跨文件系统

 符号链接

ln  -s  /etc/crontab  crontab2

ln -snf  /etc/crontab crontab3  更新软链接

区别:

符号链接是新文件,会重新生成一个新的inode,类似于windows的快捷方式;

而硬链接只是相同inode不同的文件名,相当于一个别名作用的关联数据.

 

31.列出所有存储设备

lsblk

查看设备的uuid

blkid

列出磁盘的分区表类型和分区信息

parted device name print 

比如:parted /dev/vda print 列出/dev/vda的磁盘相关信息

parted具体怎么用还不清楚

 

32. 分区操作

MBR使用fdisk,GPT使用gdisk,两个都可以在输入命令后使用?访问相关操作,可以创建分区删除分区等等.

更新分区:partprobe

 32.解决文件系统错乱(真的是常用的命令吗?)

xfs_repair

 

33.挂载

设备在不同系统之间名称会不同,所以我们需要用xfs_admin修改XFS文件系统的UUID,这样就可以使用 mount UUID=xxx /data/xfs 来挂载.利用uuidgen命令生成一个新的UUID 

 

34.内存交换分区

内存不够的时候,可以使用物理分区或者文件来当做内存交换分区

物理分区:用gdisk或者fdisk创建一块内存,然后mkswap 加载创建的物理分区,swapon启用交换分区,然后free或者swapon -s即可查看内存的使用情况

文件:dd if=/dev/zero of=/tmp/swap bs=1M count=128,mkswap + swapon,同上.

 

35.压缩与解压缩

linux的压缩命令通常只针对单个文件,所以为了能打包多个文件或者目录,需要tar命令来进行打包

gzip 会把文件压缩为 .gz结尾的目录,源文件会消失,解压: gzip -d ,

 bzip2 : gzip的加强版,压缩比更好,但是碰到大文件会压缩慢,因为计算多.压缩文件以bz2结尾,bzcat读取压缩后的文件.

xz : 比bzip2压缩比更好,但是也更慢,文件以xz结尾. xzcat 读取压缩后的文件.

总结: 压缩比越好的软件,压缩速度也就越慢,所以要做取舍.

 

36. 打包

因为linux的压缩与解压缩只能针对单个文件,所以需要使用tar进行打包.

压缩: tar -jcv -f filename.tart.bz2 [文件或者目录]

查询 : tar -jtv -f filename.tar.bz2

解压缩: tar -jxv -f filename.tar.bz2 -C [指定解压缩到的目录]

- P (大写) 保留绝对路径,这样解压后就会覆盖原本压缩的目录.不保留的话不会覆盖.

解压缩单个文件: tar -jxv -f filename.tar.bz2 [文件名]   可以在执行这个命令之前用 tar -jtv -f filename.tar.bz2 | grep [关键字]  搜索一下关键字.

 打包更新的文件: tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2021/07/09" /etc/*  在/etc目录下打包比2021/07/09这个时间更新的文件到/root/etc.newer.then.passwd.tar.bz2 这个文件中.

利用 tar 替换 cp -r 操作: tar -cvf - /etc |  tar -xvf -     (仁者见仁)

 

xfs系统备份与还原: xfsdump xfsrestore  主要是这两个命令,可以自行了解。

 

其他命令备份: dd if=/etc/passwd of=/tmp/passwd.back 将/etc/passwd 备份到 /tmp/passwd.back中

cpio:

find * |  cpio -ocvB > [file/device] 备份   这个命令可以备份任何文件,只是需要用find先查找文件然后用管道流进行操作。

cpio -ivcdu < [file/device] 还原

cpio -ivct < [file/device] 查看

 

 37. type命令 用于查看命令是否属于内置命令

type -a ls 就会列出所有ls 路径和别名

 

38. ctrl +u 删除光标以前的命令  ctrl + k 删除光标以后的命令 ctrl + a 移动光标到最前面 ctrl + e 最后面

 

39.  变量双引号和单引号的区别

"" 双引号中的 ${HOME}  会保留$的特性,直接输出 HOME变量,如果是单引号的话 '' 就不会, 会原样输出 ${HOME};

变量累加:  PATH=${PATH}:/usr/java/home

一般情况加,父shell定义的变量子进程无法使用.我们可以用 export  [变量名]将变量变成环境变量,来让子进程使用

如果想让某个命令执行的结果复制到变量中,我们可以使用 $(),比如: version=$(uname -r)  就把uname -r 输出的内核版本作为变量赋值给version, $` `也可以达到相同的效果

 

40. 变量相关

随机数 echo ${RANDOM}

查看所有环境变量 env 或者 export

进程pid  $$

上一个命令的执行结果 echo $? 如果是0则执行成功, 非0则执行失败

set 观察所有变量,包括自定义和环境变量 env只能查看环境变量

查看linux支持的编码  locale -a 

读取用户输入的命令: read   比如:  read name  输入后在执行 echo ${name}  就会输出刚刚输入的内容   -p [提示]-t [等待秒数]

 

变量的类型 :  有整型,字符串等 可以通过 declare 命令来定义  declare -i sum=1+1  定义sum为整型,可以计算后面的结果  -a 数组 -x环境变量,同 export -r  只读

如果我们想把环境变量设置为自定义变量,可以执行 declare +x sum

 

数组的定义直接加[]即可  var[1]="hello" var[2]="world"

 

42. 文件系统和程序的限制关系命令: ulimit,详情 --help

例子: 限制使用者简历10M以下容量的文件 ulimit -f 10240

 

43. 变量替换相关

删除:

假如要删除path的/local/bin,可以执行

echo ${path#/*local/bin:}   #表示符合替换文字的最短一个 ##表示最长   # 是从前匹配  相反 % 是从后匹配,%%也表示最长的匹配.

 替换:

echo ${path/bin/aa} / / 中间的字符表示要替换的字符,这个命令的意思是把bin替换为aa,只替换第一个匹配的,如果要全部替换,则加上两个/,  echo ${path//bin/aa}

变量不存在:

假如变量不存在 我们可以用 - 号赋值默认值, echo ${username-root} 如果username不存在的话,就会输出root,但是如果 username=""空值的话,echo ${username-root} 这个命令就不管用了,还是会输出空值,所以我们要用  echo ${username:-root} 这个命令, 加了 :  以后,如果 username为空值或者不存在,就会输出root

- 号不会给username赋值,如果要赋值的话需要用 = 

echo ${username=root} 如果username不存在,输出root,并且给username赋值root

同理,如果空字符串也想赋值root的话,需要加上:   echo ${username:=root} 

echo ${username=}

如果变量不存在,则通知有错误:

echo ${username?var} 如果username没有值,则会在控制台打印错误. 同理,要处理空字符串需要加上 :

 

 44.别名

我们可以给常用的命令赋值别名,比如: alias testVar="echo aa" 这样我们输入testVar命令的时候就会打印aa,如果要删除别名,就需要执行unalias testVar删除刚刚新建的别名

 

45.历史命令

执行history可以查看历史命令, history 3 查看最近的前三条命令,查找到命令后,我们可以执行以下命令操作:

![number]  比如: !3  执行 历史命令的第三个

![command] 执行最近的命令开头为command的命令

!! 上一个命令

命令基本上都存在 ~/.bash_history 文件中,我们可以执行 history -w 来写入前面的文件中                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-03-08 22:54  随意的马蒂洛克  阅读(92)  评论(0编辑  收藏  举报