linux零基础入门总结

啊,notepad++贴过来怎么对齐格式这么糟糕呢?

#root用户
$普通用户
 
linux命令
清屏clear翻页清屏  CRT中ctrl+L
   reset"清空
CRT中不起作用"
创建用户useradd a创建用户名为a的用户
设置密码passwd a设置用户a的密码(输入密码时内容显示)
切换用户su        切换到root,需密码
               su - a切换到用户a,无需密码
pwd当前所在目录
主机名hostname    查看主机名
hostname xxxx临时设置主机名为xxx
vi /etc/sysconfig/network
hostname=xxxxx
在root用户下永久设置主机名为xxx
vi /etc/hosts
IP+空格+主机名
关机重启
        halt        关机(root)
   reboot或init 6重启(root)
 
SSH 登录
查看IP    ipconfigwindows的命令
ifconfiglinux的命令
   网络设置建议使用NAT模式
   静态IP    address    前三段和ifconfig得到的一致,最后一段任意
   netmask    255.255.255.0
gateway    VMware——编辑——虚拟机网络编辑器——NAT模式——NAT设置——网关
DNS        和gateway一致或8.8.8.8
           (bridge模式用win下的DNS地址)
HWADDR      其实就是MAC地址
ping IP地址/域名/主机名
           测试能否连通对应的地址
          (注意关闭防火墙)
 
secureCRT
    修改hosts文件  C:\Windows\System32\drivers\etc
             (如不能保存请赋予当前用户权限)
              IP+空格+带域名的主机名+简写的主机名
端口   22(filezilla、notepad++也是)
协议       SSH2(notepad++是SFTP)
需要:       win的hosts文件配置+linux的静态IP配置+network文件配置
          主机名、用户名和密码
自定义
       配色方案ANSI+使用配色方案打钩
   编码    UTF-8(linux中中文文件在CRT中显示乱码问题没解决)
   字体大小
Xmanager4远程界面工具的端口是22,协议是SFTP
Ctrl+C     中断程式的执行
Ctrl+Z       暂停程式的执行,稍后可以按下fg或bg命令继续.
Ctrl+S       屏幕暂停输出
Ctrl+Q       屏幕恢复输出SSH 登录C:\Windows\System32\drivers\etc
 
secureCRT
    修改hosts文件
             (如不能保存请赋予当前用户权限)
              IP+空格+带域名的主机名+简写的主机名
端口   22(filezilla、notepad++也是)
协议       SSH2(notepad++是SFTP)
需要:       win的hosts文件配置+linux的静态IP配置+network文件配置
          主机名、用户名和密码
自定义
       配色方案ANSI+使用配色方案打钩
   编码    UTF-8(linux中中文文件在CRT中显示乱码问题没解决)
   字体大小
Xmanager4远程界面工具的端口是22,协议是SFTP
Ctrl+C     中断程式的执行
Ctrl+Z       暂停程式的执行,稍后可以按下fg或bg命令继续.
Ctrl+S       屏幕暂停输出
Ctrl+Q       屏幕恢复输出
 
文件和目录
目录
.     当前目录
..  上级目录
cd    change directory
 单独cd 进入当前用户主目录
 cd+目录名 进入指定目录
查看
ls    单独使用,或ls+目录路径
ll    更详细,等价于ls -l
ls -a 显示隐藏的文件夹(.开头)
    类型
          -文件
 d  目录
 l 链接
归属
 u所属用户 user
 g同组用户 group
 o其他 other
 
    文件权限
     r     可读     2^2     4
 w 可写 2^1 2
 x可执行   2^0 1   
 - 无权限
 rw-   ->  4+2+0=6  
 修改权限
 chmod (change mode)
 chmod 归属者加号权限字母 被修改权限的文件
加号 增加某权限
减号 减去某权限
归属者加号权限字母也可以使用一组数字代替
 如    chmode u+x readme.txt 
       chmode 664 readme.txt 修改u和g的权限为rw-,o的权限为r--
chmod -R 664 /opt/softwares
  修改目录下的子文件/目录的权限为664(-R表示递归)
 修改归属者
chown 新的所有者用户 被修改的文件
chown 新的所有者用户:新的所属组 被修改的文件
     chown beifeng /home/hive-select-log.sql
 修改所属用户为beifeng
 chown -R beifeng /opt/softwares
 修改目录下的所有的所属用户为beifeng
 chown senior:senior /home/hive-select-log.sql
 修改所属用户和组都为beifeng
chgrp 新的所有者用户 被修改的文件
 chgrp beifeng /home/hive-select-log.sql
 修改所属组为beifeng
