Linux命令

&  表示任务在后台执行,如要在后台运行redis-server,则有  python a.py &  

&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'    

| 表示管道,上一条命令的输出,作为下一条命令参数,如 ps -ef | grep java

|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"

键盘按G进入文件尾部,按gg进入文件首

打开终端的快捷键是Ctrl+Alt+T

Tab 自动补全

Ctrl+a光标移动到开始位置
Ctrl+e光标移动到最末尾
Ctrl+k删除此处至末尾的所有内容
Ctrl+u删除此处至开始的所有内容
Ctrl+d删除当前字符
Ctrl+l

相当于clear,即清屏

 

 

Ctrl+d    关闭终端

Ctrl+c 终止进程/命令

Ctrl+Shift+n 新终端

Shift+Ctrl+T 打开新的标签页

Shift+Ctrl+W 关闭标签页

F1 打开帮助指南

F11 全屏切换

Application 键即位置在键盘上右 Ctrl 键左边的那个键,作用相当于单击鼠标右键。

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

1) 命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字

在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。

d) 退出vi及保存文件

在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:

w filename (输入 「w filename」将文章以指定的文件名filename保存)

wq (输入「wq」,存盘并退出vi)

q! (输入q!, 不存盘强制退出vi)

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

「u」:如果误执行一个命令,可以马上按下「u」,撤消上一个操作。按多次“u”可以执行多次撤消。

 

r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

 

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

Last line mode下命令简介 

#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

D) 保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

E) 离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。


 

sudo apt-get update

sudo apt-get install tensorflow

pip install --upgrade pip

history

history>>./command.txt

 tail -fn 100 history.txt

nvidia-smi

mv  1.txt    2.txt

kill -9 169594

ls |cut -d . -f1>>/data1/workspace/ypzhang/DL/models/research/object_detection/yx_project/dataset/dlib/half/training/label.txt

rm -rf training

scp -r huran@ip:/home/huran/showdlib ./

scp -r /home/huran/workspace/shell/102 huran@ip:./

ssh huran@ip

clear

pushd ./

 popd

 pwd

ps aux |grep python

kill all python

echo $PATH

export PATH=/home/huran/bin:/home/huran/.local/bin:/home/huran/bin:/home/huran/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/huran/tensorflow/models/research:/home/huran/tensorflow/models/research/slim

安装PyCharm

sudo apt install pycharm-community 自动下载包并安装

下载安装包,压缩文件,linux系统中的可执行文件都会存在一个bin的目录下

#!/bin/bash
ls -l /etc/sh*
chmod u+x 1.sh 为刚编写的脚本赋予可执行的权限
ls -l 1.sh
./1.sh
useradd
usermod
userdel
passwd
useradd hu
tail -l /etc/passwd  可以查看用户的UID
tail -l /etc/shadow  查看用户密码
ls /home 查看用户主目录
usermod用来修改用户信息,修改主目录,修改所属的群,修改密码,登陆的shell
修改不同的内容有不同的选项
usermod -p 123456 hu 
userdel -r hu 连同主目录一起删除
passwd hu
tail -l /etc/shadow 
ls -l 1/file.txt 2.txt
ls -l file*
cp 复制目录和文件操作
cp b/1.txt test 会该改变拷贝文件的权限和时间信息
cp -a 拷贝不会改变文件的信息
复制目录时,需要加上-r参数 
cp -r 目录1 目录2
mv 命令的功能主要有两个 1.移动   2.重命名
主要是看目标是文件还是目录,如果是文件就是重命名,如果是目录就是移动
mv -i file1.txt file2.txt 也可以使用同样的方法对目录进行重命名
rm 删除对象分为文件和目录两类,不同的对象使用不同的方法
rm -rf 删除目录
rm filename 删除文件
mkdir -m 777 test 创建目录,并指定权限,使得所有用户都具有读写可执行权限
mkdir -p testdir/test 递归的创建多层目录 (最前面的一个文件夹没有/)
rmdir -rf 删除非空目录,rmdir 只能删除空目录
rmdir -p 
cd . 进入当前目录
.. 上一级目录
cd 是返回登陆目录 home目录的下级目录
cd ~也是返回登陆目录
cd -返回上次访问的目录
cd /home
cd /root
cd /返回系统根目录
su 命令切换到root用户下
文件所有者,同组用户,其他用户 读写可执行
更改文件或目录的权限命令 chmod
更改文件或目录用户命令 chown
u g o a 用户,同组,其他,所有用户
chmod u+x,g+w,test
0没有权限,1可执行,2,可写 4,可读
touch 文件名 创建新的文件
find 可以根据文件的各种属性进行查找,并可以对查找到的结果进行三种形式的处理,print 将结果输出到屏幕
exec可以对结果直接进行进一步的处理。
find 路径名  -name -print
find 路径名 -type f -name "r*" -exec ls -l {} \ ;
vi 并不锁定所编辑的文件,多个用户可能同时编辑一个文件,最后的版本是最后保存的
cut 命令用于从标准输入或文本文件中按域或行提取文本,可以灵活地提取文本文件中的内容
他默认将提取的内容放到标准输出上,如果要将提取的内容保存到文件,可以使用文件重定向实现
-c 用于按字符提取文本
-f 用于按域提取文本
-d 用于改变域分隔符

