`
dreamoftch
  • 浏览: 497218 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用linux命令记录

阅读更多

 

用winscp 可以方便的将window的文件上传到linux机器上。

 

今天学习的linux命令:

 

ls:(列出当前目录下的文件和文件夹)

ls -lt:(列出文件,并按照时间降序显示)

ls -ltr:(列出文件,并按照时间升序显示)

 

cd :

cd -(回到进入当前目录之前所在的目录,比如刚开始在/home/test目录,然后我执行了cd /var进入/var目录下,此时我执行cd -就可以回到/home/test目录了。类似浏览器页面回退的功能)

 

pwd:(显示当前目录)

 

mkdir:创建目录

 

touch:创建文件

 

rmdir : 删除文件夹  ,文件夹不为空的时候删除不了,要用rm -rf dir1(r:recursive递归,f:force 直接删除,不询问)

 

rm :删除文件或者文件夹(rm -rf dir1  删除文件夹,rm a.txt 删除文件)

 

cp:拷贝  (cp d1 d2 把文件d1拷贝一份,生成文件d2,  cp -r dir1 dir2  拷贝文件夹dir1,生成文件夹dir2)

 

mv:移动(移动文件和文件夹都一样,mv d1  dir1 把文件或者文件夹d1移动到文件夹dir1下)

 

vi:文件操作:示例:

 

vi a.txt    (进入a.txt文件的操作中,如果文件不存在则创建,首先进入命令模式)

 

a  (进入编辑模式,append)

 

(执行编辑操作)

 

按ESC键结束编辑,返回命令模式

 

通过:w(冒号+w  表示保存)

 

:q(冒号+q  表示退出)

 

:q!(冒号+q+感叹号  表示退出但不保存)

 

返回之后,通过more a.txt 查看内容

 

vi其他命令:(shift+小写字母表示大写字母)

     :set nu(显示行号)

     :set nonu(隐藏行号)

     20G(跳到第20行)

     15->(调到当前行的第15个字符处)

     gg(调到第一行)

     1G(和gg一样,调到第一行)

     G(调到最后一行)

 

 

Vim常用操作:


插入命令:

命令 作用
O    在光标下插入新行
o    在光标所在行行首插入
I    在光标所在字符前插入
i    在光标所在行尾插入
A    在光标所在字符后插入
a    在光标上插入新行


定位命令:

命令        作用
: set nu    设置行号
: set nonu  取消行号
gg          到第一行
G           到最后一行
nG          到第n行
: n         到第n行
$           移至行尾
0           移至行首

删除命令:

命令        作用
x           删除光标所在处字符  
nx          删除光标所在处后n个字符
dd          删除光标所在行,ndd删除n行
dG          删除光标所在行到文件末尾内容
D           删除光标所在处到行尾内容
:n1,n2d     删除指定范围的行


复制和剪切命令:

命令        作用
yy         复制当前行
nyy        复制当前行以下n行
dd         剪切当前行
ndd        剪切当前行以下n行
p、P        粘贴在当前光标所在行下或行上


替换和取消命令:

命令 作用
r   取代光标所在处字符
R   从光标所在处开始替换字符,按Esc结束
u   取消上一步操作


搜索和搜索替换命令:

命令                  作用
/string               搜索指定字符串,搜索时忽略大小写 :set ic
n                     搜索指定字符串的下一个出现位置
:%s/old/new/g         全文替换指定字符串
:n1,n2s/old/new/g     在一定范围内替换指定字符串


保存和退出命令:

命令             作用
:w               保存修改
:w new_filename  另存为指定文件
:wq              保存修改并退出
ZZ               快捷键,保存修改并退出
:q!              不保存修改退出
:wq!             保存修改并退出(文件所有者及root可使用)



Vim使用技巧:

导入命令执行结果 :r !命令
定义快捷键 :map 快捷键 触发命令
  范例: 
        : map ^P I#<ESC>
        : map ^B 0x
 连续行注释  
             :n1,n2s/^/#/g
             :n1,n2s/^#//g
             :n1,n2s/^/\/\//g
 替换 :ab mymail samlee@xxx.net





 

 

 

vi: undo/redo

撤销/重做

在命令模式,假如我们通过dd删除了一行,想要撤销该删除操作,通过 u 即可(undo),如果撤销之后,我们又想重做该操作,通过ctrl + r 即可(redo)。

 

vi filename 进入命令模式,a/A/i/I/o/O 进入编辑模式, ESC返回命令模式。

 

 在shell里面直接进行数字计算(加减乘除):

echo $((2*5))

就可以得到结果啦。

 

cat:直接看例子:

 

           cat a.txt (查看a.txt内容 结果跟more a.txt 一样)

 

          tac a.txt(倒序显示a.txt内容)

 

          head -3 a.txt (显示a.txt的前三行)

 

          tail -3 a.txt(显示a.txt的最后3行)

 

find:查找

          例如:find /demo -name a.txt(在根目录的demo文件夹下查找名字为a.txt的文件)

 

 

crontab -e:

进入定时任务编辑窗口。(通常使用一个shell脚本存储要做的操作,例如:* * * * * /home/my_crontab_task.sh,具体的操作都在这个shell中)

crontab -r:

删除所有定时任务。

crontab -l:

列出所有的定时任务。

 

netstat -anp:

显示出全部的网络信息及其进程号(-p)。

 

ps -ef:

显示全部进程。

ps -aux:

显示全部进程的详细信息

 

查看某个进程是否存在:

ps -ef | grep mysql

查看mysql进程是否存在。

 

ifconfig eth0 192.168.1.111

临时修改ip

 

top:

动态显示内存,CPU,等信息的使用情况

top -d 10

每10秒刷新一次

 

date

显示或设置系统时间

date MMDDHHMMCCYY.SS

月月日日时时分分年年年年.秒秒

 

traceroute www.xx.com

追踪完整路由信息

 

route

查看路由表

 

rpm(Red Hat PackageManager)

 

安装软件:

 

rpm  -ivh xxx.rpm

rpm command and options

  • -i : install a package
  • -v : verbose
  • -h : print hash marks as the package archive is unpacked.

 

查看安装的软件:

 

rpm -qa

  • -q query operation
  • -a queries all installed packages

 

查看是否安装了MySQL:

 

rpm -qa | grep mysql

 

 

如果没有安装telnet服务,可以执行 :

yum install telnet-server 

安装服务 

yum install telnet 

安装命令 

 

然后编辑vi /etc/xinetd.d/telnet 文件,激活telnet,默认是禁用的(disabled改为no)

 

然后重启服务,执行命令 service xinetd restart 

 

参考:安装telnet 

 

 

使用 vi 编辑器的时候,要显示行号,可以在命令模式下执行:

 

    :set nu  或者  :set number

 

取消显示行号:

   :set nu!

  或者:

   :set nonu 

 

即可

 

RPM/YUM用法

 

RPM不会帮我们解决包的以来问题,YUM会帮我们解决包依赖的问题。

 

查询全部已经安装的软件:

rpm -qa

 

查询是否已经安装了mysql:

rpm -qa | grep mysql

 

使用yum list/info查看包信息:

yum list mysql

yum info mysql

 

使用rpm -e(erase)删除包:(如果这个包被其他包依赖,就不能被删除)

rpm -e xxx

 

可以使用yum remove删除

yum remove xxx

 

升级包:

升级所有mysql开头的包:

yum update 'mysql*'

 

使用rpm -i 安装:

rpm -i xxx.rpm

 

rpm :

-i :install 的意思

-v :察看更细部的安装资讯画面

-h :以安装资讯列显示安装进度

所以通常用:

rpm -ivh xxx.rpm 安装包

 

 

使用yum install安装:

yum install mysql

 

 

 

CentOS 下mount share folder:(假设在setting中share folder里面配置的share folder 名字是 myShareFolder)

1. cd /mnt

2. mkdir vm_share(名字可自己决定)

3. mount -t vboxsf myShareFolder vm_share

 

就可以了。

 

su:

 

su表示切换到指定的账号。

如果直接输入su,默认表示切换到root。

 

su user1表示切换到user1账号,但是环境变量和目录仍旧保持不变。

su - user1表示切换到user1账号,同时环境变量和目录也切换过去,就跟user1自己登陆进来一样。

 

 不同方式执行shell 的区别:

 

假如我们有一个shell:

 

#!/bin/bash
# Program:
#	User inputs his first name and last name.  Program shows his full name.
# History:
# 2005/08/23	VBird	First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input your first name: " firstname
read -p "Please input your last name:  " lastname
echo -e "\nYour full name is: $firstname $lastname"

 

无论我们通过 绝对路径(/xxx/xxx/sh02.sh),还是相对路径(./sh02.sh),还是通过 bash 执行脚本(sh sh02.sh),执行完成之后,在父程序bash环境下是拿不到 firstname  lastname 变量值的。

 

但是如果我们通过 source sh02.sh的方式执行的话,执行完之后,我们仍可以拿到 firstname  lastname 变量值。因为这种方式是在父程序bash环境下执行的,所以我们可以拿到里面的变量。

 

 

 

翻页:

 

在linux命令行中通过 shift + pageup/pagedown 翻页,通过 shift + home/end 跳到顶部/底部

 

在vi编辑器里面,vi进入之后,通过 ctrl + f/b 向下/上翻页,通过 shift + g 跳到底部,通过gg跳到顶部。

 

 

where:     whereis  ls/find/vi/mv/cp      显示这些命令对于的执行文件的位置

 

ln:  硬链接/软链接

 

          ln  a.txt  b.txt  (复制了一份到b.txt,同时建立了a.txt和b.txt的链接,修改其中任一文件,另一文件也会改变,称为硬链接,此时删除其中一份文件,不会影响另外文件)

          ln -s a.txt b.txt(建立一个快捷方式b.txt指向了a.txt,修改任一文件,另外文件也会修改,但是删除源文件的话,链接文件会变红色,表示指向的文件不存在)

 

 

 

 useradd(或者adduser): 添加用户:

         useradd  testuser1(添加新用户testuser1,会在home目录下面创建一个testuser1文件夹,删除的时候要一并删除)

 

userdel   :  删除用户 

 

        userdel testuser1  

        然后切换到home下,rm  -rf  testuser1   删除创建的文件夹

 

 

passwd:  修改用户密码  :  首先指定要修改的用户:  passwd   testuser1   然后按照提示是输入密码即可

 

在etc目录下的passwd文件实际上记录的是所有的用户:more  passwd   即可查看所有用户  ,最后一列对应的是使用的shell类别(如 bash ,   csh  ,  bsh  ,ksh 等)

 

在etc目录下的group文件记录的是所有的用户组, more  group  即可查看所有的组

 

可以通过  

 

groupadd   testgroup  添加一个用户组

 

 

userdel:  删除用户 ,userdel  testuser1    删除用户  testuser1,然后还要删除home目录下面对于的文件夹  rm  -rf   testuser1  即可完全删除该用户及其信息

 

 

su:切换用户 (switch  user)  :

      su  testuser1切换到testuser1

 

 

 echo $$(查看shell的进程号)

 

 

我们常用一些ssh客户端在windows上远程登录到Linux上去操作,有时候会需要配置一些login scripts 或者 tunneling等设置,来方便平时操作:

 

login scripts: 

比如:

Expect: password:

Send: 123456

 

表示当收到我们期望的字符串(password:)的时候, XShell自动发送我们设置的内容(123456),经常用于自动登录使用。

 

Tunneling:

比如我们add了一个Tunneling(按照下面的Forwarding Rule):

Type: Local

Source Host:localhost

Listening Port: 12345(本地映射端口)

Destination Host: 192.168.1.111

Destination Port:22(目标映射端口)

 

通过上面的Tunneling配置,我们就做了一个端口映射,本地监听在12345端口,同时映射到192.168.1.111的22端口(用22端口常用于本地上传资料到远程服务器上面)。

假如192.168.1.111机器上面同时又有一个MySQL数据库(监听端口默认是3306),我们可以通过add一个Tunneling映射到该机器的3306端口:

Type: Local

Source Host:localhost

Listening Port: 13306(本地映射端口)

Destination Host: 192.168.1.111

Destination Port:3306(目标映射端口)

 

这样在本地通过访问13306端口就可以访问目标机器的MySQL数据库了。

 

linux 中,引号里面也可以使用 $ 符号,但是单引号和双引号是有区别的(参考:鸟哥linux私房菜):

 

双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:

『var="lang is $LANG"』则『echo $var』可得『lang is en_US』

单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:

『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』

 

 

date --date='2 days ago' +%Y%m%d

现实结果是:20150617

date: 

--date: 显示后面字符串里面描述的时间。(2 days ago, 即两天前的时间)

+FORMAT: 时间显示的格式。

 

date1=$(date --date='2 days ago' +%Y%m%d)

echo $date1

现实结果是:20150617

上面date1=$(date --date='2 days ago' +%Y%m%d)的意思是首先将$(exp) 小括号里面的语句执行,类似javascript里面的 eval(“alert('aaa')”) 一样的意思。然后将执行的结果赋给变量date1,这样就可以通过echo $date1 看到该变量的值了(参考:鸟哥linux私房菜)。

 

 

 

ubuntu 启用 root 账号:

 

Ubuntu 12.04 root用户登录设置 
Ubuntu 12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo  -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。 

然后执行: vi /etc/lightdm/lightdm.conf 

增加 greeter-show-manual-login=true  allow-guest=false  . 修改完的整个配置文件是 

[SeatDefaults] 
greeter-session=unity-greeter 
user-session=Ubuntu 
greeter-show-manual-login=true #手工输入登陆系统的用户名和密码 
allow-guest=false   #不允许guest登录 

然后我们启动root帐号: 
sudo passwd root 
根据提示输入roott帐号密码。 

重启Ubuntu,登录窗口会有“登录”选项,这时候我们就可以通过root登录了。

 

 

 

ubuntu 切换图形界面和命令行界面:ctrl+alt + f1/f2/f7(f7是图形界面,另外两个是命令行界面) 

 

 

 

 

 

ubuntu 上下左右和delete键盘问题

 

 在ubuntu下,初始使用vi的时候有点问题,就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D之类的字母,而且编辑错误的话,就连平时关于的退格键(Backspace键)都使用不了,只能用Delete来删除。针对这个问题,网上的答案有很多,例如是安装完整版的vim啊,编辑/etc/vim/vimrc.tiny等方法,很杂很乱,在这里我就做个详细的总结吧:

一、编辑/etc/vim/vimrc.tiny

由于/etc/vim/vimrc.tiny的拥有者是root用户,所以要在root的权限下对这个文件进行修改。很简单,这个文件里面的倒数第二句话是“set compatible”,如下所示:   

                                       

将“compatible”改成“nocompatible”非兼容模式就可以解决方向键变ABCD的问题了。接下来要解决Backspace键的问题也很简单,在刚才那句话后面再加一句:

 

[cpp] view plaincopy
 
  1. set backspace=2  
变成下图所示:

 

                                       

就可以解决问题了。这个时候,无论对于哪个用户,使用vi都能很方便的按照我们的习惯去编辑文件了。

 

 

 

 

分享到:
评论

相关推荐

    Linux操作系统实验报告-常用Linux命令gcc.doc

    Linux 操作系统实验报告-常用 Linux 命令 gcc Linux 操作系统实验报告-常用 Linux 命令 gcc 是一篇关于 Linux 操作系统的实验报告,主要涵盖了常用 Linux 命令和 gcc 编辑的 C 程序源代码。该实验报告的目的是通过 ...

    linux命令执行,历史记录,常用命令

    可以记录常用的linux命令,特别是比较长的,非常有用。使用方法:把该Q可执行文件考备份到linux上,任何目录都行,第一次执行用./q的方式执行,第一次执行之后q程序会被加到系统目录,以后每次执行都可以像使用系统...

    150个常用Linux命令

    本文将基于“150个常用Linux命令”的内容,详细介绍其中的关键知识点,特别是那些对于初学者而言至关重要的命令。 #### 一、帮助与查询命令 **help** 此命令用于查看Shell内置命令的帮助信息。例如: ``` help ...

    linux常用命令练习

    ### Linux常用命令精讲 #### 登录与退出 在Linux环境中,系统启动后,首先进入的是登录界面,用户需要通过`login`命令输入用户名和密码进行登录。正确的用户名和密码验证后,用户将被引导至Linux的命令行界面,即...

    Linux常用命令全集

    在Linux操作系统中,掌握一些基本...这些只是Linux命令海洋中的一部分,通过不断实践和学习,你可以逐渐成为一个Linux高手。记住,Linux的世界是开放的,充满了无限可能,只要勇于探索,你一定能在这个系统中游刃有余。

    Linux常用命令大全

    Linux操作系统以其开源、稳定和强大的特性,被广泛应用于服务器、云计算和嵌入式系统等领域。对于运维人员来说,熟练掌握Linux命令行操作是至关重要的。...这份“Linux常用命令大全”是学习和查询Linux命令的宝贵资源。

    Linux常用命令.xmind

    本图为本人整理的linux常用命令脑图,主要包括常用的一些命令,基本上日常工作中足够使用。

    linux常用命令文档

    `history`命令可以显示你之前输入过的命令记录。 17. **ifconfig**:网络配置。在某些Linux发行版中,`ip`命令已替代`ifconfig`,但`ifconfig`仍可用于查看和配置网络接口。 18. **ping**:网络连接测试。`ping`...

    Linux常用命令全集_集中所有linux命令

    本文将深入探讨“Linux常用命令全集”,旨在帮助初学者和经验丰富的用户更好地理解和掌握Linux命令行的基本操作。 1. 文件与目录操作: - `ls`:列出目录内容,通过`-l`选项可以显示详细信息。 - `cd`:改变当前...

    Linux常用命令 Linux TXT

    ### Linux常用命令详解 #### 一、登录与用户管理 **1. login** - **功能描述**:`login` 命令用于用户登录到 Linux 系统。 - **基本语法**:`login [选项]` - `[name]` 指定用户名。 - `[p]` 如果指定了该选项...

    LINUX常用命令字典

    `history` 命令显示之前输入过的命令记录。 20. **jobs** 和 **fg/bg** - 控制后台进程 `jobs` 列出当前终端的后台进程,`fg %jobnumber` 将指定的后台进程调至前台,`bg %jobnumber` 将其放回后台继续运行。 ...

    Linux常用C函数和Linux命令大全

    本文将深入探讨“Linux常用C函数”和“Linux命令大全”这两个主题,以帮助你提升在这两个领域的专业技能。 首先,让我们来谈谈“Linux常用C函数”。C语言是一种强大的、低级别的编程语言,广泛用于系统编程、嵌入式...

    Linux常用命令全集.zip

    下面我们将详细探讨一些重要的Linux命令。 1. **ls**:用于列出目录内容。通过不同的参数,如`-l`显示详细信息,`-a`显示所有文件包括隐藏文件,`-h`以人类可读的方式显示文件大小。 2. **cd**:改变当前工作目录...

    linux常用命令大全

    以下是一些核心的Linux命令,这些命令涵盖了日常系统管理、文件操作、进程控制、网络诊断等多个方面。 1. **ls**:列出目录内容。通过`ls -l`可以查看详细信息,`ls -a`显示所有文件包括隐藏文件。 2. **cd**:...

    自己总结的linux常用命令xmind

    linux常用命令的xmind,不知道怎么可以免费共享大家 作为自己的记录。

    Linux常用网络命令

    ### Linux常用网络命令详解 #### 一、网络参数设定指令 **1. ifconfig** - **功能**: 用于设定或查询网络接口的配置。 - **语法**: - `ifconfig [interface]` - `ifconfig [interface] [options]` - **参数**: ...

    linux常用60个命令

    对于初学者来说,掌握一些基础且常用的Linux命令至关重要。本文将详细介绍《Linux必学的60个命令》中提及的部分命令,并对这些命令的使用场景和技巧进行深入探讨。 #### 二、命令分类概览 根据其在系统中的作用,...

Global site tag (gtag.js) - Google Analytics