Linux 常用指令和基础

Linux 基础指令

  • 删除: rm 参数:-d 文件夹 -r 递归 -f 强制

    rm -df /home/ccc:删除ccc文件夹,但是ccc文件夹里的内容会放到home里
    rm -rf /home/ccc: 删除ccc文件夹和里面的所有内容
    删除时尽量不要用f.

  • 创建文件,修改时间 touch

  • 移动 mv
    可以用来修改名字 mv a.c /home/code/b.c
    不改名字: mv a.c /home/code/

  • 复制文件cp 同上

  • 查看文件内容 :

  1. cat XXX 只适合查看小文件,因为上下翻页很麻烦
    常用 cat -n XXX 显示行号

  2. less 比较常用 是一种交互式命令,用方向键可以上下翻页,按q退出

  3. more 与less有些相似,但用得少,按回车往下翻页,如果翻到了最后会直接退出文件查看,不能往回翻

  4. head 默认显示文件前10行, head -n5 XX 显示文件前5行

  5. tail 默认显示文件最后10行, tail -n5 XXX 显示文件最后5行

  • 筛选文件内容,统计文件行数
    命令:grep “xxx” XXX
    grep是以行为单位进行运算, Linux的配置文件中 以#开头的是注释,以/etc/login.defs文件为例.
    查找有PASS的行

grep “PASS” /etc/login.defs

结果:

#PASS_MAX_DAYS Maximum number of days a password may be used.

#PASS_MIN_DAYS Minimum number of days allowed between password changes.

#PASS_WARN_AGE Number of days warning given before a password expires.

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

#PASS_CHANGE_TRIES

#PASS_ALWAYS_WARN

#PASS_MIN_LEN

#PASS_MAX_LEN

#NO_PASSWORD_CONSOLE

查找以PASS开头的行: ^代表以XX开头

grep “^PASS" /etc/login.defs

结果:

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

查找以7结尾的行 : $代表以XX结尾

grep “7$" /etc/login.defs

结果:

PASS_WARN_AGE 7

查找不以#开头的行(实际的代码行而不是注释行)

grep -v “^#” /etc/login.defs -v是反选的意思

结果:

MAIL_DIR /var/mail

FAILLOG_ENAB yes

LOG_UNKFAIL_ENAB no

LOG_OK_LOGINS no

SYSLOG_SU_ENAB yes

SYSLOG_SG_ENAB yes

FTMP_FILE /var/log/btmp

SU_NAME su

HUSHLOGIN_FILE .hushlogin

ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

其中有很多空行,如何去掉空行?

查找空行

grep “^$” /etc/login.defs

查找实际的代码行(不以#开头且不为空行): | 是Linux中的管道符,是前面运算的结果拿到后面运算

grep “^#” -v /etc/login.defs | grep “^$” -v

先找不以#开头的行,然后再查找非空行

  • wc 统计文件的信息,如行数,字节数等 -l 统计行数
    统计实际代码行数 : grep "^#" -v /etc/login.defs | grep "^$" -v | wc -l

  • 查找文件:

find   [Directory]  [选项参数]  [查找关键字] 

find / -name hello.c 查找根目录下所有的文件夹里的hello.c

查询时输入的是完整的文件名和文件内容,如果想查找不完全的文件名 用 hello

find / -type p 查找格式不是查找后缀名

查找到文件后执行操作:

find / -name hello.c  -exec   [命令]  {} \;   

{} ; 是固定格式

LInux 文件类型

-普通文件

d 目录

l 符号链接

b 块设备文件 :数据不连续

c 字符设备文件 :数据连续

p 管道

s 接口文件

查看文件类型: file /Var/run/autofs.fifo-net

LInux 输入输出重定向

标准输出stdout(1): 默认是终端屏幕

错误输出:

报错讯息与标准输出走不通的I/O通道

标准错误输出stderr(2):默认是终端屏幕

重定向:

标准输入、输出与错误输出,可以用特定符号改变数据来源或去向。

输入重定向符号:

< 

输出重定向符号:

>      生成新文件或覆盖 
>>     生成新文件或追加 

错误输出重定向符号:

2>    生成新文件或覆盖 
2>>   生成新文件或追加 

例如:

echo  999999 > /0.txt 
echo  8888 >> /0.txt 

错误输出重定向的使用:

不让运行的命令显示错误信息

find / -type p -exec ls -l {} \; 2> /dev/null 

/dev/null 这个是空设备,把输出扔到这里面就没有了,如同无底洞

让正确输出和错误输出分别输出到两个文件:(分别重定向)

find / -type p -exec ls -l {} \; > 1.txt 2>2.txt 

让正确输出和错误输出输出到同一个文件:(同时重定向,错误输出和正确输出是不同i/o通道)

find / -type p -exec ls -l {} \; &> 3.txt 

命令别名

alias 可以查看已经定义命令别名

alias llh='ls -l -h -S -i --color=auto' 

但是只是当前用户在当前登录状态下才能使用,退出再登录就不好用了,所以常放在配置文件.bashrc中

硬链接,软连接

软连接 symbolic link:

软连接记录的是目标的path,源文件删除后,软连接失效,相当于Windows中的“快捷方式”

只不过软连接是底层概念,快捷方式是上层概念。对软连接进行操作实际操作的是源文件

硬链接 hard link:

一个文件有多个名字,不管操作哪一个名字都是操作的这个文件

硬链接记录的是目标的iNode,不能连接目录,硬链接与源文件都删除才意味着文件被删除。(删除任意一个硬链接其实只是删除了这个文件的一个名字,只有所有名字都删除掉,这个文件才会被删除)

iNode(索引节点号)每个文件都有唯一的iNode,包括复制出的相同文件,使用 ls -I 可以查看文件的iNode。
在这里插入图片描述
箭头所指的1就是硬链接个数,最少是1

ln XXX(文件名) 创建硬链接

ln XXX -s 软连接

权限设置

在这里插入图片描述
在这里插入图片描述
第一个表示文件类型,后面9个字符是文件/目录权限三个一组,共三组:分别是文件所有者(属主),文件所属组(属组),其他用户。第一个root表示文件所有者,第二个表示文件所属组。
在这里插入图片描述
删除文件不是看文件的权限,而是看上层目录的权限

系统运行级别

查看 /etc/inittab 里面可以看到有7个运行级别
在这里插入图片描述
系统运行级别修改方式:1.开机时通过grub修改内核 2.直接修改inittab文件(修改默认运行级别) 3.init命令修改当前运行级别,如关机 init 0 重启 init6

runlevel命令可以查看当前的运行级别

当前运行在level3下,如何进入桌面模式:1.startx命令,进入当前用户下的桌面模式,注销后回到命令行模式,这种桌面相当于一个进程,适合工作中突然需要使用桌面,使用完退回命令行。 2.init 5 直接修改运行级别

系统进程管理

ps命令:常用的是ps -aux

kill [-9] PID -9是强制杀死,看情况使用 pid是进程号

状态state的S是睡眠中,在不使用该进程是处于睡眠状态,减少硬件的使用

设置计划任务

https://www.bilibili.com/video/av30336740/?p=26

硬盘分区、创建文件系统、挂载

fdisk -l 列出当前使用的硬盘

fdisk -l /dev/sdb 列出特定硬盘的分区

https://www.bilibili.com/video/av30336740/?p=28

猜你喜欢

转载自blog.csdn.net/qq_37151416/article/details/108451188