用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 -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:
#!/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 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下,初始使用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键的问题也很简单,在刚才那句话后面再加一句:
- set backspace=2
就可以解决问题了。这个时候,无论对于哪个用户,使用vi都能很方便的按照我们的习惯去编辑文件了。
相关推荐
Linux 操作系统实验报告-常用 Linux 命令 gcc Linux 操作系统实验报告-常用 Linux 命令 gcc 是一篇关于 Linux 操作系统的实验报告,主要涵盖了常用 Linux 命令和 gcc 编辑的 C 程序源代码。该实验报告的目的是通过 ...
可以记录常用的linux命令,特别是比较长的,非常有用。使用方法:把该Q可执行文件考备份到linux上,任何目录都行,第一次执行用./q的方式执行,第一次执行之后q程序会被加到系统目录,以后每次执行都可以像使用系统...
本文将基于“150个常用Linux命令”的内容,详细介绍其中的关键知识点,特别是那些对于初学者而言至关重要的命令。 #### 一、帮助与查询命令 **help** 此命令用于查看Shell内置命令的帮助信息。例如: ``` help ...
### Linux常用命令精讲 #### 登录与退出 在Linux环境中,系统启动后,首先进入的是登录界面,用户需要通过`login`命令输入用户名和密码进行登录。正确的用户名和密码验证后,用户将被引导至Linux的命令行界面,即...
在Linux操作系统中,掌握一些基本...这些只是Linux命令海洋中的一部分,通过不断实践和学习,你可以逐渐成为一个Linux高手。记住,Linux的世界是开放的,充满了无限可能,只要勇于探索,你一定能在这个系统中游刃有余。
Linux操作系统以其开源、稳定和强大的特性,被广泛应用于服务器、云计算和嵌入式系统等领域。对于运维人员来说,熟练掌握Linux命令行操作是至关重要的。...这份“Linux常用命令大全”是学习和查询Linux命令的宝贵资源。
本图为本人整理的linux常用命令脑图,主要包括常用的一些命令,基本上日常工作中足够使用。
`history`命令可以显示你之前输入过的命令记录。 17. **ifconfig**:网络配置。在某些Linux发行版中,`ip`命令已替代`ifconfig`,但`ifconfig`仍可用于查看和配置网络接口。 18. **ping**:网络连接测试。`ping`...
本文将深入探讨“Linux常用命令全集”,旨在帮助初学者和经验丰富的用户更好地理解和掌握Linux命令行的基本操作。 1. 文件与目录操作: - `ls`:列出目录内容,通过`-l`选项可以显示详细信息。 - `cd`:改变当前...
### Linux常用命令详解 #### 一、登录与用户管理 **1. login** - **功能描述**:`login` 命令用于用户登录到 Linux 系统。 - **基本语法**:`login [选项]` - `[name]` 指定用户名。 - `[p]` 如果指定了该选项...
`history` 命令显示之前输入过的命令记录。 20. **jobs** 和 **fg/bg** - 控制后台进程 `jobs` 列出当前终端的后台进程,`fg %jobnumber` 将指定的后台进程调至前台,`bg %jobnumber` 将其放回后台继续运行。 ...
本文将深入探讨“Linux常用C函数”和“Linux命令大全”这两个主题,以帮助你提升在这两个领域的专业技能。 首先,让我们来谈谈“Linux常用C函数”。C语言是一种强大的、低级别的编程语言,广泛用于系统编程、嵌入式...
下面我们将详细探讨一些重要的Linux命令。 1. **ls**:用于列出目录内容。通过不同的参数,如`-l`显示详细信息,`-a`显示所有文件包括隐藏文件,`-h`以人类可读的方式显示文件大小。 2. **cd**:改变当前工作目录...
以下是一些核心的Linux命令,这些命令涵盖了日常系统管理、文件操作、进程控制、网络诊断等多个方面。 1. **ls**:列出目录内容。通过`ls -l`可以查看详细信息,`ls -a`显示所有文件包括隐藏文件。 2. **cd**:...
linux常用命令的xmind,不知道怎么可以免费共享大家 作为自己的记录。
### Linux常用网络命令详解 #### 一、网络参数设定指令 **1. ifconfig** - **功能**: 用于设定或查询网络接口的配置。 - **语法**: - `ifconfig [interface]` - `ifconfig [interface] [options]` - **参数**: ...
对于初学者来说,掌握一些基础且常用的Linux命令至关重要。本文将详细介绍《Linux必学的60个命令》中提及的部分命令,并对这些命令的使用场景和技巧进行深入探讨。 #### 二、命令分类概览 根据其在系统中的作用,...