当前位置首页 > Linux知识

linux命令学习摘记

阅读次数:196 次  来源:admin  发布时间:

20180102

20181018

*********************---LINUX命令---**********************

使用su root命令切换至root用户

然后 chmod 777 文件名 修改文件的权限,权限设置为最大权限即所有用户都具有可读可写可执行的权限(其中的777下面做解释)

root密码删除

已经登录进去后,如何删除root密码

vi /etc/passwd

root:x:0:0:root:/root:/bin/bash

...

删除“root:x:0”中的x,保存即可。再重启用root登录就没有密码了

装载 CD-ROM 驱动器。

mount /dev/cdrom /mnt/cdrom

用df命令看一下光驱挂载到哪儿了

+++++++++++++++++++++++解压缩++++++++++++++++++++++++++++

解压缩安装程序。

tar zxpf /mnt/cdrom/VMwareTools-x.x.x-yyyy.tar.gz

tar zxvf *****

压缩用

tar zcvf ****

压缩zip文件命令,前面是压缩后的命令,后面是要压缩的文件夹名

zip -r a.zip a

查看wwwroot.zip里面的内容

unzip -v wwwroot.zi

直接解压

unzip wwwroot.zi

把mydata.zip解压到mydatabak目录里面

unzip mydata.zip -d mydatabak

{源码包解压报错解决}

[root@localhost home]# tar -jxvf pciutils-3.1.4.tar.bz2

tar (child): bzip2: Cannot exec: No such file or directory

tar (child): Error is not recoverable: exiting now

tar: Child returned status 2

tar: Error is not recoverable: exiting now

缺少bzip2 运行yum -y install bzip2

.tar.bz2文件解压命令

从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包

要解压很简单 :

.tar.gz 格式解压为 tar -zxvf xx.tar.gz

.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2

# tar -tf all.tar

这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar

这条命令是解出all.tar包中所有文件,-t是解开的意思

rar文件

打包当前文件夹为1.rar

rar a 1.rar ./

解压缩1.rar到1目录下

rar x 1.rar 1\

+++++++++++++++++++++++++++++++++++++++++++++++++

[root@localhost Desktop]# tar jxvf fcitx-3.4.2.tar.bz2

[root@localhost Desktop]# cd /home/new/Desktop/fcitx-3.4.2

[root@localhost fcitx-3.4.2]#./configure --prefix=/opt/fictx

[root@localhost fcitx-3.4.2]#make

[root@localhost fcitx-3.4.2]#make install

linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。

直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字

-r 就是向下递归,不管有多少级目录,一并删除

-f 就是直接强行删除,不作任何提示的意思

rm删除文件也可以。

[root@localhost home]# cp RTL8188EUS_OLD/ /root/

cp: omitting directory `RTL8188EUS_OLD/\'

cp: omitting directory `RTL8188EUS_OLD\' 报错处理:

因为该目录下还有目录,所以需要加递归参数-r

[root@localhost home]# cp -r RTL8188EUS_OLD /root

Ubuntu默认不支持命令ll

$ vim ~/.bashrc

alias ll=\'ls -l\' #加入此行

:加入后可能无法当场起作用,

执行该句: source ~/.bashrc

+++++++++++++++++++++++++++++++++++++++++++

如何查看已安装的CentOS版本信息

1)[root@localhost ~]# cat /proc/versio

Linux version 2.6.18-194.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 2010

2)

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

3)cat /etc/redhat-release 跟head -n 1 /etc/issue显示结果一样!——“错误”

“后来发现两命令其实不一样,上次只是巧合,真正能显示发行版本的是前一个命令”

CentOS Linux release 7.3.1611 (Core)

查看系统内核版本

[root@localhost ~]# uname -r

2.6.32-358.el6.x86_64

++++++++++++++++++++++进程操作++++++++++++++++++++++++

查看进程并从结果中搜索http字符 并剔除grep字符(grep显示行数加-n参数)

[jj@jj ~]$ ps -ef|grep http|grep -v gre

查看进程ps aux

进程树查看 pstree

kill用于进程pid

kill 1234 5678同时结束多个进程pid

kill -9强制结束进程

kill 和 killall 用法:

都是用来直接结束进程名

killall用于正运行的,可以杀死一组同名进程

[root@jj ~]# killall firefox第一次执行无提示

[root@jj ~]# killall firefox第二次执行提示没发现该进程了(因为第一次被结束了)

firefox: no process found

kill无所谓。

grep根据进程名筛选出pid号

[root@jj ~]# pgrep sshd

34344

34780

fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.

显示使用某个文件的进程信息

fuser -um /dev/sda2

这个命令在umount的时候很有用,可以找到还有哪些用到这个设备了。

杀掉打开readme文件的程序

fuser -m -k -i readme

这里,会在kill之前询问是否确定。最好加上-v以便知道将要杀那个进程。

在使用fuser -km 就可以杀死进程,同时也可以使用交互式的-i参数,一个一个杀死。

查看指定端口被哪些进程占用( 或者fuser -v 22/tcp)

[root@localhost home]# fuser -v -n tcp 22

