1.Linux文件或目录颜色情况
蓝色:目录 白色:普通文件 红色:压缩文件 绿色:可执行文件
Ctrl+p +n ---------- 切换命令 history 历史命令
Ctrl+b-------光标向前 Ctrl+f ------光标向后 Ctrl+a-------光标到行首 Ctrl+e-----光标到行尾 Ctrl+u------删除光标前面的字符
ls----列出所有的文件 cd 切换目录 .表示当前目录 …表示当前的上一级目录
-表示在临近的两个目标直接切换 cd- cd /路径

2.Linux系统目录结构

  • /bin:存放最经常使用的命令
  • /dev:外部设备
  • /boot:存放一些开机时的核心文件
  • /home:用户的主目录
  • /lib:系统最基本的动态连接共享库
  • /root:系统管理员,超级权限者用户的主目录
  • /usr:用户的很多应用程序和文件, 类似与windows下的program files目录

3.文件和目录操作
ls -a(列出当前目录下所有文件内容) -l(除文件名以外,还将文件的权限所有者所属组其他人、所有者、大小等详细信息列出来)
pwd (查看当前所在目录)
mkdir+目录名 ( 创建目录) mkdir -p world/china (创建多级目录) rmdir+目录名(删除空目录)
touch+文件名 (创建文件)// 如果存在会更新文件时间
rm+文件名 (删除文件) rm -r dir (删除目录) // rm -ri dir(每一步都会询问)
cp file1.txt file2.txt (拷贝) cp -r dir1 dir2 (拷贝目录)
查看文件
cat file.txt (将文件内容一次性输出到终端,文件太长,无法全部显示)
more +文件名 (回车:显示下一行 空格:显示下一页)
less+文件名 (分页显示到终端 回车:显示下一行 空格:显示下一页 ctrl+B 前翻)
head/tail -n hello.c (查看文件的前n行)默认显示前10行
mv 文件名 文件名 (给文件改名字也可以移动文件)
wc a.txt(查看文件的字数、字节数、行数)
which (查看指定命令所在的路径)
which cp //查看cp命令所在的路径
ln 文件 (硬链接,并不会占用磁盘空间,只是一个映射/软连接只是一个快捷方式)
每一个文件都有一个inode结果

4.文件权限/用户/用户组
4.1 whoami (查看当前登陆用户)
4.2 chmod (修改文件属性) 1–执行 2–写权限 4–读权限
chmod 777 file.txt //777分别对应所有者、所属组、其他用户
4.3 chown(修改文件所有者) chown+文件所属用户+文件或目录名 chown+文件所属用户:所属组+文件或目录名
sudo chown nobody text.txt
sudo chown nobody:nogroup text.txt

5.文件查找
5.1 find主要是通过文件的属性进行查找文件的,文件名、文件大小、所有者、所属组
find +路径±name+文件名 find+路径±size+大小 find+路径±type+类型
find /home -name "hello.c" //当不知道全名时可以用通配符(*:表示缺省字符串 ?表示一个字符)
fine /home -size +10k //大于用+,小于用-
fine /home -type d/f/b/c/s/p/l //d:文件夹 f:普通文件 p:管道
5.2 grep(按文件内容查找) grep -r +“查找的关键字” +路径
grep -r "main void" /home/itcast

6.软件的安装和卸载
6.1 apt-get :
sudo apt-get install tree //安装 tree表示软件名
sudo apt-get remove tree //卸载
sudo apt-get update //更新软件列表
sudo apt-get clean //清理所有软件安装包
6.2 deb包安装 (已经在官网下载了)
sudo dpkg -i xxx.deb //安装
sudo dpkg -r xxx //卸载 名字可能会和xxx.deb不同 可以输入前几个字符tab补齐
6.3 源码安装 可以根据附带的README文件进行安装,一般步骤如下:

  1. 解压缩包,并进入到安装目录(cd dir)
  2. 找到configure 执行./configure 检查文件是否缺失 这一步会生成makefile文件
  3. 编译源码,生成库和可执行程序 make
  4. 将库和可执行程序安装到系统目录下 sudo make install
  5. sudo make distclean //删除和卸载软件

7.文件压缩和解压缩
7.1 tar
参数:c–创建 x–释放 v–显示提示信息 f–指定压缩文件的名字 z–使用gzip的方式压缩文件 .gz j–使用bizp2的方式压缩 .bz2
压缩: tar zcvf 生成压缩包的名字(xxx.tar.gz) 要压缩的文件或目录
tar jcvf 生成压缩包的名字(xxx.tar.bz2) 要压缩的文件或目录
tar zcvf alltxt.tar.gz *.txt //将当前目录下所有的txt文件压缩到alltxt.tar.gz包里
解压缩:tar zxvf 压缩包的名字(解压到当前目录)
tar jxvf 压缩包的名字 -C 压缩的目录
7.2 rar (需先安装,可用6里面的方法安装)
参数: a–压缩 x–解压缩
压缩:rar a 生成的压缩文件的名字 压缩的文件或目录
rar a all *.txt
解压缩:rar x 压缩文件名 (解压缩目录)
rar x all.rar test //将all里面的文件解压到test文件夹里面
7.3 zip
参数: -r:递归压缩 ,压缩目录需要加上 -d:指定目录需要加上
压缩:zip 压缩包名字 要压缩的文件和目录
zip all *.txt //目录需要加上-r
解压缩:unzip 压缩包名字 解压缩的目录
unzip all.zip -d test/ //解压到test文件夹

