linux 基础及常用命令

红帽Linux 5.5 for x86 服务器版  安装码
Red Hat Enterprise Linux Server 5.5 for x86
服务器:
* Red Hat Enterprise Linux (Server including virtualization):
2515dd4e215225dd
+ Red Hat Enterprise Linux Virtualization Platform:
49af89414d147589
客户端:
* Red Hat Enterprise Linux Desktop:
660266e267419c67
+ Red Hat Enterprise Linux Desktop + Workstation Option:
da3122afdb7edd23
+ Red Hat Enterprise Linux Desktop + Workstation + DualOS Option
(Virtualization):
7fcc43557e9bbc42
+ Red Hat Enterprise Linux Desktop + DualOS Option (Virtualization):
fed67649ff918c77


/ 根目录


pwd 当前路径

whoami 显示当前用户

tab 自动补全命令

linux分区的命名 /dev/xxyN
/dev/ 这个字串是所有设备文件所在的目录名
xx 分区名的两个字母标明分区所在设备的类型,hd(IDE磁盘),sd(SCSI)
y 这个字母标明分区所在的设备  /dev/hda (第一个IDE磁盘) 或/dev/sdb (第二个SCSI磁盘)
N 代表分区,前四个分区(主分区或扩展分区) 1-4排列, 逻辑分区5开始

mount 设备 挂载点
umount 设备


quit  退出控制台
shutdown -h now 立即进行关机
shutdown -r now  现在重新启动计算机
reboot          现在重新启动计算机


运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。
  # 0 - 停机(千万不能把initdefault 设置为0 )  
  # 1 - 单用户模式  
  # 2 - 多用户,没有 NFS  
  # 3 - 完全多用户模式(标准的运行级)  
  # 4 - 没有用到  
  # 5 - X11 (xwindow)  
  # 6 - 重新启动 (千万不要把initdefault 设置为6 )  

vi /etc/inittab

id:5:initdefault:       //若此处改为3,系统将被引导进入文本登录提示纯字符界面


logout  退出当前用户

登录成功时 当前路径默认的是 用户的目录


Ctrl+Alt+F7     字符到图形 
Ctrl+Alt+F6     图形到字符


cmd --help 
man cmd   提示如何使用

mkdir  创健文件

rmdir  文件

rm -r  文件  

rm -rf  文件   强制删除

rm -rf * 删除所有内容包括目录文件  r递归 f强制


touch 文件名 创健文件/查看创建时间
ls -a 查看隐藏
ls -i 文件名  查看节点号

linux ls -l 详解

第1字段: 文件属性字段

d开头目录 是dirtectory(目录)的缩写
-开头文件
l链接文件 字母"l"是link(链接)的缩写,类似于windows下的快捷方式

第1字符的后面9个字母表示该文件或目录的权限位。
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。


第2字段:

如果是目录则代表子目录个数

文件硬链接数
ln –s 源文件 目标链接文件         软连接相当于快捷方式
ln 源文件 目标链接文件           硬链接 同一文件不同文件名,节点号相同


第3字段:文件(目录)拥有者



第4字段:文件(目录)拥有者所在的组

一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。

可以在useradd的时候用-g指定该用户所在的主组,用-G指定其他组

格式如下:Useradd –g 组名 用户名


第5字段: 文件所占用的空间(以字节为单位)


第6字段:文件(目录)最近访问(修改)时间


第7字段:文件名


more/cat/tac/head 文件名   查看文件内容  tac倒序  head可以带参数


find 查找文件名 . 或者/

find   -name april*                     在当前目录下查找以april开始的文件
find   -name   april*   fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
find   -name ap* -o -name may*   查找以ap或may开头的文件
find   /mnt   -name tom.txt   -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型vfat的文件

用.来表示当前目录,用/来表示系统根目录。


whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。
命令参数:
-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B   指定搜索可执行文件的路径。
-M   指定搜索帮助文件的路径。
-S   指定搜索源代码文件的路径。


echo $PATH  查看环境变量(dos echo %path%)


##vi编辑器使用
1、vi hello.java
2、输入 i 【进入插入模式】
3、输入 esc 【进入命令模式】
4、: w 保存 wq 保存退出 
q!退出不保存