创建文件/目录
         创建文件
       touch touch+文件名+后缀名 创建文件
       (虽无后缀名之别,但总要区分)
            创建目录
   mkdir test
mkdir -p ~/data/dfs/tmp
     创建多级目录
复制文件
cp 源文件src 目标目录destdir
   1 /xxx    表示在主目录下的xxx目录(无权限被拒)
2 ./xxx   表示当前目录的xxx目录下面
         xx要存在,否则写./xxx/报错(无法创建xxx)
 如xx不存在,写./xxx,不保存,但创建了xx文件(内容复制过去了)
拷贝的时候建议写全目录
 
dest:文件/目录
   目录:拷贝一个文件到一个目录dest中去
 cp test.txt test-dir
   文件时,拷贝一个文件的内容至一个文件dest中
                          cp test.txt cp-test.txt
         如果该文件dest不存在,
 则创建该文件并将source中的内容拷贝到这个文件
   source:文件名/目录名
目录:将一个目录拷贝到另一个目录中去
     如果dest目录存在
 cp -r test-dir test-dir2
 拷贝test-dir目录到一个名为test-dir2的目录下
 如果dest目录不存在
     cp -r test-dir test-dir2
     test-dir2不存在,则会创建并拷贝test-dir中的内容过去
    不要写成cp -r test-dir/ test-dir2
       而cp -r test-dir test-dir2/
 的意思是,拷贝目录test-dir到目录下
     -r的意思是递归(因为test-dir中可能有很深的层次)
 linux是严格区分大小写的。
 在chmod中:-R, --recursive
 在cp中:   -R, -r, --recursiv
 所以建议统一使用-R,不然还以为不区分呢
移动/重命名
mv src dest
重命名
src和dest在同一个目录下则是重命名
$ mv test-dir/ sub-dir(目录的重命名)
$ mv test.txt test.log(文件的重命名)
移动
src和dest不在同一目录
$ mv test-dir2/sub-dir/ test-dir
将test-dir2目录这的sub-dir目录中的文件移动到test-dir目录下
    查看文件内容
* cat  : 查看全部内容,内容比较少
         cat 文件名
* more :  翻页查看
         按下空格,查看下一页,向上滚动直接查看上面的 
 按下q退出
* tail :  末尾内容,通常与 -f参数连用,适合于查看服务实时动态日志信息
         在正则中,\f是换页符
tail -f xxxx.log
    默认的倒数x行
tail -200f yyy.log
    倒数200行
* head :  开头文件,文件格式,内容模板样式
修改文件内容
vi编辑——->vim
i           编辑插入
end键       行末
G           文件末
esc   退出编辑模式
:wq   保存
:q!或:q回车   不保存
echo "second line" >> test.txt 
追加新的一行内容(字符串"second line")到test.txt文件中
date >> bf-log.txt    向bf-log.txt文件中追加日期数据
            在vi查看模式下(没按下i之前或者在按下i之后的编辑模式中按下esc)
* dd :表示删除光标所在的行的内容
* ZZ :表示的是保存文件内容(要是大写的,所以要打开大写锁定)
* x  :表示将光标处的字符给删除
* o  : 表示在光标的下一行进行插入内容(自动跳到下一行的行首)
    
 
帮助
    nan 命令名
man中的相关操作
  ctrl + F或者Page Down:向下翻页
  ctrl + B或者Page Up:向上翻页
  gg到第一行
  GG到最后一行
  /start:能在整手册中搜索start相关字符,使用n查找下一个,使用N查找上一个
  j,k与vi中一样使用,j向下一行,k向上一行
  d下翻半页
  u上翻半页
  h获取man使用帮助
  q退出man
    tab自动补全
 
系统信息:
uname  系统类型
uname -r   内核版本
cat /proc/cpuinfo   CPU信息
cat /proc/meminfo   内存信息
who                    显示当前的终端
系统时间
            date查看当前的系统时间
date -R 显示系统时间+市区
root用户下:
hwclock 查看当前的硬件时间
cal+xx年xx月     显示xx年xx月日历
which date          查看date命令是在哪里
date +%Y-%m-%d\ %H:%M:%S      使其格式化显示: 年-月-日 时:分:秒
                         2016-07-08 14:09:17
                         注意上面由于中间需要空格,所以加了转义字符\
/bin/date +%Y-%m-%d\ %H:%M:%S
                         等价于上一条命令
/bin/date +%Y/%m/%d\ %H:%M:%S
                         2016Y/07/08 14:10:02
