Linux学习笔记

一、基础学习:
1、创建管理员root用户:
  • $ sudo passwd
  • 根据提示,输入当前用户的密码。
  • 输入超级用户的密码。
  • 再次输入超级用户的密码。

备注:刚刚安装的ubuntu虚拟机,只有普通用户,需要创建root管理员用户。

2、打开终端:
  • 快捷按键 shift + alt + t
  • search -> terminal

3、查看内存大小:
  • $ free -h

4、查看硬盘分区大小
  • $ df -h

5、释放内存
  • $sync同步数据
  • $ echo 1/2/3 > /proc/sys/vm/drop_caches

6、换更新源
  • $ /#vi /etc/apt/sources.list
  • :%s/us.archive/cn.archive/g (命令模式下,将美国源替换为中国源)
  • $ apt-get update (读取软件列表到本地)
  • $ apt-get upgrade(升级软件)

7、切换用户:
  • $ su 用户名

8、搜索指令
  • $ find 路径 -name 名字 (搜索文件)
  • $ find 路径 -type d -name 名字 (搜索文件夹)
  • $ grep -r 名字 路径 (搜索字符串)

9、安装vmware tools
  • VMware workstation 的虚拟机找到安装vmware tools
  • 在虚拟机里面找到VMware tools包,解压到用户目录
  • shell 界面运行 $ ./vmware-install.pl

10、查看工具所在路径
  • $ which gcc

11、创建空文件
  • $ touch 文件名

12、查看行数、字数、字符数
  • $ wc 文件名

13、查看文件头、文件尾
  • $ head 文件
  • $ tail 文件

14、分页显示文件内容
  • $ more 文件名
  • $ less 文件名
  • ctrl + f 前进
  • ctrl + b 后退

15、 树形结构显示文件
  • tree 路径

16、查看文件详细信息
  • $ stat 文件名(比ls更详细)

17、显示在线的用户
  • $ who

18、显示当前操作用户
  • $ whoami

19、显示主机名
  • $ hostname

20、显示系统名字
  • $ uname

21、显示进程消耗资源情况
  • $ top

22、显示进程状态
  • $ ps
  • $ ps -aux

23、查看目录所占大小
  • $ du -h 路径

24、查看网络情况
  • $ ifconfig

24、查看指令帮助信息
  • $ man

25、清屏
  • $ clear

26、对命令重命名
  • $alias ii = "ls -l"
  • $unalias ii (解除)

27、程序后台运行
  • $ ./程序名 &

28、杀死进程
  • $ kill 进程pid号 (ps / top查看进程号)

29、打包压缩解压
  • $tar -cvf /home/abc.tar /home/abc              只打包,不压缩
  • $tar -zcvf /home/abc.tar.gz /home/abc        打包,并用gzip压缩
  • $tar -jcvf /home/abc.tar.bz2 /home/abc      打包,并用bzip2压缩

  • $tar -xvf abc.tar  -C 路径  解压
  • $tar -zxvf abc.tar.gz -C 路径   gzip解压
  • $tar -jxvf abc.tar.bz2    bzip2解压

30、关机、重启
  • $ reboot (重启)
  • $ shutdown -r now (关机并重启)
  • $ shutdown -h now (关机)
  • $ halt -p (关机)

31、安装、卸载软件
  • $ apt-get install 软件名 (在线)
  • $ apt-get remove 软件名 (在线)

  • $ dpkg -i tree.deb         离线安装软件
  • $ dpkg -r tree               卸载软件

  • 备注:若离线包为.rpm格式(redhat公司),则需要对其进行转化
  • $ alien abc.rpm

32、linux发行版比较
  • ubuntu:
    • 优点:漂亮用户界面,完善包管理,软件源管理,对硬件兼容性好。
    • 缺点:所需资源大(内存,显卡)
  • sentos:
    • 优点:简约:继承redhat,去除与服务器无关功能,指令人性化,大量的文档支持。
    • 确定:体积大了一些
  • debian:
    • 优点:稳定(比Ubuntu稳定),需要资源小
    • 缺点:文档少
备注:
  • redhalt:商业版代表
  • debian:开源社区代表


33、查看ubuntu系统是几位的
  • $ uname -a
  • $ arch
  • getconf LONG_BIT


34、网卡地址配置
Ubuntu的网络配置文件是:/etc/network/interfaces
  • 、以DHCP 方式配置网卡
   auto eth0
   iface eth0 inet dhcp
用sudo /etc/init.d/networking restart命令使网络设置生效

  • 、为网卡配置静态IP地址
sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1

也可以在后面加上dns地址
dns-nameservers 202.96.134.133 210.21.196.6

sudo /etc/init.d/networking restart

35、查看usb设备信息:
  • # mount -t usbfs usbfs /proc/bus/usb/
#cat /proc/bus/usb/devices

  • #lsusb

36、环境变量
环境变量的设置
一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt /au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,
三种方法来设置环境变量:
1、直接用export命令:
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH 
作用域:命令 “PATH=$PATH:路径”可以把这个路径加入环境变量,但是退出这个命令行就失效了。

2、修改profile文件:
#vi /etc/profile
在里面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
让环境变量立即生效需要执行如下命令:
#source /etc/profile
作用域:永久生效,且/etc/profile”对系统里所有用户都有效,

3. 修改.bashrc文件:
# vi /root/.bashrc
文件头里面加入:
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH 
#source .bashrc
后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:
# echo $PATH
看看输出里面是不是已经有了/my_new_path这个路径了。
作用域:用户主目录下 的“.bash_profile”只对这个用户有效。