cut -c3 文件名      提取文件中每行的第三个字符并输出
cut -c1-5 文件名   提取文件中每行的第1-5个字符

为什么会有“域”的提取呢,因为刚才提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则束手无策。这时候“域”就派上用场了。如果你观察过/etc/passwd文件,你会发现,它并不像who的输出信息那样具有固定格式,而是比较零散的排放。

但是,冒号在这个文件的每一行中都起到了非常重要的作用,冒号用来隔开每一个项。
cut命令提供了这样的提取方式,具体的说就是设置“间隔符”,再设置“提取第几个域”
[rocrocket@rocrocket programming]$ cat /etc/passwd|head -n 5|cut -d : -f 1
root
bin
daemon
adm
lp
看到了吧,用-d来设置间隔符为冒号,然后用-f来设置我要取的是第一个域,
再按回车,所有的用户名就都列出来了

past命令用于将文本文件或输出中的内容粘贴到新的文件,将来自不同文件的数据粘贴到一起,
形成新的文件。
past file1 file 2
file1 file2 在同一行输出,其中file1在前面,file2在后
paste -d: file1 file2 以:为域分隔符

tar 归档命令,实现文件系统的压缩和解压缩
在tar命令中通常-f选项是必须的
tar -cf db.all  *.db 将所有.db结尾的文件放入压缩包
tar -tf db.all 查看db.all压缩包的内容
tar -rf db.all log* 将所有以log开头的文件添加到已经存在的压缩包db.all中
如果要对压缩包中的文件进行了更新,要把文件的更新同步到压缩包中,使用tar -uf 压缩包 需要更新的文件名


解压:两种方式针对gzip和非gzip文件
tar -xvf 压缩包名称 非gzip
tar -zxvf  压缩包名   gzip      -z 用来解压用gzip压缩的文件,-x表示姐压缩文件,-v生成压缩过程的
状态信息,-f 必选
tar只是将所有的文件打包放在了一起,此时文件并没有被压缩,gzip命令对tar包进行压缩
gzip da.all
tar -zxvf db.all.gz

-C 选项的作用是:指定需要解压到的目录。
gzip命令也可以将db.all.gz文件还原到原文件,
gzip -d db.all.gz 解压过后仍然是一个包,而tar解压过后是多个包内的文件

管道 |
利用管道进行Linux命令之间的通信,格式为 command1|command2
第一个命令执行完之后,如果没有中间的管道符号,它就会将第一个命令的执行结果直接显示在shell上
当shell遇到管道之后,就将第一个命令的输出发送给第二个命令作为输入
ls -l | grep vi | wc -l 列出当前目录下的文件,并在其中查找与vi匹配的行,最后对行计数
ls -l |more 将ls的结果传给more,对内容进行分页显示

IO重定向
将shell命令的输出从标准输出复制一份到某个文件中,可以使用tee
who | tee output  将who命令的标准输出复制到output文件中,同时也会标准输出

tee -a output是追加到文件中

 

>filename 将标准输出写道文件filename之中
<filename 将文件内容读入到标准输入之中
>>filename 将标准输出写到filename之中,如果文件已经存在,则将输出追加到文件已有内容之后
所以一个的是覆盖的写入,两个的是追加
cat命令后不加任何参数时,是标准输入,即键盘输入,
cat > newfile 就可以键盘输入到newfile,按ctr+D组合键结束对文件的编辑
ls /etc | grep "rc" > newfile

python -V

htop 是Linux系统中的一个互动的进程查看器

1.pwd---ls---mkdir---ls--cd

 

”/“是根目录,”~“是家目录。Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录。而每个用户都有”家“目录,也就是用户的个人目录,比
如root用户的”家“目录就是/root,普通用户a的家目录就是/home/a.
很多软件的安装都需要设置环境变量,什么是环境变量呢?简要的说,就是指定一个目录,
运行软件的时候,相关的程序将会按照该目录寻找相关文件.
path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统
除了在当前目录下面寻找此程序外,还应到path中指定的路径去找
path这一系统变量就是系统搜索dll文件的一系列路径
设置环境变量主要有三种方法
使用修改.bashrc文件(在用户的家目录下)进行环境变量的编辑,只对当前用户有用。
使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。

其中所要添加的路径是程序的安装路径如 /usr/local/bin/python 是 Python 的安装目录。
1.在控制台中修改,但是这种方法只针对当前的shell,当换一个shell,你的设置就无效了,这中方法只是
临时使用,以后要使用的时候还需要重新设置,比较麻烦
$ PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH)

