2.4、shell中的特殊字符
2.4.4、命令置换符` ` 或者 $()
反引号:esc下面的按键,英文状态下直接按
功能:将一个命令的输出作为另一个命令的参数
echo 不会认为hostname是一个命令
加上` `之后,先执行hostname,拿到主机名之后,作为参数放到is后面,输出
2.5、系统维护命令
1、man man :查看man手册
第一个章节:shell命令
第二个章节:系统调用
第三个章节:C库
2、su:切换用户
su:默认切换到 root
su:用户名——切换到指定的用户
exit:退出切换的用户
3、sudo passwd 用户名:改用户的密码
4、echo “输出内容”:向终端输出内容,默认换行
echo -n "输出内容":输出不换行
5、date:查看当前系统的日期
6、clear:清屏
7、df -Th 或者 df -h:查看磁盘空间
2.6、用户管理命令
2.6.1、新建用户
sudo adduser 用户名
给新建用户添加sudo权限:
1)切换到管理员用户:su
2)给用户添加sudo权限的文件:vi /etc/sudoers
3)添加:用户名 ALL=(ALL:ALL) ALL
2.6.2、删除用户
sudo deluser 用户名:删除用户,但是不会删除用户的主目录,残余的主目录可以直接使用rm -r
sudo deluser --remove-home 用户名:删除用户的同时,删除用户的主目录
sudo userdel -r 用户名:删除用户的同时,删除用户的主目录
sudo userdel -rf 用户名:强制删除
2.7、进程管理命令
进程:程序运行一次的过程,动态的
程序:存放在磁盘空间上的可执行文件,静态的
1、.c文件:源代码
2、a,out:程序3、a.out运行的过程:进程
2.7.1、ps:查看进程状态
ps -aux
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
用户 | 进程id | —— | —— | —— | —— | 终端 ?:不依赖终端 | 状态 |
PID:唯一标识id号
ps -ef:查看父进程的id:PPID
ps -ajx:PPID PID PGID(组id) SID(会话ID)
通过man ps查看关于进程的状态信息
进程状态:
D 不可中断睡眠态
R 运行态
S 可中断睡眠态
T 停止态
t 调试器打断
X 死亡态
Z 僵尸态——无法回收
< 高优先级
N 低优先级
L 锁定到内存中
s 会话组组长
l 线程
+ 前台进程
./a.out &:将程序放在后台运行
fg 编号:将后台运行的进程,拉到前台运行
ctrl z:将前台运行的进程暂停,并且放在后台
bg 编号:将后台暂停的进程,在后台运行
2.7.2、top:动态显示进程的状态信息
// top里面的进程状态只能显示一个字符
PR:优先级,默认20 PR=20+NI
// 值越小优先级越高
// 只要小于20,就是高优先级
NI:更改优先级的值,整数,一般-20到+19
// 超过-20和+19的值,按照-20和+19计算
2.7.3、renice:修改正在运行的进程的优先级
sudo renice -n num PID
num:要修改的NI值
PID:要修改的进程id
2.7.4、nice:定制运行的优先级
sudo nice -n num ./可执行文件
2.7.5、kill:发送信号
kill -l:查看Linux的信号
2) SIGINT ctrl+c 结束进程3) SIGQUIT 退出
4) SIGILL 结束进程
9) SIGKILL 杀死进程 不可忽略信号
10) SIGUSR1 未定义功能
12) SIGUSR2 未定义功能
13) SIGPIPE 管道破裂信号
14) SIGALRM 时钟信号
17) SIGCHLD 子进程状态发生改变会给父进程发送
19) SIGSTOP 停止 不可忽略信号
kill num PID:给指定进程发送num信号
kill PID:默认执行9信号
2.8、文件系统命令
2.8.1、文件系统类型
磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext2、Ext3、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、ReiserFS、XFS、JFS、FAT(File Allocation Table,文件分配表)、FAT16、FAT32、NTFS(New Technology File System)等;
网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、Samba(SMB/CIFS)、AFP(Apple Filling Protocol,Apple文件归档协议)和WebDAV等;
专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File
2.8.2、linux文件
/bin:存放系统中最常用的可执行文件
/dev:存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等
/home:用户主目录的默认位置
/mnt:该目录通常用于作为被挂载的文件系统的挂载点
/usr:用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件
2.8.3、文件操作
1、file 文件名:查找文件属性信息
a.out:文件名
ELF:类型
64-bit LSB shared object:小端存储
x86-64:64位操作系统
version 1 (SYSV):版本
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2:动态链接的库
BuildID[sha1]=929170c6441faf1ed8244921a012c77550a8584a:动态ID
for GNU/Linux 3.2.0:gcc编译器的版本
not stripped:文件没有被压缩
2、cat 文件名:将文件内容输出到终端
cat -n 将文件内容输出到终端,并且显示行号
3、find 查找文件
格式:find 路径 -name 文件名
// 从路径往后查找文件
find ./ -name *.c
4、grep 查询指定字符串
grep "字符串" 文件名 // 在一个文件中查找
grep "字符串" 路径 -nR // 从路径往后查找,找到所有用这个字符串的文件
// -n:回显找到的行数
// -R:查找路径可以是目录,-R会进行递归查找
5、rm
rm -f 文件名:强制删除,文件存不存在都删除
rm -rf 目录:强制删除文件夹
6、head 文件名:默认输出文件内容的前10行
head -num 文件名:输出文件内容前num行
7、tail 文件名:默认输出文件内容的后10行
tail -num 文件名:默认输出文件内容后num行
head -30 文件名| tail -5 // 文件前30行当中的后5行
3、硬链接和软连接
3.1、硬链接
硬链接文件可以理解为文件的副本(复制粘贴)
ln // 根据 Linux 系统分类给文件的 inode(ls -li) 号进行建立的(文件的编号),没有办法跨越文件系统
格式:
ln 被链接的文件(源文件) 生成的链接文件(目标文件)
特点:
1)硬链接的属性是 - 相当于生成一个副本 起别名
2)源文件删除链接文件依然存在
3)删除源文件之后,即使创建一个和源文件同名文件,也和硬链接文件之间不存在链接关系
4)修改其中一个文件的内容,另一个也会更改(另一个文件重新打开)
5)硬链接文件和源文件有相同的inode号
3.2、软连接(符号链接)
理解为快捷方式
ln -s // 利用文件的路径来建立,最好是绝对路径
格式:
ln -s 被链接的文件(源文件) 生成链接文件(目标文件)
特点:
1)软连接文件属性 | 相当于快捷方式
2)修改内容都变化
3)软连接文件可以链接目录
4)源文件删除,链接断开,在原来位置创建就可以重新链接
5)拷贝目录的软连接可以直接拷贝,如果需要拷贝普通文件的软连接文件,需要加上 -d 保证参数可以存在链接属性 // cp -d 软连接文件(普通文件) 路径
3.3、硬链接和软连接区别
1、使用上:
两者没有区别,与正常文件访问方式一样,支持读写,可执行文件也可直接执行
2、本质上:
硬链接:本质上是同一个文件
软连接:本质上不是同一个文件
3、跨设备区别:
硬链接:不支持
软连接:支持
4、inode区别:
硬链接:相同
软连接:不同
5、连接数:
硬链接:创建新的硬链接,连接数会增加,删除硬链接,连接数会减少
软连接:创建或删除,连接数不会变化
6、文件夹:
硬链接:不支持
软连接:支持