查看是否设置成功:
1、#export
2、#printenv
3、#cat $PATH
4、#env

问题:怎么知道编译时用的是/usr/local/mipsel-4.1.2-nopic/bin,还是其他的???

PATH=/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/apache-maven/bin:/usr/local/arm-gcc/bin:/usr/local/mipseltools/bin:/usr/local/mips-4.3-mxu/bin:/usr/local/arm-marvell-linux-gnueabi/bin:/usr/local/mipsel-4.1.2-nopic/bin

#which mipsel-linux-gcc

导出工具链
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH (宝橙有效)

查看编译器位置:
#which mipsel-linux-gcc

37、导出动态库
#export LD_LIBARARY_PATH="xxxx动态库路径:"



创建用户?
38、#adduser -r xxx -r 参数建立系统用户
#passwd xxx 添加用户密码

#userdel -r xxx 删除用户



39、指定用户发送消息
  •  #w或who命令查看当前登录的用户信息
  • write 登陆用户名 ttyname(例如write root pts/1)
  • ENTER
  • 输入信息(所要发送的消息,中文可能会乱码)。
  • CTRL+D结束

40、tftp传输
tftp简单文件传输协议,是tcp/ip协议族中一个用来在客户机与服务器之间进行简单文件的传输协议。
端口号:69
基于:udp文件传输协议
netstat -a | grep tftp查看tftp是否启动
疑问:自己安装的服务器为啥没有显示?

PC-服务器(ubuntu)之间通讯:
  • 打开pc端tftp32软件
  • #tftp 192.168.1.2 //pc端地址
tftp>binary //文件类型
tftp>get <download file> //获取pc文件
tftp>put <upload file> //发送文件到pc
tftp>q //退出


PC-机器之间通讯:
#tftp -g -r 文件名 主机ip

举例:
#tftp -r libusbdemo -g 192.168.1.123
#chmod u+x libusbdemo
#./busbdemo

是什么,干什么(有什么用),怎么做
vi是编辑文件的工具,能够实现对文件增删改查。它有三种模式,分别是。。。
41、vi编辑器:编辑文档的工具,有三种操作模式
  • 命令模式:默认模式
    • G(shift+g) 跳转文件尾
    • 行数G 跳转到具体某行
    • 2yy 复制光标开始以后的两行
    • 2dd 删除光标开始以后的两行
    • dw delete word删除光标所在的单词
    • x 删除光标所在字符
    • r字符 把光标所在的字符替换为字符
    • yw 复制单词
    • J 把下一行内容追加到本行尾,以一个空格隔开
    • D 在行中删除光标后面的内容
    • ~ 光标所在的字符大小写切换
    • u 恢复上一个动作,可以一直恢复
    • p 粘贴到光标所在的后一行
    • P 粘贴到光标所在的上一行

  • 底行模式:按冒号:进入底行模式
    • :set nu 显示行号:
    • :set nonu 不显示行号
    • :/字符串 向下搜索字符串;再按 n搜索下一个,N搜索上一个
    • :?字符串 向上搜索字符串;再按 n搜索上一个,N搜索下一个
    • :s/旧字符/新字符 替换掉本行中的第一个旧字符
    • s/旧字符/新字符/g 替换掉本行中全部旧字符
    • :%s/旧字符/新字符/g 替换掉整个文件全部的旧字符
    • :w 保存
    • :q 退出不保存
    • :wq 保存后退出
    • :q! 强制退出不保存
    • :w 名字 另存为名字
    • :tabnew 文件名 新建文件
    • :vsplit 文件名 打开多个窗口
    • :ctl + w 切换窗口
  • 插入模式:按i,a,A,o,O进入插入模式
    • i 插入到光标前
    • I 插入到行首
    • a 插入到光标后面
    • A 插入到行尾
    • o 在光标下面新建一行
    • O 光标前面新建一行
    • s 删除光标所在的字符,并进入插入模式,等效于:i再右箭头再backspace或者a再backspace
    • S或者cc 删除光标所在行,并进入插入模式,等效于:dd再O
    • cw 删除光标所在的单词,并进入插入模式
    • R replace覆盖本行内容



42、查看文件属性
  • #file xxx

43、APT(Advanced Packaging Tool)高级软件工具
  • sudo apt-get update                               更新软件
  • sudo apt-get upgrade         更新系统
  • sudo apt-get install tree                         安装tree
  • sudo apt-get remove tree                       卸载tree

44、搜索服务器的安装包
  • #apt-cache search libudev

45、编译第三方库
安装libusb库
  • #autogen.sh //生成configure文件
  • #./configure --prefix=$(pwd)/bin --host=mipsel-linux CC=mipsel-linux-gcc
  • #make
  • #make install

安装zlib库 
export CC=arm-linux-gcc(确保环境变量)
1、./configure --shared --prefix=/home/user/release/usr/  (配置安装路径)
2make 
正常情况
arm-linux-gcc -O3 -DUSE_MMAP   -c -o example.o example.c
arm-linux-gcc -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
arm-linux-gcc -O3 -DUSE_MMAP   -c -o compress.o compress.c
 
3、make install   
 
生成:/home/user/release/usr/{lib,include} 
lib(libz.so,libz.so.1,libz.so.1.2.2)
include(zconf.h, zlib.h)
 


46、查看文件内容
  • 字符形式:
    • #od -c 文件名
  • 二进制形式:
    • #od -x 文件名

待解决问题:
为用户添加samba账户?
没网络情况如何跟主机通讯?


学习在于积累,肖申克的救赎,男主角用了20年才越狱成功
KUI 2017/04/13






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章