2.修改/etc/profile文件,如果你的计算机仅仅作为开发使用时推荐使用这种方法,
因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell;

vi /etc/profile
在里面加入
export PATH="$PATH:/my_new_path"
使用source命令使得修改立即生效
source  /etc/profile

3. 修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,
如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了


vi /root/.bashrc
在里面加入
export PATH="$PATH:/my_new_path"
source /root/.bashrc

后两种方法一般需要重新注销系统才能生效,也可以使用source 命令,使修改的配置立刻

最后可以通过echo命令测试一下:
$ echo $PATH


另外也可以右击我的电脑——高级系统设置——环境变量——在系统变量里有path选项
——双击打开——在原有变量的基础上添加英文状态下的分号——然后将路径名输入即可。(切记,不要删除原先的系统变量,只要用分号隔开,然后添加,最后也要加上分号)

.bashfile
是单用户登录时比如root会运行的
/etc/profile:这个文件是每个用户登录时都会运行的环境变量设置

/usr/local下一般是你安装软件的目录,这个目录就相当于在windows下的programefiles这个目录
/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。
在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。

/bin 
  bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。
比如/bin/bash
/etc 
  这个目录用来存放系统管理所需要的配置文件和子目录
/lib 
  这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
软链接:ln -s 源文件 目标文件 
硬链接:ln 源文件 目标文件 
源文件:即你要对谁建立链接
硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样,相当于copy了一份
但是简单的copy的文件创建文件的时间应该是复制文件时的时间,肯定不会像硬链接那样和创建源文件的时间相同。你想的没错
那么cp -p的文件是不是就相当于硬链接了呢?其实不然,对于源文件的内容有修改,硬链接文件会同步更新修改,始终保持和源文件的内容相同,而复制的文件则不可能做到这一点。
硬链接等于cp -p加同步更新

软链接像快捷方式,方便我们打开源文件,这一点在windows中深有体会,那硬链接有哪些应用呢? 
在多用户的操作系统里,
你写一个脚本,程序等,没有完成,保存后等下次有时间继续写,但是其他用户有可能将你未写完的东西当成垃圾清理掉,这时,你对你的程序,脚本等做一个硬链接,利用硬链接的同步更新,就可以方式,别人误删你的源文件了
文件真正删除的条件是与之相关的所有硬连接文件均被删除。
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
Linux 下的软链接,其实就类似我们Windows下的快捷方式, 命令行中 -s 选项必不可少
[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

软连接就相当于windows的快捷方式。
ln -s /data/dir /tmp/aaa
ln -s 源目录 目标软连接

进入软连接
cd /tmp/aaa

实际上aaa这个软连接就相当于/data/dir了

ln -s /usr/local/anaconda3/bin/python3.6 /usr/bin/python
这样在终端通过python命令就可以启动python程序


wget是Linux系统中的一个下载文件的命令工具
CentOS wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是指
,CentOS wget可以在用户退出系统的之后在后台执行。
1、下载单个文件:wget http://www.baidu.com。命令会直接在当前目录下载一个index.html的文件
所以下载以后可以用ls查看下载下来的文件
2.将下载的文件存放到指定的文件夹下,同时重命名下载的文件,利用-O:wget -O /home/index http://www.baidu.com
3、下载多个文件:首先,创建一个file.txt文件,写入两个url(换行),如http://www.baidu.com;然后,wget -i file.txt;命令执行后会下载两个两个文件。
4、下载时,不显示详细信息,即在后台下载:wget -b http://www.baidu.com。命令执行后会,下载的详细信息不会显示在终端,会在当前目录下生成一个web-log记录下载的详细信息。

1、把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip mydata.zip -d mydatabak
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip wwwroot.zip
5、把/home目录下面的abc12.

Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、
安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum的命令形式一般是如下:    yum –选项命令包
其中选项是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(
不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。

yum list          # yum list显示所有已经安装和可以安装的程序包
yum list rpm 显示安装包信息rpm
显示installed ,这里是包名,版本和仓库名

3  yum安装
yum -y install httpd
如果你不加-y他会问你要不要安装。如果你想自己来控制有些包是否安装,这里不要加-y,如果你想自动安装,不进行交互,这里加入-y。
这个就是yum 的安装了,非常简单。
安装完之后查询一下yum list httpd,如果显示Installed 说明已经安装好了
yum install unzip -y

4  yum删除
yum remove httpd 删除程序包httpd ,也就是卸载。
yum deplist rpm 查看程序rpm依赖情况

5  yum包的升级
yum check-update 检查可更新的程序   
yum update 全部更新,升级所有包,以及升级软件和系统内核,这就是一键升级。
他可以更新CentOS的内核到最新版本。    
yum update package1 更新指定程序包package1,      
yum upgrade package1 升级指定程序包package1

linux下使用iconv命令转换gbk编码为UTF-8编码
cat lyrl2004_tokens_train.dat | iconv -f gbk -t utf-8 -c | lyrl2004.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值