1、命令
文件:ls cd cp rm mv more cat head vi touch mkdir
ls命令:ls [option] [pathname] 显示给定目录中的文件
后面两个参数可选,单独的ls命令显示出当前目录下的文件
ls -a 显示当前目录下所有的文件,包括隐藏文件
ls -l 显示当前目录下的文件的详细信息。等同于ll命令
-al 综合上面的两个参数的功能
-h 人性化显示
-d 查看目录属性
-i 显示当前目录下文件所对应的inode节点号
上述命令都可以加上第二个参数,显示给定目录下对应的内容
cd命令:cd [pathname] 切换工作目录到指定的路径下
pathname可以是相对路径也可以是绝对路径
绝对路径: 从根目录开始指定目录所在的全路径, 以/开始的都是绝对路径,例如:/home/username/Desktop
相对路径: 相对于当前工作目录的路径 例如:../dvd
pathname 也可以是特殊字符:~ - ..
~ 进入当前登录用户的家目录
- 在上一次工作路径与当前工作目录间切换
.. 进入当前目录的上一级目录,即当前目录的父目录
cp命令:cp [filename] [pathname] 将filename文件拷贝到pathname指定的目录下, pathname后可以加文件名,实现拷贝并重命名文件
-r 复制目录
-p 连带文件属性复制
-d 对链接文件复制,复制连接属性
-a(-pdr)
mv命令:mv [filename] [pathname] 将filename文件移动到pathname指定的目录下pathname后可以加文件名,实现移动并重命名文件,如果 pathname也仅仅是个文件名,则实现重命名文件。
touch命令: touch [newfile] 创建普通文件,创建文件时必须指定文件的扩展 名,例如: touch main.c touch log.txt
mkdir命令: mkdir [newdir] 创建目录文件。例如: mkdir test mkdir dvd
-p 递归创建,先创建上一级在创建目录。
mkdir 创建的目录都是空目录,里面只包含了 “. ” 和 “..” 两个目录,其中“.”代表当前目录 “..”代表上一级目录(父目录)
rm命令: rm filename 删除普通文件。
-r : 删除非空目录
-f : force强制操作,不提示
rmdir命令: rm dirname 删除空目录文件ls -a 显示当前目录下所有的文件,包括隐藏文件
ls -l 显示当前目录下的文件的详细信息。等同于ll命令
-al 综合上面的两个参数的功能
-h 人性化显示
-d 查看目录属性
-i 显示当前目录下文件所对应的inode节点号
上述命令都可以加上第二个参数,显示给定目录下对应的内容
cd命令:cd [pathname] 切换工作目录到指定的路径下
pathname可以是相对路径也可以是绝对路径
绝对路径: 从根目录开始指定目录所在的全路径, 以/开始的都是绝对路径,例如:/home/username/Desktop
相对路径: 相对于当前工作目录的路径 例如:../dvd
pathname 也可以是特殊字符:~ - ..
~ 进入当前登录用户的家目录
- 在上一次工作路径与当前工作目录间切换
.. 进入当前目录的上一级目录,即当前目录的父目录
cp命令:cp [filename] [pathname] 将filename文件拷贝到pathname指定的目录下, pathname后可以加文件名,实现拷贝并重命名文件
-r 复制目录
-p 连带文件属性复制
-d 对链接文件复制,复制连接属性
-a(-pdr)
mv命令:mv [filename] [pathname] 将filename文件移动到pathname指定的目录下pathname后可以加文件名,实现移动并重命名文件,如果 pathname也仅仅是个文件名,则实现重命名文件。
touch命令: touch [newfile] 创建普通文件,创建文件时必须指定文件的扩展 名,例如: touch main.c touch log.txt
mkdir命令: mkdir [newdir] 创建目录文件。例如: mkdir test mkdir dvd
-p 递归创建,先创建上一级在创建目录。
mkdir 创建的目录都是空目录,里面只包含了 “. ” 和 “..” 两个目录,其中“.”代表当前目录 “..”代表上一级目录(父目录)
rm命令: rm filename 删除普通文件。
-r : 删除非空目录
-f : force强制操作,不提示
rmdir命令: rm dirname 删除空目录文件
Vi的三种模式:
命令模式
插入模式
末行模式
三种模式的切换
Esc
i o a : /
命令模式转到插入模式的操作:
i 在当前光标所在位置前面插入
a 在当前光标后面插入
o(小写)在当前光标的下一行插入新的一行。
O(大写)在当前光标的上一行插入新的一行。
在执行以上操作时要注意事先应处于命令模式。
dd删除光标所在一行
ndd删除光标及以下n行。
yy拷贝行,nyy拷贝n行。
p光标所在位置的下一行粘贴
撤销操作:u每按一次撤销一次最近的操作
移动光标:
$/^ :移动到行首/行尾
shift + 空格:切换输入法
shift + h:移动到屏幕顶端
shift + l:移动到屏幕尾端
shift + m:移动到屏幕中间
shift + g:光标移动到文件末
n shift + g:移动到第n行
ctrl + f :向下翻页。
ctrl + b :向上翻页。
J 将光标所在下一行和该行组成一行.
n + x:删除那个字符。
d + 移动光标:先选中,在删除。可复制入剪贴板
r :替换光标所在字符
cc:删除本行,重新编辑
C:删除光标当前到行尾的内容,重新编写
末行操作:
在命令模式下输入 ‘/’ ‘:’ ‘?’可切换到末行模式
:n光标停在第几行
/搜索从当前往下搜索
n 跳到下一个高亮string
?从当前往上搜索
:w 存盘
:w newfile 另存为
:wq保存退出
q!强制退出
:q退出
:ls
num, $s /oldstring/newstring/ 将每一行第一个old用new替换.
num, $s /oldstring/newstring/g 将文本中所有的old用new替换.
查看文件内容
more: 只显示一屏内容,后续以百分比形式按回车显示。
less: 以文本查看器方式查看,类似于man。
head -num filename: 显示文件前num行。
tail -num filename: 显示文件后num行。
cat filename : 将文件filename中的内容完全显示到终端上
cat命令: cat filelist(a.c b.c) > newfile(c.c) 将文件a.c b.c 中的内容合并到文件
find 命令
find [搜索范围] [operation] [搜索条件] -exec [第二条命令] {} \;(-exec {}\;标准格式)
-name
-iname 文件名忽略大小写
-nouser 没有所有者(内核产生/外来文件)
-mtime +/-num 修改文件内容
-ctime +/-num 修改文件属性
-atime ... 访问文件时间
-size +/-num (-a/-o(and表示逻辑与/or逻辑或) +/-num) (不写默认按硬盘扇区的块为单位)k/M 按文件大小搜索
-inum num 按照inode节点号查询
find在系统中搜索符合条件的文件名。完全匹配才可找到。若要模糊查询,需要用通配符匹配。
通配符 * 匹配任意字符串
? 匹配任意一个字符
[] 匹配任意一个[]内的字符
grep命令:在(包含管道文件)文件中匹配符合条件的字符串 (包含匹配)
PS: 模糊查询时需用正则表达式。
文件名用通配符,find.文件内容,使用正则表达式,grep.
grep [operation] string 文件名 根据string过滤出相应的内容
-i 忽略大小写
-v 排除指定字符串
管道符[operation1] | [operation2]: 通过管道进程间通信。[operation1] 输出到管道中,由[operation2]接收
进程:ps kill pkill bg fg jobs
ps [operation]命令:显示当前终端上运行的进程信息
-f 显示当前终端上运行的进程的详细信息
-ef 显示系统上运行的所有进程的详细信息
kill -stop pid 挂起进程号为pid的进程
-9 pid 强制结束进程号为pid的进程(只能拥有权限的进程)
pkill命令: pkill cmd 批处理关闭所有cmd执行起来的进程
jobs命令:显示当前终端的任务信息
bg命令: bg jobid 将挂起的任务号为jobid的进程放到后台执行
fg jobid命令: 将挂起的或者后台运行的任务号为jobid的进程放到前台执行
管理:useradd命令(也可以使用adduser)用来创建新的用户帐号,其命令格式如下:
〔root@localhost root〕# useradd user1
useradd命令常用选项
-d 设置新用户的登陆目录
-e 设置新用户的停止日期,日期格式为MM/DD/YY
-f 帐户过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1
-g 指定新用户所属的主组
-G 指定新用户所属的副组。每个组之间使用逗号“,”隔开,不可以夹杂空白字
-s 指定新用户的登陆Shell
-u 设定新用户的ID值
〔root@localhost root〕# passwd user1 设置和修改用户口令
因为只有root用户可以修改密码,所以修改密码时不需要知道原来的密码,只需要输入两次相同的新密码即可,并且密码的输入是不回显的。
passwd -l user 锁定user
-u 解锁
-d 无密码登陆
init 6 重启
rboot 重启
shut down -r 10 重启
shut down -r now 重启
init 0 关机
shut down -h 10 关机
shut down -h now 关机
halt 关机
程序:GDB调试
编译器要求后缀名。
编译阶段加-g 参数生成debug版本
gdb 可执行程序
l(list) 列出代码
func:line 列出fun函数的第line行上下文
b(break) linenum/func 在num行打断点
r(run) 开始执行
p(print) val 打印val值
n(next) 单步执行
enter 重复上步操作
q(quit) 退出
info break 查看断点
delete breakpointnum 取消断点
c(continue) 继续运行
finish 跳出函数
bt 查看函数调用栈关系
2、文件类型和权限
普通文件 - 目录文件 d 套接字文件 s 块设备文件,b <二进制文件 >
字符设备文件 c 命名管道文件 p 链接文件 l
权限: r<--->4 w<--->2 x<--->1
权限分类:属主u 属主同组g 其他o
权限修改: chmod g-w a.c 给同组人减去写权限 +-=
chmod 765(rwxrw-r-x) 文件名
3、目录
1 /根目录 :每一个文件和目录从根目录开始。
(只有root用户具有该目录下写的权限。注意:/root是root用户的主目录,这与 ./ 不一样)
2 /bin - 用户二进制文件 < 包括二进制可执行文件 >
3 /sbin目录 - 系统二进制文件
类似于/bin,/sbin同样也包含二进制可自行文件,但是在这个目录下的linux命令通常由系统管理员使用,
对系统进行维护。
4 /etc - 配置文件
包含所有程序所需的配置文件,也包含了用于启动/停止单个程序的启动和关闭shell脚本。
5 /dev - 设备文件
设备包括终端设备、USB或连接到系统的任何设备。
6 /proc - 进程信息
这是一个虚拟的文件系统,包含正在运行的进程的信息,系统资源以文本信息形式存在。
7 /var - 变量文件
8 /tmp - 临时文件
9 /usr - 用户程序
10 /home - 所有用户用home目录来存储他们的个人档案
11 /boot - 引导加载程序文件
12 /lib - 系统库
13 /opt - 可选的附加应用程序
14 /mnt - 挂载目录
15 /media - 可移动媒体设备
16 /srv - 服务数据