vi  可以修改
cat 只能看不能改

VI   esc命令模式和编辑模式切换

:q! 不保存退出

:wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。

:x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。
因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,
然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。


useradd adduser  admin 添加用户     如果不指定组会自动创建一个跟用户一样的组

useradd admin2 -g testadmin    指定组添加用户

passwd admin 修改密码

userdel admin 删除用户

usermod -g testadmin admin  修改admin属于 testadmin组

usermod -g 组名 用户名

usermod -d 目录名 用户名   改变该用户登录的初始目录


groupadd testadmin  添加组

cd /etc   more passwd   more group


passwd参数详解

mengqc:x:500:502:mengqc:/home/mengqc:/bin/bash 

注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 


此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。


group参数详解

 组名:口令:组标识号:组内用户列表


su admin 当前用户 切到 amdin用户  返回当前用户 exit 

当一个用户登录的时候 默认的路径是用户的主目录


chmod  修改权限

chmod -x 1.txt   修改 1.txt为可执行文件权限

chmod u+x 1.txt  只改当前用户的权限 
u
用户的当前权限
 
g
组的当前权限
 
o
其他用户的当前权限

多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。

chmod 777 1.txt



ls -ahl //查看文件所有者 /所有组

chown 修改所有者

chown admin 1.txt 修改所有者为admin

chgrp 组名 文件名 修改文件所在组



grep   '搜寻字符串'  filename  它能使用正则表达式搜索文本,并把匹配的行打印出来。

wc 统计指定文件中的字节数、字数、行数

-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。


stat命令用于显示指定文件的相关信息

dmesg用于显示系统最后一次启动时内核的内部缓存信息
uname命令用于显示操作系统信息
free命令用于显示当前内存和交换区的使用情况
du 查看指定目录文件的大小 
df 显示文件系统磁盘空间的使用情况

fdisk -l 显示磁盘信息
locale命令用于显示当前系统的语言设置
hostname 命令用于显示当前本地主机的名称
date命令用于显示系统当前的日期和时间。配合参数“-s”可以对系统的日期、时间重新进行设定
# date  
Fri Nov 15 16:11:13 CST 2013  
# date -s 1989-09-14  
Thu Sep 14 00:00:00 CDT 1989  
# date -s 11:23:33  
Thu Sep 14 11:23:33 CDT 1989  
# date  
Thu Sep 14 11:23:41 CDT 1989  


time命令用来计算执行一个进程所需的时间。包括实际CPU时间、用户CPU时间和系统时间。


ps命令用于监测进程的工作情况。它所显示的进程工作状态是瞬时的

ps -ef 列出所有进程
history命令用于保留最近执行的命令,默认可以保留500个。快速重新执行已经执行过的命令可以用“!命令事件号"


col  当我们运用shell特殊字符>和>>,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符

-b:过滤掉所有的控制字符,包括RLF和HRLF;

 -f:滤掉RLF字符,但允许将HRLF字符呈现出来;

 -x:以多个空格字符来表示跳格字符;

 -l<缓冲区列数>:预设的内存缓冲区有128列,用户可以自行指定缓冲区的大小


>   是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);

>>
这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响


2> 错误信息重定向


< 重定向输入

wall < 4.txt 



管道--将一个命令的输出传送到另一个命令,作为另一个命令的输入

ls -RI /etc | more    分页  空格翻页

cat /etc/passwd | wc  统计字节数 行数

cat /etc/passwd | grep root  查找包含root的所有行

dmesg | grep eth0  查找网卡0的信息

ls -l | grep "^d" > 1.txt

ls -l | grep "^-" | wc -l


wall (warning all) 警告所有用户     wall `date`


-----------------------------------------------------------------------------

ftp服务的启动和关闭命令为:service vsftpd strat/stop/restart

 service vsftpd start 
vsftpd: unrecognized service


vi   /etc/xinetd.d/gssftp  把disable=yes改成no,然后打开ftp服务
把server_args     = -l -a  改成  server_args     = -l  把 -a 去掉,这样系统的用户才有权限用ftp登陆

service xinetd restart  重新启动才生效

ftp localhost 检测是否成功安装