8.进程/网络/用户管理
8.1 who:who(查看当前在线用户的情况)
8.2 ps(查看整个系统内部所运行的进程状况)

  • a (当前所有用户的进程)
  • u:(查看进程所有者及其他一些信息)
  • x:(显示没有控制终端的进程)

ps aux |grep bath //通过管道对显示的进程过滤(指令1|指令2)指令1的输出作为指令2的输入
8.3 kill (杀死信号)
kill -l //(查看信号编号)
kill -SIGKILL/9 5179 //把5179进程杀死
8.4 env (查看当前进程环境变量)可以用管道查找特定环境变量
env | grep PATH //获取路径变量
8.5 top (任务管理器)
8.6 ifconfig (获取网络接口配置信息 eth0电脑网卡) ping +ip
8.7 用户管理
创建用户 sudo adduser +用户名(只能小写)
useradd -s 指定新用户登录时的shell类型 -g 用户组 -d +用户家目录 -m 用户目录不存在自动生成
sudo useradd -s /bin/bash -g Mark -d /home/Mark -m Mark //sudo groupadd Mark:添加组
切换用户 su +用户名 修改用户密码 passwd +用户名
删除用户 sudo deluser+用户名 / sudo userdel -r +用户名
sudo userdel -r Mark

9.man/echo/vim
9.1 man +章节+shell名/系统函数名… 查看手册
man 2 open //查看open系统函数
9.2 echo +字符串 将字符串的内容输出到终端
echo $PATH //会输出PATH变量的值
9.3 关机重启
poweroff/shutdown 关机 reboot 重启
9.4 vim/vi
三种状态切换:
命令模式---->编辑格式( i/I a/A o/O s/S) 编辑模式------>命令模式(ESC)
命令模式----->末行模式( :) 末行模式------>命令模式(ESC ESC)
1)命令模式下操作:
光标移动: H 前 J 下 K 下 L 后 0 行首 行尾 g g 文件开始位置 G 文件尾部 300 G 跳到 300 行删除操作: x 删除当前字符 X 删除前面的字符 d w 删除单词 u 撤销 d 0 删除当前行光标前面的内容 d 行尾 gg文件开始位置 G文件尾部 300G 跳到300行 删除操作:x删除当前字符 X删除前面的字符 dw删除单词 u撤销 d0删除当前行光标前面的内容 d 行尾gg文件开始位置G文件尾部300G跳到300行删除操作:x删除当前字符X删除前面的字符dw删除单词u撤销d0删除当前行光标前面的内容d删除当前行光标后面的内容 dd函数当前行 4dd删除4行
复制黏贴:yy复制 nyy多行复制 p粘贴(光标所在行的下一行) P粘贴(光标所在行)
2)末行模式操作:
:500 //挑转到500行
:s/字符串/字符串/g //替换
:q //退出``:wq //保存并退出 :q! //退出不保存

10.gcc编译过程/静态库和动态库
10.1 gcc编译过程以及生成的文件
hello.c -----(预处理)---->hello.i------(编译器)----->hello.s----(汇编器)---->hello.o----(链接器)---->a.out
(gcc -E hell.c -o hell.i ) (gcc -S hell.i -o hell.s ) (gcc -c hell.s -o hell.o ) (gcc hell.o -o hell )

  1. 预处理:C 编译器对各种预处理命令进行处理,包括头文件包含、宏定义的扩展、条件编译的选择等;
  2. 编译:将预处理得到的源代码文件,进行“翻译转换”,产生出机器语言的目标程序,得到机器语言的汇编文件;
  3. 汇编:将上一步的汇编代码转换成机器码,这一步产生的文件叫做目标文件,是二进制格式。
  4. 链接:使用链接器将该目标文件与其他目标文件、库文件、启动文件等链接起来生成可执行文件。

参数
-o :指定生成文件的名字
-D :在编译的时候定义宏
-I :指定头文件的路径
-g :gdb调试的时候需要
-Wall:编译期间输出警告信息
10.2 静态库:
命名规则:lib+ 库的名字 +.a
.a发布程序的时候,不需要提供对应的库,加载库的速度快 缺点:库被打包到应用程序中,导致库的体积很大,库发生了改变,需要重新编译程序。
10.3 动态库/共享库:lib+库名+.so 执行程序体积小,动态库更新不需要编译程序 缺点:加载库的速度相对较慢
1) 临时设置的方法: export LD_LIARARY_PATH=./lib
2)永久设置的方法:

			1. 找到动态链接库的配置文件: /etc/ld.so.conf
			2. 在该文件中添加动态库的目录(绝对路径)
			3. 更新: sudo ldconfig -v

更多推荐

Linux学习 (1)----常用命令的使用