ls命令行:
ls -l(ll) 显示文件详细信息,windows按文件后缀名区分文件类型,
linux不以后缀名区分,后缀名用于用户区分文件。
ls 显示当前目录下的文件
pwd 显示当前用户所在路径
ls / 显示根目录
ls -a 显示当前目录所有文件(包括隐藏文件)
路径的表达方法:
绝对路径:起始查找路径是根目录
相对路径:起始查找路径是当前路径
pwd 查看当前所在路径
ctrl l 清屏
mkdir directory 创建目录directory为目录名
mkdir -p 递归创建
remkdir directory 删除空目录 directory为目录名
remkdir -p 递归删除多层空目录
rm 删除文件
rm -r 删除所有文件包括目录
rm -f 忽略提示信息删除
rm -ri 添加删除提示信息
cp 拷贝文件
cp -r 拷贝目录及目录下的所有文件
mv 移动目录(剪切)
cd 改变当前目录
cd ~ 返回家目录
cd- 上一次所在路径
点(.)代表当前目录 例如:cd .
点点(..)代表当前目录上一层目录 例如: cd ..
对文件操作
touch 若文件不存在创建文件,存在则刷新文件时间属性
touch -d "2014-11-11 11:11:11" 文件名(刷新文件时间属性)
touch -r 文件一 文件二 (用文件一的时间刷新文件二时间属性)
rpm -ivh 文件名 安装压缩文件
cat 文件名 查看文件内容
cat 文件名
-n 显示文件行号
-s不输出多行空行
more 分页显示文件内容
空格 向下翻页
b 向上翻页
q 退出
less 分页显示文件内容,字符串匹配
空格/pgdn/f 向下翻页
b/pgup 向上翻页
上下箭头 上下单行滚动
/string 向下匹配string字符串
?string 向上匹配string字符串
q 退出
head -n 2 文件名 显示文件的前n行数据
tail -n 1 文件名 显示末尾前多少行
tail -f 显示文件末尾十行数据并动态刷新 ctrl+c中断操作
echo “string”将字符串string打印到终端
标准输出重定向(改变数据的流向)
标准输出:显示器
标准输入:键盘
标准错误:显示器
标准输出重定向:改变数据流向
写入到文件
(echo “string”>文件名)
追加写入到文件
(echo “string”>>文件名)
压缩/解压缩方式
压缩和解压缩有好几种方式,对应多种格式(压缩文件内容)
gzip/gunzip
bzip2/bunzip2(压缩比例最高)
打包(将多个文件放在一起)
tar
-c打包
-x解包
-z gzip格式压缩/解压缩
-j bzip2格式压缩/解压缩
-v 显示详细的打包/解包信息
-f 用于指定压缩包的名称
tar -czvf 文件名 打包
-xzvf 文件名 解包
cal 查看日历
-3查询三个月(上,本,下)
-全年
bc 计算器
date 显示当前系统时间
date 显示当前系统时间
+%s 显示时间戳
-s 修改系统时间
grep '字符串' 文件名 在文件内匹配字符串(找字符串)
-i 忽略字符串大小写
-v 反向匹配(即显示没有该字符串的行)
-R(大写)当前目录下所有文件匹配
find 文件查找(找目录)
-name 按名称进行查找
find ./ -name "文件名"(格式)
模糊查找 find ./ -name "*文件名*"('*':通配符)
"文件名*"
"*文件名" 三种格式,根据实际情况选择
shutdown -h now 立即关机
halt 立即关机
reboot 重启
常用操作
tab键:文件名的自动补全
ctrl+c:中断当前操作
ctrl+l:清屏(输入clear也可以)
管道符
'|':连接两个命令;并且把前一个命令的输出当作下一个命令的输入
例如:
head -n 文件名 | tail -n 1 表示先查看文件的前n行,再查看这十行的最后一行
Linux权限管理:
用户:普通用户,root
文件的权限管理:
文件的权限分用户(三类权限)
文件所有者u 文件所属组g 其它用户o
文件访问权限:
文件的可读权限(浏览) 文件可写权限(修改文件) 文件可执行权限(进入)
文件所有者u 文件所属组g 其它用户o
rwx rwx rwx
umask 权限数字 查看或设置文件的默认创建权限掩码 suid sgid??
默认创建文件的权限是777
文件最终权限算法是 777&(-umask)
-s 显示当前用户创建文件权限
chmod 0775(后三位为权限对应8进制数) 文件名 修改文件权限
chmod u/g/o(+/-)w/r/x 文件名 给指定用户修改权限
chown 用户名 文件名 修改文件所有者
chgrp 用户组 文件名 修改文件所属组
沾滞位:
这个权限位主要针对于目录,一个用户只能删除自己创建的文件,
不能删除别人的文件
指令格式 chmod t file
useradd 用户名 创建用户
-m 用户名 创建用户并添加一个家目录
userdel 仅删除用户名,不删除相关数据
-r 删除用户并清理相关数据
kill -u 用户名 关闭该用户的所有进程并删除它
常用工具
yum软件包管理工具
yum list 查看所有开发包
yum install 安装指定软件
yum install irzsz
yum remove 移除软件包
install gcc、glibc-static、gdb
Vim编辑器:
改变输入位置
拷贝
粘贴
剪切
其它
因为Vim无法使用鼠标,Vim有不同的操作模式
Vim模式:
总共12种模式:6种基本模式,6种条件模式
常用的有三种模式
插入模式 i:输入数据
a:光标移动到下一个字符处开始插入
o:在光标所在行下方插入新行
I:光标移动到改行行首
A:光标移动到行尾
O:光标所在行的上方添加新行
普通模式(v):完成各种移动光标,复制粘贴
低行模式(esc):完成保存/退出
w:保存
wq:保存并退出
q!:强制退出
ctrl+zz或者 ZZ:直接退出
!pwd:临时执行一条命令,按回车返回
普通模式下的常用操作:
移动光标位置
hjkl 0 $ w(向前移动一个单词) b(向后移动一个单词)
gg 光标移动到文档首行
G 光标移动到文档末尾
ctrl+f 向下翻页
ctrl+b 向上翻页
拷贝
yy 复制光标所在行
nyy 从光标所在行开始向下复制n行数据
粘贴
p 粘贴到光标下一行
P 粘贴到光标所在行的上方
剪切/删除
dd 删除光标所在行
ndd 从光标所在行开始向下删除n行数据
dw 从光标所在位置处开始删除一个单词
x 删除一个字符
D 从光标所在位置开始删除到行尾的数据
其它
u 撤销上一步操作
ctrl+r 恢复操作
gg=G 全文对齐
vim 常用插件: taglist ctags
gcc编译器
gcc file1 -o file2 指定生成的文件名
gcc编译器执行过程
预处理:展开代码及文件
gcc -E main.c -o main.i
仅预处理
编译:审查代码(纠错)及生成汇编代码
gcc -s main.i -o main.s
仅编译
汇编:将汇编代码转换成机器指令代码
gcc -c main.s -o main.o
仅汇编
链接: 链接所有的.o文件,生成一个可执行程序
gcc main.o -c main
仅链接
objdump -S 查看文件的二进制代码
权限修改
有些命令user是不能够进行的,所以当我们要使用这些命令时需要root权限
su 切换至root权限 需要输入密码
从root切换到user su user_name
Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
(1)/proc:特殊文件目录。这个目录采用一种特殊的文件格式(proc格式,内核支持这种格式。其中包括了全部虚拟文件。它们并不是保存在磁盘中,也不占用磁盘空间,当查看它们时,实际上看到的是内存里的信息,这些文件有助于我们了解系统内部信息)。
(2)/sys: 文件系统访问 Linux内核
(3)/bin:普通用户可以使用的命令存放目录。
/usr/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
(4)/usr/local:存放软件升级包
(5) /var:内容经常变化的目录。此目录下文件的大小可能改变,如缓冲文件、日志文件、缓存文件等一般会放在这里。
(6)/tmp:一般用户或正在执行的程序临时存放文件的目录即临时文件,任何人都可以访问,重要数据不可放置在此目录下
(7) /SElinux:SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
(8)/etc/:全局配置文件存放目录。系统和程序一般都可以通过修改相应的配置文件来进行配置。
(9)/root:系统管理员root的家目录,不放在home目录下
du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser这些命令的作用
du 作用是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。
主要参数:
a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计
a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
top 基本格式df [options]
作用:命令用来显示执行中的程序进程,使用权限是所有用户
主要参数:
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。
df 命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
主要参数:
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以1024字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示inode信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
-P:使用POSIX输出格式。
-T:显示文件系统类型。
free 格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
作用:free命令用来显示内存的使用情况,使用权限是所有用户。
主要参数:
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。