ifconfig 显示网卡信息(windows ipconfig)

ping ftp 192.168.26.128  ping不通连不上 关掉linux防火墙




Linux下如何关闭防火墙
临时关闭,即时生效,重启失效
# 关闭防火墙
$ service iptables stop

# 开启防火墙
$ service iptables start

永久关闭,重启生效
# 关闭防火墙
$ chkconfig iptables off

# 开启防火墙
$ chkconfig iptables on



leapFTP注册码

o+q2oT7FV1yFJwQ2nT/y1gJamqKc MFUeWX24baJ4j49WGXrJ4oeCZ7ID e4cmD5x722qksnqMqva36QHHanXz L06NVr/Ae/xPmJ/e1QjdiOd8VRGM O0W7LlofbwnKdVqAmqCTv4hp82o9 niTCQTm+PisvGWtxcIjQ2nPJoyET RvGAfDlPT8zYTJ0UtpYXOhq5Kvkh dIHDelsrryAS+dA7XS4/H2odMeRo HEeWX+WqEvK0ur9Rp28Z+obdCY0S ar13y/sg6DwgNbsHg2P2awreNj7n EP7LRdSnlDPGR/+a6/ysy4KduU37 cTFUqIG/GaKB


wget url  从网址下载文件


现在较新的Linux系统中,光驱设备是都是自动挂载的,自动挂载在

先看看你的光驱:  ls -l /dev/cdrom |grep cd
mkdir /mnt/cdrom              ;先是建立一个挂载文件夹出来
mount /dev/cdrom /mnt/cdrom      ;
将ISO所在的/dev/cdrom里面的文件挂载到指定/mnt/cdrom里面,完成挂载.


mkdir /mnt/cdrom              ;先是建立一个挂载文件夹出来
mount /dev/cdrom /mnt/cdrom      ;
将ISO所在的/dev/cdrom里面的文件挂载到指定/mnt/cdrom里面,完成挂载.


cp 文件 目录   拷贝文件到目录


使用which java 和 which javac 分别可以看到
简单说一下,就是把这2个文件ln -s 到我们新的jdk 下的 java 和 javac 上,命令如下:
rm -rf /usr/bin/java
rm -rf /usr/bin/javac
 ln -s $JAVA_HOME/bin/javac /usr/bin/javac
ln -s $JAVA_HOME/bin/javac /usr/bin/java


###安装方式

【./xxx.bin 】     ./ 安装


tar -xzvf soft.tar.gz //一般会生成一个soft目录

.tar.gz 
解压:tar zxvf FileName.tar.gz 
压缩:tar zcvf FileName.tar.gz DirName 

.tar 
解包:tar xvf FileName.tar 
打包:tar cvf FileName.tar DirName 

tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件


这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出


下面的参数-f是必须的


-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for Linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux


1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压


./configure  --prefix=/usr/bin/xx  把所有文件装在目录 /usr/bin/xx

make

make install


rpm安装

rpm -ivh xx.rpm

rpm -qa|gerp vsftpd 检测软件是否安装


-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

-q 查询软件名是否安装


停止并卸载Linux系统自带的httpd服务:
1、service httpd stop
2、ps -ef | grep httpd
3、kill -9 pid号(逐个删除)
4、rpm -qa |grep httpd
5、rpm -e httpd软件包


netstat -natp |grep 20  ,netstat -natp |grep 21 查看端口是否被占用

如果被xinetd占用  切换到/etc/xinetd.d/ 把FTP disable=yes  重启服务即可


####FTP不能上传问题解决####
2/#查看ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on。
getsebool -a|grep ftp
#如果不是则使用
setsebool allow_ftpd_full_access on 
setsebool ftpd_disable_trans on
setsebool ftp_home_dir on

但是这两个命令只对当前状态有效,若重启系统后会还原回原来的值。
若想永远生效,可以用命令setsebool -P ftpd_disable_trans 1或setsebool -P ftp_home_dir 1来更改。


problems
     500 OOPS: vsftpd: security: 'one_process_model' is anonymous only

添加或修改vsftpd.conf如下选项
one_process_model=no


vsftpd开机自启动

1:用vi打开etc/rc.local.在里面加入/usr/local/bin/vsftpd &即可.

