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 同上
-
查看文件内容 :
-
cat XXX 只适合查看小文件,因为上下翻页很麻烦
常用 cat -n XXX 显示行号 -
less 比较常用 是一种交互式命令,用方向键可以上下翻页,按q退出
-
more 与less有些相似,但用得少,按回车往下翻页,如果翻到了最后会直接退出文件查看,不能往回翻
-
head 默认显示文件前10行, head -n5 XX 显示文件前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