Linux(ubuntu)笔记

查看命令帮助(windows中为xxx /?)
command --help(-h)
man command
info command

查看linux内置命令的帮助
help command
help export
help for

ls -al | more翻屏(空格翻屏q退出)(windows中为dir )(-h 人性化可读)
1.sudo reboot //重启
2.sudo shutdown -r now
sudo halt -p // 关机,关电源
uname -a (--all) // 查看系统内核信息

查看命令的目录which whoami
echo $path(windows中为echo%path%)
bin //二进制文件目录
sbin //二进制文件目录
dev //device,设备目录
etc //配置文件所在目录, 环境配置信息
lib //库文件(so:shared Object共享对象,等价于dll)
root //root用户主目录
pwd //当前文件夹

usr
usr/bin
usr/sbin

su root // 切换用户
su passwd // 设置root密码
mkdir // -p不存在父目录则创建
find . | grep a // 管道(windows中为tree)
rm -f -r a // 强制递归删除目录(windows中为del)
echo hello > hello.txt// 追加
echo hello >> hello.txt// 覆盖
cat(windows中为type)
nano编辑器
control+O保存
control+X退出
control+K剪切
control+恢复剪切


cp hello.txt a/b/c
cp hello.txt a/b/c/b.txt 拷贝的同时重命名
cp -r b ../拷贝文件夹
mv a aa同一目录下移动就是重命名
mv b ../将b文件夹移动到上级目录
head hello.txt // 打印前十行
head -3 hello.txt // 打印前3行
tail hello.txt
tail -3 hello.txt
more hello.txt

hostname查看主机名称
(主机名位于/etc/hostname文件中)
file 文件名(查看文件类型)(usr/bin/file)

tar -cf archive.tar foo bar #Create archive.tar from files foo and bar
tar -tvf archive.tar #list all files in archive.tar verbosely不解归档,查看tar包内的内容
tar -xf archive.tar #Extract all files from archive.tar
tar -xvzf *.tar.zg #tar开
tar -rf mytar.tar xxx #追加文件
gzip -1 mytar.tar #原地压缩(in-place)时间优先
gzip -9 mytar.tar #空间优先
gunzip == gzip -d #解压缩文件

xargs(usr/bin) #将管道的输出内容合并成一行数据,使用空格分隔
ls | grep .txt | cp `xargs` ./b

光驱的挂载

mount
mount /dev/cdrom /mnt/cdrom
umount /dev/cdrom


链接
1.硬链接(hard link)
ln hello.txt hello.txt.ln
两个完全相同的文件,占用2倍的磁盘空间,两者实时同步删除一个另外一个不删除
2.符号链接(symblic link)
ln -s hello.txt hello.txt.ln
相当于win的快捷方式,不会占用过多的磁盘空间
如果源文件删除,链接失效(红色,不意味着删除)


grep特殊字符需要转义
ls -al | grep "\->"

jobs
--------------
显示所有后台作业


kill
杀死进程

ps
进程显示
ps -af | more(a 所有进程f 所有格式)

kill 杀死进程
kill %1

cut 剪切(usr/bin/cut)
cut -c 1- hello.txt
ps -al| cut -c 10-15

cut -c 1- xxx
cut -c -5 xxx
cut -c 1-5 xxx

 

fdisk
(sbin/fdisk)
查看磁盘信息,分区
sudo fdisk -l /dev/sda


df查看磁盘利用率


dirname查看文件或文件夹所在目录
suffix后缀

basename输出文件的基本名称(去除目录)(仅解析串不判断是否真实存在此目录)
basename /home/ubuntu/hello.txt #输出hello.txt
basename /home/ubuntu/hello.txt .txt #输出hello


echo $(hostname) #类似于echo `hostname`,都是进行动态命令执行
echo $($(cat hello.txt))

cd -P 文件夹(符号链接) #进入物理目录
cd - #后退


输出环境变量
echo $PATH
echo ${PATH}
echo "$PATH"


export(导入环境变量,只在当前会话中有效)(内置命令)
export mypath=/home/ubuntu #reboot后失效
windows使用";"分割,linux使用":"
export yourpath=${PATH:-$mypath} #PATH存在则yourpath=$PATH否则yourpath=$mypath