USER PID ACCESS COMMAND

22/tcp: root 1320 F.... sshd

root 1464 f.... sshd

root 2110 f.... sshd

root 2213 f.... sshd

查看指定服务的进程PID

[root@localhost dev]# fuser ssh/tc

h/tcp: 2213

查看22/21端口占用情况(两种,也可以把端口换成服务名协议名)

[root@localhost dev]# lsof -i tcp:22 (lsof -i:ssh)

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

hd 2213 root 3r IPv4 19648 0t0 TCP 10.58.9.80:ssh->10.58.9.20:55612 (ESTABLISHED)

[root@localhost dev]# lsof -i:21 (lsof -i:ftp)

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

ftp 2581 root 3u IPv4 22006 0t0 TCP 10.58.9.80:40558->10.58.9.20:ftp (ESTABLISHED)

++++++++++++++++++Vim文本编辑器+++++++++++++++++++++

vi

:w :保存当前文件

:e filename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

强制保存只读类型文件(w后有一个空格)

:w !sudo tee %

搜索字符

/后面加搜索字符串,回车即可,搜索下一个按n,搜索上一个用N(shift+n)

复制粘贴

复制一行字符用yy,粘贴这一行用

++++++++++++++++nano++++++++++++++++++++++++++++++

比vi简单,容易操作,适合新手

ano 文件名“打开文件”

ctrl+x“选择保存y或者不保存n”y,继续回车确认文件名即可

ctrl+c“取消操作”

++++++++++++++++++++++++++++++++++++++++++++++++++

修改文件名(改名):mv 或者 rename

mv只能对单个文件重命名,rename专用于重命名(可以批量改名)

[root@localhost home]# mv rpm nano-2.3.1-10.e17.x86_64.rpm

rename

Linux 下的 rename 命令有两个版本:

C语言版本

Perl语言版本

其中,C语言版本的命令如下:

rename 原字符串 新字符串 文件名

-rw-r--r-- 1 root root 0 Nov 29 04:38 abc-01.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 abc-02.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 abc-03.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 abc-04.jpg

[root@localhost idc]# rename a b *把当前目录下所有文件名中的a改成

-rw-r--r-- 1 root root 0 Nov 29 04:38 bbc-01.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 bbc-02.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 bbc-03.jpg

-rw-r--r-- 1 root root 0 Nov 29 04:38 bbc-04.jpg

[root@localhost idc]# rename _ - *把当前目录下所有文件名中的下划线 _ 改成横杠 -

[root@localhost home]# rename 123 456 idc/123.txt

用rename更改单个文件名,把当前目录下的idc文件夹里的123.txt文件名改成456.txt

Perl 语言版本的命令如下:

rename \'s/原字符串/新字符串/\' 文件名

+++++++++++++++++++++++++++++++++++++++++++++

eq 用于产生从某个数到另外一个数之间的所有整数

eq 是Linux 中一個預設的外部命令,一般用作一堆數字的簡化寫法,如

eq 1 10

便會出現

1

2

3

4

5

6

7

8

9

10

++++++++++++++++++++++++++++++++++++++++++++++.

创建文件

touch

用for批量创建文件

[root@localhost idc]# for i in `seq -w 10`; do touch stu\_$i\_linux.jpg; done

[root@localhost idc]# ll

total 0

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_01_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_02_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_03_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_04_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_05_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_06_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_07_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_08_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_09_linux.jpg

-rw-r--r-- 1 root root 0 Nov 29 05:54 stu_10_linux.jpg

++++++++++++++++++++++查看修改主机名++++++++++++++++++++

[root@localhost ~]# hostnamectl

Static hostname: abc

Icon name: computer-vm

Chassis: vm

Machine ID: bd5eb6eacd6b4078bc98bef769cbdb37

Boot ID: 606dea7151324f4586bc870e295041a6

Virtualization: vmware

Operating System: CentOS Linux 7 (Core)

CPE OS Name: cpe:/o:centos:centos:7

Kernel: Linux 3.10.0-514.16.1.el7.x86_64

Architecture: x86-64

[root@localhost ~]# hostnamectl set-hostname cba

[root@localhost ~]# cat /etc/hostname

cba

++++++++++++++++++网络+++++++++++++++++++

重启网卡

# service network restart

重启网络服务

[root@localhost ~]# systemctl restart network

开启网卡(ifup 网卡接口名)

[root@localhost ~]# ifup ens33

成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)

禁用网卡

[root@localhost ~]# ifdown ens33

成功断开设备 \'ens33\'。

或者

ifconfig eth0 up //启用网卡eth0

ifconfig eht0 down //关闭网卡eth0

设置网卡开机自启动:

vi /etc/sysconfig/network-scripts/ifcfg-ens33(该系统文件为只读)

……

DEVICE=ens33

ONBOOT=yes(yes就是开机自启动了)

……

当上步没用时,于是在/etc/rc.d/rc.local文件中加入

ifup eth0

[root@jj jj]# nmtui (network management UI界面)

查看网卡驱动版本号以及支持哪些功能:ethtool -i 网卡名 如ethtool -i eth0

