c高级学习笔记
输入输出重定向
输出重定向
命令 > file :将file作为输出源,file文件不存在创建
命令 >> file :如果文件不存在创建,如果文件中存在内容则会追加
命令 &> file 或者命令 2> file :将由命令产生的错误信息输入到文件当中
命令 &>> file 或者命令 2>> file :将由命令产生的错误信息输入到文件当中
输入重定向
将输出重定向的>换成<即可
命令置换符` `或者$()
将一个命令的输出作为另一个命令的参数
例:echo "my name is 'hostname'"
输出:my name is ubantu
系统维护命令
- man man :查看man手册
第一个章节:shell命令
第二个章节:系统调用
第三个章节:C库
- sudo passwd 用户名:修改用户密码
- su :切换用户
su:默认切换到超级管理员用户
sudo su 用户名
exit:退出切换用户
- echo "输出内容":向终端输出内容,默认换行
echo -n:输出不换行
- date:查看当前系统的日期
- clear :清屏
- df -Th 或者 df -h : 查看磁盘空间
用户管理命令
用户相关的配置文件
- /etc/passwd: 存储用户的详细信息
- /etc/group: 存储已有的用户组信息
- /etc/shadow: 存储用户的密码
新建用户
sudo adduser 用户名
给新建用户添加sudo权限
切换到超级管理员用户:su
给用户添加sudo权限:vi /etc/sudoers
添加:用户名 ALL=(ALL:ALL) ALL
删除用户
sudo deluser 用户名 ---> 删除用户,但是不会删除用户的主目录(残留的主目录可以直接使用rm -r删除)
sudo userdel -r 用户名 ---> 删除用户的同时,删除用户的主目录
sudo userdel -rf 用户名 ---> 强制删除
进程管理命令
进程:是程序运行一次的过程,动态的
程序:存放在磁盘空间的可执行文件,静态的
- ps 查看进程状态
ps-aux
USER(用户) PID(进程id) %CPU %MEM VSZ RSS TTY(终端 ?:不依赖终端) STAT(状态) START TIME COMMAND
PID :是唯一标识id号
ps -ef: 查看父进程id
ps -ajx: PPID PID PGID(组id) SID(会话id)
可以通过 man ps 查看关于进程状态的信息
进程状态:
D uninterruptible sleep (usually IO)不可中断睡眠态
R running or runnable (on run queue)运行态
S interruptible sleep (waiting for an event to complete)可中断睡眠态
T stopped by job control signal停止态
t stopped by debugger during the tracing调试器打断
X dead (should never be seen)死亡态
Z defunct ("zombie") process, terminated but not reaped by its
parent僵尸态
< high-priority (not nice to other users)高优先级
N low-priority (nice to other users)低优先级
L has pages locked into memory (for real-time and custom I
锁定到内存中
s is a session leader 会话组组长
l is multi-threaded (using CLONE_THREAD, like NPTL pthread
do)线程
+ is in the foreground process group前台进程
./a.out &:将a.out 在后台运行
fg 数字:将后台运行的进程拉到前台运行
ctrl z:将前台运行的进程暂停同时放在后台
bg 数字:将后台暂停的进程在后台运行起来
- top 动态显示进程的状态
在进程管理中,NI通常表示进程的Nice值(Nice Value)。Nice值是用来调整进程优先级的参数,它可以影响进程在系统中的调度顺序
Nice值通常是一个整数,在大多数操作系统中,它的范围通常是-20到+19。较小的Nice值表示进程的优先级较高,而较大的Nice值表示进程的优先级较低
NI:优先级 +19 ~ -20 值越小,优先级越高
PR:20 + NI
在进程管理中,PR通常表示进程的优先级(Priority)。进程优先级是操作系统用来管理和调度进程的一种机制。每个进程都有一个与之相关联的优先级,用于确定进程在系统中的调度顺序。
- renice 修改正在运行的进程的优先级
sudo renice -n num PID
num:要修改的nice值
PID:要修改的进程
2. nice 定制运行的优先级
sudo nice -n num ./可执行文件
3. 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号信号
文件系统命令
文件系统leix
磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、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
Linux 文件
/bin:存放系统中最常用的可执行文件
/dev:存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等
/home:用户主目录的默认位置
/mnt:该目录通常用于作为被挂载的文件系统的挂载点
/usr:用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件
文件操作相关命令
- 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 ./ *.c
4.grep 查询指定字符串
grep "字符串" 文件:在一个文件中查找
grep "字符串" 路径 -nR:递归从路径往后查找,找到所有用这个字符串的文件
-n:回显查找到的行数
-R:查找路径可以是目录,-R会进行递归查找
rm -f 文件名:强制删除,文件存不存在都会删除
rm -rf 目录名:强制删除文件夹,文件夹不存在也会删除
head 文件名:默认输出文件内容前10行
head -num 文件名:默认输出文件内容前num行
tail 文件名:默认输出文件内容的后10行
tail -num 文件名:默认输出文件内容后num行
未完待续……