linux命令学习摘记

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.zip
直接解压
unzip wwwroot.zip
把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是解开的意思

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

[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‘ #加入此行

ps:加入后可能无法当场起作用,
执行该句: source ~/.bashrc

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

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

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

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 grep
查看进程 ps aux

进程树查看 pstree


kill 用于进程pid
kill 1234 5678 同时结束多个进程pid
kill -9 强制结束进程

pkill 和 killall 用法:
都是用来直接结束进程名
killall用于正运行的,可以杀死一组同名进程
[root@jj ~]# killall firefox 第一次执行无提示
[root@jj ~]# killall firefox 第二次执行提示没发现该进程了(因为第一次被结束了)
firefox: no process found

pkill无所谓。

pgrep 根据进程名筛选出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/tcp
ssh/tcp: 2213

查看22/21端口占用情况(两种,也可以把端口换成服务名协议名)
[root@localhost dev]# lsof -i tcp:22 (lsof -i:ssh)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 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,粘贴这一行用p

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

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

nano 文件名 “打开文件”

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改成b

-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/原字符串/新字符串/‘ 文件名


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


seq 用于产生从某个数到另外一个数之间的所有整数
seq 是Linux 中一個預設的外部命令,一般用作一堆數字的簡化寫法,如
seq 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: jj
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 jj
[root@localhost ~]# cat /etc/hostname
jj

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

重启网卡
# 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命令查看自己机器的外网ip
[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
port: 56569
lang:
connection:
keep_alive:
encoding:
mime: */*
charset:
via:
forwarded:
查询外网IP其他网址
curl icanhazip.com
curl ipinfo.io/ip
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.cn
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
pciutils-3.5.1-2.el7.x86_64 : PCI bus related utilities
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
sda 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]
sr0 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
sda 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
sr0 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
ntpd.service enabled
ntpdate.service enabled
【第一个是作为时间服务器的服务名,第二个才是时间校准客户端的服务名】
2.如果没启动,用这个命令chkconfig:
[root@localhost ~]# chkconfig ntpdate on
Note: Forwarding request to ‘systemctl enable ntpdate.service‘.
3.编辑时间
vi /etc/ntp.conf

用date手动设置时间
[root@localhost ~]# date 081808181990.30
Sat Aug 18 08:18:30 CDT 1990

[root@localhost ~]# ntpdate ntp1.aliyun.com
18 Aug 08:20:10 ntpdate[995]: the NTP socket is in use, exiting
同步时间时报错,是因为ntpd服务器在运行
systemctl stop ntpd
再执行就成功校准时间了

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

单独查看PATH环境变量,可用(注意大写PATH):

[root@localhost u-boot-sh4]#echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/

+++++++++++++++++++++++++++++++查看文件内容++++++++++++++++++++++++++++++++

Linux下查看文件内容的命令
查看文件内容的命令:(文本内容)
cat 由第一行开始显示内容,并将所有鸟状态
more 功能少,
less linux正统查看文件内容的工具,功能极其强大,可用上下翻页键,b键, less 在查看之前不会加载整个文件。
都支持查找,/查找内容

 

+++++++++++++++++++++++用户及密码++++++++++++++++++++

查看当前已登录的用户(包括远程登陆进来的)
w
[root@localhost ~]# w
20:54:34 up 13 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 20:41 7:53 0.05s 0.05s -bash
root pts/0 10.58.9.20 20:51 0.00s 0.04s 0.00s w

显示都谁登录到机器上
[root@localhost ~]# who
root tty1 2017-12-20 20:41
root pts/0 2017-12-20 21:55 (10.58.9.20)


注销终端pts/1的用户(在w里找到对应用户名的会话名)
pkill -kill -t pts/0

[root@localhost ~]# ps -ef |grep pts/0
root 2094 1296 0 20:51 ? 00:00:00 sshd: root@pts/0
root 2098 2094 0 20:51 pts/0 00:00:00 -bash
root 2121 2098 0 20:54 pts/0 00:00:00 ps -ef
root 2122 2098 0 20:54 pts/0 00:00:00 grep pts/0
干掉进程也可以结束pts/0的用户会话

普通用户切换到root需要输入root密码,root切换到普通不需要密码,
su - root 切换同时可以看到上次登录时间及会话名

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

查看当前所在的目录
pwd

Linux命令行显示日历:
[root@localhost /]# cal
December 2017
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
显示2018年的日历
root@debian:~# cal 2018

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

关闭ICMP回应功能
/proc/sys/net/ipv4/icmp_echo_ignore_all (默认只有个“0”)

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 即可
如果需要ping通则输入:
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
该命令重启后会失效,所以开机后自动运行的方法
echo "echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all" >>/etc/rc.d/rc.local

 

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

 

 

在很多情况下,我们不需要长时间的切换至其他用户,而只是需要使用其他用户的身份完成某个命令,此时sudo命令就可以完成。该命令在使用之前是需要修改/etc/sudoers这个配置文件的,只有在配置文件下赋予的操作命令,sudo才能够完成。另外这里需要注明的是sudo命令与su命令最大的区别就是使用root权限下的命令时sudo命令只需要知道自己用户的密码,而su命令需要root用户的密码,所以在某种程度上sudo命令具有更高的安全性。


++++++++++++++++++++++++Debian++++++++++++++++++++++++++

Debian 9.2.1. 默认安装有GUI,但鼠标右键没有终端,打开方式:Alt+F2,弹出运行框,输入"gnome-terminal" 即可。

切换终端环境和GUI,CTRL+ALT+F1

查看USB设备命令:lsusb

查看硬盘和分区:fdisk -l

查看硬盘剩余空间:df -Th{H}
-T:显示每个分割区所属的档案系统名称
-h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

查看目录占用空间:du -hs [目录名]

查看当前进程实时情况:top

根据IP查网卡地址:arping [IP地址] ——可用来测试网段IP地址冲突情况

查看当前监听22端口的程序和IP:lsof -i:22


sleep 1 睡眠1秒
sleep 1s 睡眠1秒
sleep 1m 睡眠1分
sleep 1h 睡眠1小时

Debian 重启网卡命令:
/etc/init.d/networking restart
service networking restart


往上查看漏过的消息
按住Shift,然后按一下Page Up

Debian9默认远程登录不能用root账户,不过可以修改配置文件:
修改/etc/ssh/sshd_config文件中PermitRootLogin without-password将 without-password改为yes;重启ssh服务/etc/init.d/ssh restart;

Debian彻底删除软件
apt-get purge ......(点点为为程序名称),purge参数为彻底删除文件

Debian手动安装ssh服务
apt-get install openssh-server 安装ssh
/etc/init.d/ssh start|stop|restart 修改ssh服务状态

查看端口使用情况
netstat -auto
netstat -lntup 查看监听端口
netstat -anlpt 比上面多一个实时连接的显示
ss 查看实时连接,包括远程IP

Debian9 配置DNS
(直接在/etc/resolv.conf中加入nameserver 8.8.8.8当时能用,一重启机器文件就不在了)
在线安装resolvconf
apt-get install resolvconf

debian进入系统后如何重置root密码
#vi /etc/passwd
将第一行的root:x:0....中的X删除,变成 root::0....然后保存退出!
在进去系统此时root密码为空。
完了再恢复一下passwd文件

Debian 在GRUB界面,进入时可以用CTRL+X或者F10


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

由于今天用到了service nginx reload 和 service nginx restart,说说他俩的区别吧:

  reload:不间断服务重启,就像一张网页上面的刷新按钮一样。

  restart:先stop 再 start,就像关闭浏览器再打开一样。

  没必要使用restart的时候建议使用reload。

++++++++++++++++++++++++++++文件搜索+++++++++++++++++++++++++++
搜索文件 find 和 locate
[root@jj /]# find / -name "ifcfg-ens33"
find: ‘/run/user/1000/gvfs’: 权限不够
/etc/sysconfig/network-scripts/ifcfg-ens33

[root@jj /]# locate ens33
/etc/sysconfig/network-scripts/ifcfg-ens33
/var/lib/NetworkManager/dhclient-02ce57f3-eb1b-48f8-8fbf-badc42ffc5e6-ens33.lease
/var/lib/NetworkManager/dhclient-ens33.conf

查询命令的路径
[root@jj ~]# which vi
/usr/bin/vi

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
[root@localhost links]# type ll
ll is aliased to `ls -l --color=auto‘
[root@localhost links]# type vi
vi is hashed (/usr/bin/vi)


查看命令的帮助
man vi

++++++++++++++++++++Samba(SMB)+++++++++++++++++++++++

1、首先禁用SELinux和防火墙
setenforce 0 关闭SELinux(临时关闭)
service iptables stop 临时关闭防火墙
chkconfig iptables off 永久关闭防火墙
getenforce 检查SELinux状态(Permissive或者Enforcing)
cat /etc/sysconfig/selinux 检查SELinux自启动情况
#SELINUX=enforcing
SELINUX=disabled 永久关闭SELinux
[root@localhost ~]# getsebool -a 查看SELinux规则
[root@localhost ~]# setsebool -P samba_enable_home_dirs=1 开启允许某一个权限
chkconfig --list iptables 检查防火墙状态

yum install samba 在线安装Samba软件包

chkconfig --list 列出所有系统服务启动情况
df -Th

执行testparm命令可以查看当前samba配置

[root@localhost ~]# smbpasswd -a root 添加一个系统用户到smb用户列表中
New SMB password:
Retype new SMB password:
Added user root.

查看samba用户
有时我们需要查看服务器上都注册了哪些用户,这时我们就可以用下面的命令来查看了。
pdbedit可以编辑samba的用户数据库,具体使用方法可以用man查看。
pdbedit -L
[root@localhost home]# pdbedit -L
tom:4294967295:
root:0:root


++++++++++++++++++++++++++++++++++++++++++ telnet服务器 +++++++++++++++++++++++++++++++++++++++++++++++

PS:centos7系统

先安装telnet和telnet-server包,(xinetd服务,因为telnet-server依赖xinetd服务器,可装)

启动telnet:
systemctl start telnet.socket
#启动xinetd:
#systemctl start xinetd

telnet默认远程不能root用户登录:
telnet下root登录,密码正确,总提示:Login incorrect
注释/etc/pam.d/remote的第一行
即:auth required pam_securetty.so

Centos7中的防火墙服务是firewalld
默认是阻挡telnet 23端口的

++++++++++++++++++++++++++++++++++++++++systemctl +++++++++++++++++++++++++++++++++++++++++++++++++

列出所有可用单元
systemctl list-unit-files

查看服务状态

#systemctl status sshd
启动sshd服务(22端口)
#systemctl start sshd 停止用stop

设置服务开机启动

systemctl enable sshd

取消开机自启动

systemctl disable sshd

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

su命令和su -命令区别就是:
su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。

++++++++++++++++++++++++++++++定时执行任务 crontab +++++++++++++++++++++++++++++++

crontab
-l 在标准输出上显示当前的crontab。
  -r 删除当前的crontab文件。
  -e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。

 

 

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

grep显示指定字符上下3行的内容

root@nb:/etc/nginx# cat mime.types |grep "pdf" -C 3
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;

 

linux命令学习摘记

上一篇:linux 串口查询设置修改


下一篇:shell getopt 讲解