查看网卡驱动[root@hostname ~]# lspci |grep net

lspci -k每个设备后有驱动信息。

linux 重启网卡 Device eth0 has different MAC address than expected, ignoring 如何解决

应该是你的配置文件内的MAC地址和真实的MAC不一样造成的。

1。查看配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 中的HWADDR 参数是什么

2. 用命令ifconfig etho, 看看其中的HWaddr是什么

3. 另外你的真实的MAC地址可以在机器启动时按F12 进入网络启动,看看本地的MAC地址是多少

把/etc/sysconfig/network-scripts/ifcfg-eth0 中的HWADDR 参数修正过来应该就可以了。你试一下吧!

ifconfig.me是个网址

http://ifconfig.me/

使用curl命令查看自己机器的外网i

[root@localhost ~]# curl ifconfig.me

115.236.100.3

[root@localhost /]# curl ifconfig.me/all

ip_addr: 115.236.100.3

remote_host:

user_agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.6.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2

ort: 56569

lang:

connection:

keep_alive:

encoding:

mime: */*

charset:

via:

forwarded:

查询外网IP其他网址

curl icanhazip.com

curl ipinfo.io/i

curl ident.me

curl myip.dnsomatic.com

debian9.2.1中

/etc/network/interfaces文件中的dns-nameserver参数加s情况:

dns-nameserver不加s,重启网络后查看resolv.conf只能识别一个DNS地址;加了s代表可以添加多个DNS地址(但最多也只能3个DNS)

+++++++++++++++++++++++无线网络wireless+++++++++++++++++++

iwconfig

[root@localhost ~]# iwconfig

lo no wireless extensions.

eth0 no wireless extensions.

+++++++++++++++++++++++包管理++++++++++++++++++++++++

查看到现在为止已经安装了哪些软件包。

rpm -qa

RPM包卸载

rpm -e 包名,注意,这里不需要加包的全名了,只需要加包名即可,Linux用数据库来维护这些包名

查询是否安装

rpm -q 包名

RPM包安装

rpm -ivh 包全名

选项:

-i(install) 代表安装

-v(verbose)代表显示详细信息

-h(hash) 显示进度

查询包中文件安装位置

rpm -ql 包名

查询系统文件属于哪个rpm包

rpm -qf 包名

-f查询文件属于哪个rpm包

查询软件包的依赖

rpm -qR 包名

其实yum命令自带了一个功能,可以自动批量解决本地安装rpm文件的dependencies依赖问题。

使用yum localinstall XXX.rpm 即可。

找不到lspci命令对应的安装包时可用下面命令

yum whatprovides 翻查命令是在哪个安装包中

yum whatprovides */命令名

[root@localhost home]# yum whatprovides * lspci

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: centos.ustc.edu.c

* extras: mirrors.cn99.com

* updates: mirrors.cn99.com

ciutils-3.5.1-2.el7.x86_64 : PCI bus related utilitie

Repo : base

Matched from:

Filename : /usr/sbin/lspci

++++++++++++++++++++++磁盘分区管理+++++++++++++++++++

输入 df -h,可以查看各分区的使用情况。其中,从左到右各列的内容依次是:

文件系统、总大小、已使用大小、剩余大小、使用率、挂载点。

输入du -sh,则可以查看当前文件夹所占空间。它的功能等同于 du . -sh。

而输入 du -sh 目录名,则可以查看指定目录的大小。

du -sh. 系统只显示当前文件夹所占用的总空间

查看硬盘和分区分布

[root@jj ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

da 8:0 0 20G 0 disk

├─sda1 8:1 0 1G 0 part /boot

└─sda2 8:2 0 19G 0 part

├─cl-root 253:0 0 17G 0 lvm /

└─cl-swap 253:1 0 2G 0 lvm [SWAP]

r0 11:0 1 4.1G 0 rom /run/media/root/CentOS 7 x86_64

[root@localhost ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

da 8:0 0 60G 0 disk

├─sda1 8:1 0 500M 0 part /boot

├─sda2 8:2 0 2G 0 part [SWAP]

├─sda3 8:3 0 38.7G 0 part /

├─sda4 8:4 0 1K 0 part

└─sda5 8:5 0 18.9G 0 part /home

r0 11:0 1 3.7G 0 rom /mnt

磁盘和分区详细信息用

fdisk -l

+++++++++++++++++++++++++++++++++++++++++++

修改分辨率(先xrandr查看显示器名称)

[jj@localhost network-scripts]$ xrandr

[jj@localhost network-scripts]$ xrandr --output Virtual1 --mode 1360x768

改分辨率

xrandr -s 1440x900

按照默认分辨率设置(800*600)

xrandr -s 0(0也可以改成1,2,3,4列表里的顺序)

+++++++++++++++++++++++++++++++++校准时间+++++++++++++++++++++++++++++++++

1.查看ntpd客户端有没有开机自启动

[root@localhost ~]# systemctl list-unit-files |grep ntpd

tpd.service enabled

tpdate.service enabled

上一篇:CentOS7MySql数据库安装配置(单实例)
下一篇:《前端运维》一、Linux基础--06Shell流程控制