2:chkconfig vsftpd on (意思是所有的启动级别都会自动启动vsftpd服务) 
chkconfig用来检查服务是否启动推荐使用chkconfig --level<这里参数是启动级别> vsftpd on 
比如:chkconfig --level 5 vsftpd on ,在当启动图形界面的level时会自动启动vsftpd服务。


 匿名用户登录vsftpd服务后的根目录是
/var/ftp/;
系统用户登录vsftpd服务后的根目录是系统用户的家目录。



getconf LONG_BIT  查看系统是32位还是64位

lsb_release -a  查看Linux版本信息


//jdk安装

vi /etc/profile
/home/work/jdk1.7.0_67
export JAVA_HOME=/home/work/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib

source profile // 让profile立即生效

或者直接命令窗口输入 临时设置,即时生效

export JAVA_HOME=/home/work/jdk1.7.0_67  




简单说一下,就是把这2个文件ln -s 到我们新的jdk 下的 java 和 javac 上,命令如下:
rm -rf /usr/bin/java
rm -rf /usr/bin/javac


ln -s $JAVA_HOME/bin/javac /usr/bin/javac
ln -s $JAVA_HOME/bin/java /usr/bin/java


/lib/i386/client/libjvm.so: cannot restore segment prot after reloc: 权限不够
据说是问题是安全级别和防火墙导致的
或从系统->管理->安全级别和防火墙->SELinux ->禁用
vi /etc/sysconfig/selinux   /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
这样重启linux服务器就可以正常了.


解压tomcat  运行

本地浏览器设置不用代理 192.168.26.1   8080      以下ip不用代理192.168.26.128

/etc/rc.local  设置开机自启  要重申一遍JAVA_HOME

/tomcat8/bin/startup.sh

/etc/profile  用户登录才生效


yum install httpd

httpd -v 查看版本

yum clean all 清楚缓存

yum makecache就是把服务器的包信息下载到本地电脑缓存起来
配合yum -C search xxx使用
不用上网检索就能查找软件信息


Centos上网修改

1. 虚拟机网络连接方式设置成NAT。

2. window系统下的两个服务VMwareDHCP Service和VMware NAT Service需要启动。

3. 用vi编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,我的系统中没有双引号,如下所示:

BOOTPROTO=dhcp(没变)
ONBOOT=yes(修改之前是no)
NM_CONTROLLED=no(修改之前是yes)

修改完之后,保存退出。

4. 再输入service network restart。


/etc/yum.repos.d/CentOS-Base.repo
Centos 引入新的yum源makecache 依然不能安装软件
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  运行之后就能安装


USER    用户名
UID    用户ID(User ID)
PID    进程ID(Process ID)
PPID    父进程的进程ID(Parent Process id)
SID    会话ID(Session id)
%CPU    进程的cpu占用率
%MEM    进程的内存占用率
VSZ    进程所使用的虚存的大小(Virtual Size)
RSS    进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY    与进程关联的终端(tty)
STAT    进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行    Runnable (on run queue)            正在运行或在运行队列中等待。
S 睡眠    Sleeping                休眠中, 受阻, 在等待某个条件的形成或接受到信号。
I 空闲    Idle
Z 僵死    Zombie(a defunct process)        进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
D 不可中断    Uninterruptible sleep (ususally IO)    收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
T 终止    Terminate                进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页    has no resident pages        没有足够的记忆体分页可分配。
X 死掉的进程
< 高优先级进程                    高优先序的进程
N 低优先    级进程                    低优先序的进程
L 内存锁页    Lock                有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组 
START    进程启动时间和日期
TIME    进程使用的总cpu时间
COMMAND    正在执行的命令行命令
NI    优先级(Nice)
PRI    进程优先级编号(Priority)
WCHAN    进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS    与进程相关的数字标识

4、kill 终止(杀死)进程,有十几种控制进程的方法,下面是一些常用的方法:
[root@localhost ~]#kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
[root@localhost ~]#kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
[root@localhost ~]#kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
[root@localhost ~]#kill -9 -1
终止你拥有的全部进程。
SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。


你可能感兴趣的:(linux,linux,命令)