安装虚拟机增强工具
1.VMware->安装VMware Tool
2.打开光驱文件
3.复制vmware-tool-xxxxx.tar.gz到桌面,解压
4.进入终端,进入vmware-tools-distrib
5.执行sudo ./mware-tool.pl
6.一路回车
7.Enjoy...成功了


客户机屏幕自适应
1.关闭客户机
2.编辑客户机设置
3.虚拟机->虚拟机设置->显示器->指定显示器设置
4.ok


客户机和宿主机共享文件夹
1.编辑客户机设置
2.虚拟机->虚拟机设置->选项->共享文件夹
3.进入/mnt/hgfs

客户机和宿主机共享剪切板
1.编辑客户机设置
2.虚拟机->虚拟机设置->选项->客户机隔离
3.选中复选框


if
if commands; then commands; [elif commands; then commands;]...[else commands;] fi
if rm b; then echo ok; else echo error; fi
if[$# -lt 1] #参数个数小于1
if[$# -gt 1] #参数个数大于1
if[-e xxx] #是否存在xxx
if[-d xxx] #xxx是目录吗

0表示命令执行成功1表示失败
echo $? #返回刚刚执行命令的返回结果
$# #参数个数
$0 #命令本身
$1 #第一个参数,此次类推...n
$@ #得到所有参数rm -r bin $@==-r bin
shift #向左移动参数、


命令组合
a && b #a成功执行后,再执行b命令
a || b #a执行失败后,再执行b命令,a执行成功则不执行b
a ; b #a执行之后执行b
(a ; b) #同上,不切换目录

NetCat(nc)
瑞士军刀
TCP/IP
transfer control protocal, internet protocal
模拟tcp, udp网络通信
实现端口扫描
Socket //server, listener, port
ServerSocket //connection, port

服务器
nc -l 8888 #开启服务器监听8888端口
control + z #后台运行
jobs #显示所有作业
kill %1 #杀死作业
nc -l 8888 & #开启服务器监听8888端口,放到后台运行

客户端
nc ip port #指定服务器的IP和监听端口号

fg %1 #切换1至前台


传文件
服务器
nc -l 8888 > readme.txt #重定向
客户端
nc ip 8888 < readme.txt

端口扫描
nc ip -z port1-portn #指定主机ip和端口区间
nc -v -w 2 s1 -z 1-100
-v详细信息
-w连接超时
-z端口扫描

 

命令前台后台执行切换
1.启动命令时直接放到后台
nc -l 8888
2.将当前进程暂停并放入后台,变成了作业(job)了
ctrl + z
jobs #查看后台运行的所有作业,[jobid]
3.将后台job激活,并在后台运行
bg %jobid
4.将后台作业切换到前台运行
fg %jobid

kill %jobid #杀死job

 

目录和权限
drwxr-xr-x 6 ubuntu ubuntu 4696 Aug 21 18:50
控制权限
r:read读
w:write写
x:execute执行
-:none无该权限

类型
d:目录
-:文件
b:block
l:link

用户
user(owner)
group // 组,用户隶属于组,可以隶属于多个组,但只能隶属于一个primary group, 可以隶属于多个secondary group
other
xxx
111 = 7
类型 owner group other
d rwx r-x r-x
111 101 101
7 5 5

ugo+(或-或=)rwx 777
ugo+rwx 755


chmod:change mode
chmod ugo+rwx hello.txt
chmod 000 hello.txt
chmod u+rw hello.txt
chmod a+rw hello.txt
ls -al hello.txt

权限说明
-----------
1.read
文件:查看文件的内容
文件夹:查看文件夹包含的资源
2.write
文件:修改文件内容
文件夹:创建和删除文件
3.execute
文件:可执行文件
文件夹:是否可以进入


chmod 777 xxx

添加用户
-----------
1.useradd(user/sbin/)
是底层添加用户命令,推荐使用adduser
2.adduser(user/sbin/)
通过adduser添加用户
adduser --home /home/ubuntu2 --gid 1000 ubuntu2
deluser --remove-home ubuntu2

 


apt-get(usr/bin)(advanced package tookit 高级包管理工具)


ubuntu修改软件源
sudo nano /ect/apt/soutces.list
sudo apt-get update #更新
sudo apt-get upgrade #升级

ubuntu软件包操作
sudo apt-get install xxx #安装
sudo apt-cache search xxx
sudo apt-cache search jdk

sudo apt-get remove xxx #删除卸载软件
sudo apt-get purge xxx #删除软件和配置文件
sudo apt-get update
sudo apt-get upgrade
sudo dpkg -l | grep xxx

修改ubuntu的软件源(163源 http://mirrors.163.com/.help/ubuntu.html )
1.在当前目录下备份sources.list
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
2.创建sources.list
sudo touch /etc/apt/sources.list
3.修改sources.list()
sudo nano /etc/apt/sources.list

#[/etc/apt/sources.list]
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
4.更新软件包
sudo apt-get update
5.升级软件包
sudo apt-get upgrade

6.安装软件
sudo apt-get install xxx

安装桌面
1.更新软件包
sudo apt-get update
2.升级软件包
sudo apt-get upgrade
3.搜索软件包
sudo apt-cache search desktop | more
sudo apt-cache search ubunut-desktop | more
4.安装软件包
sudo apt-get install xxx

从本地安装桌面
1.取得ISO文件
2.挂载iso文件到/mnt/下
mount /dev/cdrom /mnt/cdrom
3.修改/etc/apt/sources.list文件(修改之前要备份)
[/etc/apt/sources.list]
deb file:/mnt/cdrom ./
4.更新和升级软件源
sudo apt-get update
sudo apt-get upgrade
5.搜索软件
sudo apt-cache search ubuntu-desktop
6.安装软件
sudo apt-get install ubuntu-desktop

注意:继续?:Y
Install these packages without verification [y/N]?y

dpkg(usr/bin)
-----------------
直接安装.deb文件
-i|--install <.deb file name> ...
sudo dpkg -i gedit_3.4.1-xxx.beb
查看是否安装成功
which gedit

dpkg-qurey(user/bin)
----------
-l|--list [<pattern> ...] List packages concisely.列出本地包
dpkg-query -l | grep gedit
sudo --remove gedit


ubuntu本地软件源制作
--------------------
...

sudo apt-get install dpkg-dev
mkdir ~/software
cp -R-v /var/cache/apt/archives/* ~/software
sudo dpkg-scanpackages ~/software/dev/null | gzip > ~/software/Packages.gz
复制整个software文件夹到host主机
安装新ubuntu客户机
从host主机复制software文件夹到主目录
编辑/etc/apt/source.list文件
deb file:/home/ubuntu/software ./
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xxx #此时从本地软件源安装


ubuntu ISO文件制作
...

1.安装mkisofs
sudo apt-get install mkisofs
2.使用mkisofs制作iso文件
sudo mkisofs -r -o xxx.iso /targ

ubuntu通过光驱挂载iso文件实现共享
1.虚拟机挂载iso文件
a.虚拟机->光驱设置->指定iso文件
b.连接
2.挂载cdrom到/mnt目录下
sudo mkdir /mnt/cdrom
sudo mount/dev/cdrom /mnt/cdrom
cd /mnt/cdrom


克隆客户机
1.点击虚拟机->右键->管理->克隆


ubuntu网络连接的几种方式
1.桥接
模拟成一台物理主机,可配置ip,访问互联网,局域网内互访,如无网络彼此无法连通
2.NAT
Net address transform
和host形成局域网,由host做NAT和DNS,可访问互联网,局域网内的其他主机无法访问客户机,没有网络时host和客户机之间仍能连通
3.only-host
类似于NAT,不能访问外网,处于安全性考虑,即client和host形成封闭的局域网


配置client为静态ip
查看网关
vmware虚拟机-->编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->nat设置-->查看网关(172.20.95.2)

查看可用ip段
vmware虚拟机-->编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->DHCP设置-->查看网段(172.20.95.100-172.20.95.254)
挑选一个ip
配置ubuntu的静态ip
编辑网卡配置文件/ect/network/interface
auto lo
iface lo inet loopback
#iface eth0 inet static
iface eth0 inet static
address 172.20.95.101
netmask 255.255.255.0
gateway 172.20.95.2
dns-nameservers 172.20.95.2
auto eth0
重启网络服务
sudo /etc/init.d/networking restart

for
------------
语法1:for NAME [in WORDS ... ] ; do COMMANDS; done
语法2:for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
Equivalent to:
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done


for (( a = 1; a < 4 ; a = a + 1 )) ; do echo $a ; done
for a in 1 2 3 ; do echo $a; done
for a in 1 2 3 ; do echo $a >> ${a}.txt ; done

test.sh
chmod u+x test.sh

[test.sh]
#!/bin/bash
for a in "$@" ; do echo $a > ${a} ; done #等价于for a ; do echo $a > ${a} ; done

 

if [[ #@ lt 1 ]] ; then echo no prame !!! ; exit ; fi

while
while: while COMMANDS; do COMMANDS; done

(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done

[while.sh]
#!/bin/bash
#使用while循环打印10个数
(( a = 1 )) ; while (( a < 11 )); do echo $a ; (( a = a + 1 )) ; done

#使用while循环打印10个数
Equivalent to:
(( a = 1 ))
while (( a < 11 )); do
echo $a
(( a = a + 1 ))
done

使用while循环打印出所有参数
----------------------------
#!/bin/bash
(( count = $# ))
(( a = 1 ))
while (( a <= count )) ; do
echo $1 ;
shift ;
(( a = a + 1 ))
done


FTP
-----------
sudo apt-get install vsftp

启动
sudo /etc/init.d/vsftpd start
重新启动
sudo /etc/init.d/vsftpd restart

sudo vim /etc/vsftpd.conf
修改配置
#允许匿名用户访问
anonymous_enable=YES
#匿名用户无密码登录
no_anon_password=YES
#限制匿名用户下载速度
anon_max_rate=20000 #20k


本地用户登录
local_enable=YES
#开启上传功能
write_enable=YES

ftp黑名单
cat /etc/ftpusers

用户只能浏览主目录
chroot_local_users=YES

设置某些用户只能浏览主目录
chroot_list_file=/etc/vsftpd.chroot_list

创建虚拟用户过程
------------------
1.关闭匿名用户
2.

 

 

----------------------
nl为行编号
cat 不编号


正则表达式
----------------------
egrep "^a.*t$" words|wc -c
匹配words中以a开头以t结尾的字符串,统计数量

egrep "\<[abcd]at\>" words
含有[abcd]开头+at的字符串

egrep "^[[:upper:]]t$" words
以大写字母开头t结尾的字符串
字符类:
[[:alpha:]]:字母字符
[[:lower:]]:小写字符
[[:digit:]]:数字字符
[[:space:]]:空格
[[:graph:]]:除空格外的所有字符
[[::]]


shell编程
---------------
扩展名sh
touch HelloWorld.sh

通配符
*任意长度字符
?任意一个字符


cat -n显示行号
more 显示分屏
head 显示前5行
tail -n 5 显示后5行
less 可翻页
grep PS1 fileName 显示fileName中含有PS1的文本行

find ./ -name *bash* 搜索当前目录中含有bash的文件

locate bash 快速搜索

whereis find
whereis -b find

which ls
which which

uname -a 获取本机信息
uname -r 获取系统内核信息
whatis ls 命令内容
apropos search 查找相关命令

杀毒软件
clamav
clamscan

clamtk


挂载光盘
sudo mkdir /mnt/mycdrom
sudo mount /dev/cdrom /mnt/mycdrom/
#卸载光盘
sudo umount /dev/cdrom

挂载硬盘
sudo mkdir /mnt/hard2
sudo mount /dev/sdb /mnt/hard2/


df:查看磁盘挂载信息

sudo fsck /dev/sdb
sudo fsck [挂载点] 修复挂载磁盘

mkfs 格式化 建立文件系统
sudo mkfs -t ext3 /dev/sdb1
检车文件系统是否正常工作
fsck -f /dev/sdb1

压缩文件
---------------------
gzip fileName

解压文件
gunzip 压缩包文件名
gunzip hello.gz

gzip -d 压缩包文件名


查看压缩效果
gzip -l 压缩包文件名

检查压缩包完整性
gzip -t 压缩包名称
若完整则不会输出任何信息

gzip -tv 压缩包文件名
若完整输出OK


打包
------------------
打包当前目录
tar -cvf example.tar ./
解包
tar xvf 待解包文件
会将文件解压到当前目录之中

tar -cwvf 打包成的文件名 ./
每次打包都询问

创建归档文件并压缩
tar -czvf example3.tar.gz ./

解压归档文件
tar -xzf example3.tar.gz

dd
---------------
创建iso文件
dd if=/dev/chrom of=ubuntu.iso


分区命令
----------------
ls /dev |grep sd
查看磁盘情况

sudo fdisk /dev/sdb

转载于:https://www.cnblogs.com/8386blogs/p/7782706.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值