安装软件
rpm -qa|grep xxxx      查看都安装了哪些版本的xxx软件
            rpm -e --nodeps xxxxxx  强制卸载xxx软件(所谓强制就是有依赖它的我也要卸载)
 查看帮助文档可以看到:
 --nodeps
              Don’t do a dependency check before installing or upgrading a package.
不检查相关的依赖
rpm -ivh xxx.rpm               安装rpm格式的软件包
解压/压缩zip yy.zip file                将file压缩为名为xxx.zip的文件
tar -zcvf zzzz.tar.gz dir   将dir目录压缩成zzzz.tar.gz
   unzip xxx.zip                  解压
tar -zxvf xxxx.tar.gz          解压到当前目录
tar -zxvf xxxx.tar.gz -C dir   将dir目录压缩成zzzz.tar.gz
   -v, --verbose
                                       verbosely list files processed
  就是在屏幕上显示解压出来的那些文件,建议不用
安装jdk     1下载tar.gz(1.7)
            2tar -zxf xxx.tar.gz -C 目录
   3#vi /etc/profile    配置JAVA_HOME
export JAVA_HOME=xxxxx
export PATH=$PATH:$JAVA_HOME/bin
4source /etc/profile
5echo $JAVA_HOME     回显
6java -version       检验
  
sudo权限    1# vi /etc/sudoers
               添加
  要设置权限的用户的用户名 ALL=(root)NOPASSWD:ALL
  如:test ALL=(root)NOPASSWD:ALL
  以后sudo+命令等价于在root下使用此命令
 
任务调度crontab
crontab -l列出目前所有的定时任务
crontab -r删除所有的定时任务
crontab 基本定义
语法:
* * * * * command
说明:
1)六个字段之间,使用逗号隔开
2)字段的含义
*       *        *        *        *
分:1-59, 每十分钟 */10
时:0-23,*/2
日:1 -31
 月:1-12
  星期:(0-6)
举一些例子:
### 每天21:30 执行
30 21 * * * cmd01
 
### 每个月1,11,21 的2:30执行
30 2 1,11,21 * * cmd02
 
### 每周六或者每周日,1:45 执行(星期一是0)
45 1 * * 6,0 cmd03
 
### 每天20:00至 23:00 ,每半个小时执行一次
0,30 20-23 * * * cmd04
或者写
*/30 20-23 * * * cmd04
 
 
### 每一小时执行一次
* */1 * * *cmd05
为什么要加/呢?
*/1表示每一分钟
1表示第一分钟
 
Shell脚本
            #!         shell脚本第一行用其坐开头指定用哪个程序来编译或执行该shell
name=hadoop 
          创建变量name,其值为hadoop
  (等号前后不能有空格)
echo ${name}或echo name
  查看变量name的值
  (当然,如果我此时重新克隆一个窗口,那么是不能引用到这些本地变量的)
  /etc/profile中存放的是系统的全局变量
.bash_profile
该文件在用户主目录下,可以设置用户的环境变量
testst.sh  一个名为test的shell脚本文件(shell脚本文件以.sh结尾)
执行           . testst.sh 
              sh testst.sh
              bash testst.sh
          这里的dot(表示执行)
  以上三种执行方式都可以(可能有细微差别)
bash testst.sh localprama1 参数值2
              运行testst.sh脚本,并传入两个参数值
bash testst.sh localprama1 " localprama2 key3"
                           当值中含有空格的时候,要用双引号
${0}           在shell脚本中表示当前脚本的文件名
${1}           表示第一个参数(可以理解为传入的值对于的变量吧)
              也可以使用$1,但是推荐${1},因为0=9再往后就必须加花括号了
${#}   位置参量个数  
            echo $?        运行一条命令,紧接着运行此命令,
              可以显示刚刚运行的那条命令的状态码
  0表示成功,其他表示有问题
数组
arr=(xuan lingya yu)
echo ${arr[2]}         查看数组中第三个元素的值(角标从0开始)
             yu
echo ${arr[*]}         查看数组中所有元素的值
             xuan lingya yu
echo ${#arr[*]}        数组元素的个数
             3
echo ${arr}            
             xuan
echo ${arr[0]}         数组名等价于数组中角标为0的元素
             xuan
arr[0]=me   修改数组中元素的值
echo $arr
             me
            $(命令) 里面写的是命令
${变量} 里面写的是变量
            []的作用:判断语句的true/fasle,等价于tes(细节比较多)
控制结构,还是参考鸟哥的书吧,想系统的学习下的话
 





附件列表

 

posted @ 2016-07-30 16:47  旅鼠  阅读(768)  评论(0编辑  收藏  举报